From 763be993080e73203ebea640a94405f4805374cf Mon Sep 17 00:00:00 2001 From: Pulumi Bot <30351955+pulumi-bot@users.noreply.github.com> Date: Fri, 22 Nov 2024 05:21:54 -0800 Subject: [PATCH] Automated SDK generation @ aws-cloudformation-user-guide 19dc52cd3f2007d6d268b65b739ffb5ebf8c1e76 (#1845) *Automated PR* #### New resources: - `chatbot.CustomAction` - `cloudtrail.Dashboard` - `resourcegroups.TagSyncTask` - `wisdom.MessageTemplate` - `wisdom.MessageTemplateVersion` #### New functions: - `chatbot.getCustomAction` - `cloudtrail.getDashboard` - `resourcegroups.getTagSyncTask` - `wisdom.getMessageTemplate` - `wisdom.getMessageTemplateVersion` --- .docs.version | 2 +- .../aws-chatbot-customaction.json | 167 + ...ot-microsoftteamschannelconfiguration.json | 22 +- ...aws-chatbot-slackchannelconfiguration.json | 22 +- .../aws-cloudtrail-dashboard.json | 190 + ...-enclavecertificateiamroleassociation.json | 4 +- .../aws-ecs-taskdefinition.json | 4 +- .../aws-elasticloadbalancingv2-listener.json | 6 +- ...s-elasticloadbalancingv2-listenerrule.json | 2 +- ...s-elasticloadbalancingv2-loadbalancer.json | 34 +- .../aws-iotfleetwise-decodermanifest.json | 479 +-- .../aws-iotfleetwise-statetemplate.json | 131 + .../aws-resourcegroups-tagsynctask.json | 89 + .../aws-wisdom-messagetemplate.json | 715 ++++ .../aws-wisdom-messagetemplateversion.json | 61 + meta/.botocore.version | 2 +- .../pulumi-gen-aws-native/supported-types.txt | 5 + .../pulumi-resource-aws-native/metadata.json | 1107 +++++- .../pulumi-resource-aws-native/schema.json | 1485 +++++++- reports/missedAutonaming.json | 43 +- sdk/dotnet/AutoScaling/AutoScalingGroup.cs | 6 + sdk/dotnet/AutoScaling/GetAutoScalingGroup.cs | 3 + ...upBaselinePerformanceFactorsRequestArgs.cs | 3 + ...oupCapacityReservationSpecificationArgs.cs | 11 + ...alingGroupCapacityReservationTargetArgs.cs | 8 + ...ingGroupCpuPerformanceFactorRequestArgs.cs | 6 + ...utoScalingGroupInstanceRequirementsArgs.cs | 3 + ...gGroupBaselinePerformanceFactorsRequest.cs | 3 + ...ngGroupCapacityReservationSpecification.cs | 11 + ...toScalingGroupCapacityReservationTarget.cs | 6 + ...ScalingGroupCpuPerformanceFactorRequest.cs | 5 + .../AutoScalingGroupInstanceRequirements.cs | 3 + sdk/dotnet/Chatbot/CustomAction.cs | 115 + sdk/dotnet/Chatbot/Enums.cs | 37 + sdk/dotnet/Chatbot/GetCustomAction.cs | 79 + .../GetMicrosoftTeamsChannelConfiguration.cs | 7 + .../Chatbot/GetSlackChannelConfiguration.cs | 7 + .../Inputs/CustomActionAttachmentArgs.cs | 42 + .../CustomActionAttachmentCriteriaArgs.cs | 29 + .../Inputs/CustomActionDefinitionArgs.cs | 23 + .../MicrosoftTeamsChannelConfiguration.cs | 18 + .../Chatbot/Outputs/CustomActionAttachment.cs | 37 + .../Outputs/CustomActionAttachmentCriteria.cs | 33 + .../Chatbot/Outputs/CustomActionDefinition.cs | 24 + .../Chatbot/SlackChannelConfiguration.cs | 18 + sdk/dotnet/CloudTrail/Dashboard.cs | 163 + sdk/dotnet/CloudTrail/Enums.cs | 127 + sdk/dotnet/CloudTrail/GetDashboard.cs | 132 + .../Inputs/DashboardRefreshScheduleArgs.cs | 38 + ...dRefreshScheduleFrequencyPropertiesArgs.cs | 32 + .../CloudTrail/Inputs/DashboardWidgetArgs.cs | 53 + .../Outputs/DashboardRefreshSchedule.cs | 42 + ...boardRefreshScheduleFrequencyProperties.cs | 35 + .../CloudTrail/Outputs/DashboardWidget.cs | 45 + .../Inputs/SegmentDefinitionGroupArgs.cs | 14 + .../SegmentDefinitionSegmentGroupArgs.cs | 7 + .../SegmentDefinitionSourceSegmentArgs.cs | 3 + .../Outputs/SegmentDefinitionGroup.cs | 12 + .../Outputs/SegmentDefinitionSegmentGroup.cs | 6 + .../Outputs/SegmentDefinitionSourceSegment.cs | 3 + sdk/dotnet/Ecs/Enums.cs | 5 + sdk/dotnet/Ecs/GetService.cs | 5 + .../Inputs/TaskDefinitionHealthCheckArgs.cs | 2 +- .../Inputs/TaskDefinitionPortMappingArgs.cs | 3 +- .../Ecs/Outputs/TaskDefinitionHealthCheck.cs | 2 +- .../Ecs/Outputs/TaskDefinitionPortMapping.cs | 3 +- sdk/dotnet/Ecs/Service.cs | 10 + .../ElasticLoadBalancingV2/GetListener.cs | 4 +- .../ElasticLoadBalancingV2/GetLoadBalancer.cs | 22 +- .../Inputs/ListenerRedirectConfigArgs.cs | 2 +- .../Inputs/ListenerRuleRedirectConfigArgs.cs | 2 +- .../Inputs/LoadBalancerAttributeArgs.cs | 2 +- ...BalancerMinimumLoadBalancerCapacityArgs.cs | 23 + .../Inputs/LoadBalancerSubnetMappingArgs.cs | 2 +- sdk/dotnet/ElasticLoadBalancingV2/Listener.cs | 8 +- .../ElasticLoadBalancingV2/LoadBalancer.cs | 46 +- .../Outputs/ListenerRedirectConfig.cs | 2 +- .../Outputs/ListenerRuleRedirectConfig.cs | 2 +- .../Outputs/LoadBalancerAttribute.cs | 2 +- ...LoadBalancerMinimumLoadBalancerCapacity.cs | 24 + .../Outputs/LoadBalancerSubnetMapping.cs | 2 +- sdk/dotnet/Lambda/EventInvokeConfig.cs | 6 + sdk/dotnet/Lambda/GetEventInvokeConfig.cs | 3 + sdk/dotnet/Rds/GetGlobalCluster.cs | 3 + sdk/dotnet/Rds/GlobalCluster.cs | 6 + sdk/dotnet/ResourceGroups/Enums.cs | 31 + sdk/dotnet/ResourceGroups/GetTagSyncTask.cs | 93 + sdk/dotnet/ResourceGroups/TagSyncTask.cs | 147 + sdk/dotnet/S3Express/Enums.cs | 3 + .../Inputs/DirectoryBucketRuleArgs.cs | 11 + .../S3Express/Outputs/DirectoryBucketRule.cs | 11 + sdk/dotnet/Wisdom/Enums.cs | 31 + sdk/dotnet/Wisdom/GetMessageTemplate.cs | 126 + .../Wisdom/GetMessageTemplateVersion.cs | 86 + .../MessageTemplateAgentAttributesArgs.cs | 35 + .../Inputs/MessageTemplateAttributesArgs.cs | 40 + .../MessageTemplateBodyContentProviderArgs.cs | 26 + .../Inputs/MessageTemplateContentArgs.cs | 29 + ...geTemplateCustomerProfileAttributesArgs.cs | 373 ++ ...TemplateEmailMessageTemplateContentArgs.cs | 44 + ...lateEmailMessageTemplateContentBodyArgs.cs | 35 + ...eTemplateEmailMessageTemplateHeaderArgs.cs | 35 + ...essageTemplateGroupingConfigurationArgs.cs | 41 + ...geTemplateSmsMessageTemplateContentArgs.cs | 26 + ...mplateSmsMessageTemplateContentBodyArgs.cs | 26 + .../MessageTemplateSystemAttributesArgs.cs | 41 + ...ageTemplateSystemEndpointAttributesArgs.cs | 29 + sdk/dotnet/Wisdom/MessageTemplate.cs | 181 + sdk/dotnet/Wisdom/MessageTemplateVersion.cs | 108 + .../Outputs/MessageTemplateAgentAttributes.cs | 38 + .../Outputs/MessageTemplateAttributes.cs | 40 + .../MessageTemplateBodyContentProvider.cs | 27 + .../Wisdom/Outputs/MessageTemplateContent.cs | 32 + ...essageTemplateCustomerProfileAttributes.cs | 427 +++ ...sageTemplateEmailMessageTemplateContent.cs | 42 + ...TemplateEmailMessageTemplateContentBody.cs | 38 + ...ssageTemplateEmailMessageTemplateHeader.cs | 38 + .../MessageTemplateGroupingConfiguration.cs | 38 + ...essageTemplateSmsMessageTemplateContent.cs | 27 + ...geTemplateSmsMessageTemplateContentBody.cs | 27 + .../MessageTemplateSystemAttributes.cs | 45 + ...MessageTemplateSystemEndpointAttributes.cs | 30 + sdk/go/aws/autoscaling/autoScalingGroup.go | 10 +- sdk/go/aws/autoscaling/getAutoScalingGroup.go | 4 +- sdk/go/aws/autoscaling/pulumiTypes.go | 72 +- sdk/go/aws/chatbot/customAction.go | 155 + sdk/go/aws/chatbot/getCustomAction.go | 101 + .../getMicrosoftTeamsChannelConfiguration.go | 7 + .../chatbot/getSlackChannelConfiguration.go | 7 + sdk/go/aws/chatbot/init.go | 2 + .../microsoftTeamsChannelConfiguration.go | 13 + sdk/go/aws/chatbot/pulumiEnums.go | 183 + sdk/go/aws/chatbot/pulumiTypes.go | 320 ++ .../aws/chatbot/slackChannelConfiguration.go | 11 + sdk/go/aws/cloudtrail/dashboard.go | 193 ++ sdk/go/aws/cloudtrail/getDashboard.go | 146 + sdk/go/aws/cloudtrail/init.go | 2 + sdk/go/aws/cloudtrail/pulumiEnums.go | 529 +++ sdk/go/aws/cloudtrail/pulumiTypes.go | 470 +++ sdk/go/aws/customerprofiles/pulumiTypes.go | 37 +- sdk/go/aws/ecs/getService.go | 6 + sdk/go/aws/ecs/pulumiEnums.go | 3 + sdk/go/aws/ecs/pulumiTypes.go | 18 +- sdk/go/aws/ecs/service.go | 12 + .../aws/elasticloadbalancingv2/getListener.go | 8 +- .../elasticloadbalancingv2/getLoadBalancer.go | 45 +- sdk/go/aws/elasticloadbalancingv2/listener.go | 16 +- .../elasticloadbalancingv2/loadBalancer.go | 95 +- .../aws/elasticloadbalancingv2/pulumiTypes.go | 165 +- sdk/go/aws/lambda/eventInvokeConfig.go | 12 + sdk/go/aws/lambda/getEventInvokeConfig.go | 6 + sdk/go/aws/rds/getGlobalCluster.go | 4 +- sdk/go/aws/rds/globalCluster.go | 14 +- sdk/go/aws/resourcegroups/getTagSyncTask.go | 105 + sdk/go/aws/resourcegroups/init.go | 2 + sdk/go/aws/resourcegroups/pulumiEnums.go | 93 + sdk/go/aws/resourcegroups/tagSyncTask.go | 198 ++ sdk/go/aws/s3express/pulumiEnums.go | 1 + sdk/go/aws/s3express/pulumiTypes.go | 35 +- sdk/go/aws/wisdom/getMessageTemplate.go | 144 + .../aws/wisdom/getMessageTemplateVersion.go | 98 + sdk/go/aws/wisdom/init.go | 4 + sdk/go/aws/wisdom/messageTemplate.go | 226 ++ sdk/go/aws/wisdom/messageTemplateVersion.go | 150 + sdk/go/aws/wisdom/pulumiEnums.go | 170 + sdk/go/aws/wisdom/pulumiTypes.go | 3067 +++++++++++++++++ sdk/nodejs/autoscaling/autoScalingGroup.ts | 6 + sdk/nodejs/autoscaling/getAutoScalingGroup.ts | 3 + sdk/nodejs/chatbot/customAction.ts | 91 + sdk/nodejs/chatbot/getCustomAction.ts | 43 + .../getMicrosoftTeamsChannelConfiguration.ts | 4 + .../chatbot/getSlackChannelConfiguration.ts | 4 + sdk/nodejs/chatbot/index.ts | 15 + .../microsoftTeamsChannelConfiguration.ts | 10 + .../chatbot/slackChannelConfiguration.ts | 10 + sdk/nodejs/cloudtrail/dashboard.ts | 137 + sdk/nodejs/cloudtrail/getDashboard.ts | 81 + sdk/nodejs/cloudtrail/index.ts | 12 + sdk/nodejs/ecs/getService.ts | 5 + sdk/nodejs/ecs/service.ts | 10 + .../elasticloadbalancingv2/getListener.ts | 4 +- .../elasticloadbalancingv2/getLoadBalancer.ts | 19 +- sdk/nodejs/elasticloadbalancingv2/listener.ts | 8 +- .../elasticloadbalancingv2/loadBalancer.ts | 44 +- sdk/nodejs/lambda/eventInvokeConfig.ts | 6 + sdk/nodejs/lambda/getEventInvokeConfig.ts | 3 + sdk/nodejs/rds/getGlobalCluster.ts | 3 + sdk/nodejs/rds/globalCluster.ts | 6 + sdk/nodejs/resourcegroups/getTagSyncTask.ts | 60 + sdk/nodejs/resourcegroups/index.ts | 12 + sdk/nodejs/resourcegroups/tagSyncTask.ts | 141 + sdk/nodejs/tsconfig.json | 11 + sdk/nodejs/types/enums/chatbot/index.ts | 10 + sdk/nodejs/types/enums/cloudtrail/index.ts | 43 + sdk/nodejs/types/enums/ecs/index.ts | 5 + sdk/nodejs/types/enums/index.ts | 2 + .../types/enums/resourcegroups/index.ts | 10 + sdk/nodejs/types/enums/s3express/index.ts | 3 + sdk/nodejs/types/enums/wisdom/index.ts | 10 + sdk/nodejs/types/input.ts | 511 ++- sdk/nodejs/types/output.ts | 511 ++- sdk/nodejs/wisdom/getMessageTemplate.ts | 75 + .../wisdom/getMessageTemplateVersion.ts | 53 + sdk/nodejs/wisdom/index.ts | 24 + sdk/nodejs/wisdom/messageTemplate.ts | 158 + sdk/nodejs/wisdom/messageTemplateVersion.ts | 97 + sdk/python/pulumi_aws_native/__init__.py | 9 +- .../pulumi_aws_native/autoscaling/_inputs.py | 78 + .../autoscaling/auto_scaling_group.py | 8 + .../autoscaling/get_auto_scaling_group.py | 3 + .../pulumi_aws_native/autoscaling/outputs.py | 50 + .../pulumi_aws_native/chatbot/__init__.py | 5 + .../pulumi_aws_native/chatbot/_enums.py | 14 + .../pulumi_aws_native/chatbot/_inputs.py | 159 + .../chatbot/custom_action.py | 215 ++ .../chatbot/get_custom_action.py | 115 + ...t_microsoft_teams_channel_configuration.py | 16 +- .../get_slack_channel_configuration.py | 16 +- .../microsoft_teams_channel_configuration.py | 29 + .../pulumi_aws_native/chatbot/outputs.py | 153 + .../chatbot/slack_channel_configuration.py | 29 + .../pulumi_aws_native/cloudtrail/__init__.py | 2 + .../pulumi_aws_native/cloudtrail/_enums.py | 39 + .../pulumi_aws_native/cloudtrail/_inputs.py | 200 ++ .../pulumi_aws_native/cloudtrail/dashboard.py | 287 ++ .../cloudtrail/get_dashboard.py | 203 ++ .../pulumi_aws_native/cloudtrail/outputs.py | 159 + .../customerprofiles/_inputs.py | 51 + .../customerprofiles/outputs.py | 30 + sdk/python/pulumi_aws_native/ecs/_enums.py | 5 + sdk/python/pulumi_aws_native/ecs/_inputs.py | 15 +- .../pulumi_aws_native/ecs/get_service.py | 5 + sdk/python/pulumi_aws_native/ecs/outputs.py | 10 +- sdk/python/pulumi_aws_native/ecs/service.py | 16 + .../elasticloadbalancingv2/_inputs.py | 48 +- .../elasticloadbalancingv2/get_listener.py | 4 +- .../get_load_balancer.py | 31 +- .../elasticloadbalancingv2/listener.py | 16 +- .../elasticloadbalancingv2/load_balancer.py | 101 +- .../elasticloadbalancingv2/outputs.py | 46 +- .../lambda_/event_invoke_config.py | 12 + .../lambda_/get_event_invoke_config.py | 3 + .../rds/get_global_cluster.py | 3 + .../pulumi_aws_native/rds/global_cluster.py | 8 + .../resourcegroups/__init__.py | 2 + .../resourcegroups/_enums.py | 9 + .../resourcegroups/get_tag_sync_task.py | 120 + .../resourcegroups/tag_sync_task.py | 258 ++ .../pulumi_aws_native/s3express/_enums.py | 3 + .../pulumi_aws_native/s3express/_inputs.py | 27 + .../pulumi_aws_native/s3express/outputs.py | 16 + .../pulumi_aws_native/wisdom/__init__.py | 4 + sdk/python/pulumi_aws_native/wisdom/_enums.py | 9 + .../pulumi_aws_native/wisdom/_inputs.py | 1791 ++++++++++ .../wisdom/get_message_template.py | 196 ++ .../wisdom/get_message_template_version.py | 105 + .../wisdom/message_template.py | 364 ++ .../wisdom/message_template_version.py | 176 + .../pulumi_aws_native/wisdom/outputs.py | 1313 +++++++ 259 files changed, 23589 insertions(+), 683 deletions(-) create mode 100644 aws-cloudformation-schema/aws-chatbot-customaction.json create mode 100644 aws-cloudformation-schema/aws-cloudtrail-dashboard.json create mode 100644 aws-cloudformation-schema/aws-iotfleetwise-statetemplate.json create mode 100644 aws-cloudformation-schema/aws-resourcegroups-tagsynctask.json create mode 100644 aws-cloudformation-schema/aws-wisdom-messagetemplate.json create mode 100644 aws-cloudformation-schema/aws-wisdom-messagetemplateversion.json create mode 100644 sdk/dotnet/Chatbot/CustomAction.cs create mode 100644 sdk/dotnet/Chatbot/Enums.cs create mode 100644 sdk/dotnet/Chatbot/GetCustomAction.cs create mode 100644 sdk/dotnet/Chatbot/Inputs/CustomActionAttachmentArgs.cs create mode 100644 sdk/dotnet/Chatbot/Inputs/CustomActionAttachmentCriteriaArgs.cs create mode 100644 sdk/dotnet/Chatbot/Inputs/CustomActionDefinitionArgs.cs create mode 100644 sdk/dotnet/Chatbot/Outputs/CustomActionAttachment.cs create mode 100644 sdk/dotnet/Chatbot/Outputs/CustomActionAttachmentCriteria.cs create mode 100644 sdk/dotnet/Chatbot/Outputs/CustomActionDefinition.cs create mode 100644 sdk/dotnet/CloudTrail/Dashboard.cs create mode 100644 sdk/dotnet/CloudTrail/GetDashboard.cs create mode 100644 sdk/dotnet/CloudTrail/Inputs/DashboardRefreshScheduleArgs.cs create mode 100644 sdk/dotnet/CloudTrail/Inputs/DashboardRefreshScheduleFrequencyPropertiesArgs.cs create mode 100644 sdk/dotnet/CloudTrail/Inputs/DashboardWidgetArgs.cs create mode 100644 sdk/dotnet/CloudTrail/Outputs/DashboardRefreshSchedule.cs create mode 100644 sdk/dotnet/CloudTrail/Outputs/DashboardRefreshScheduleFrequencyProperties.cs create mode 100644 sdk/dotnet/CloudTrail/Outputs/DashboardWidget.cs create mode 100644 sdk/dotnet/ElasticLoadBalancingV2/Inputs/LoadBalancerMinimumLoadBalancerCapacityArgs.cs create mode 100644 sdk/dotnet/ElasticLoadBalancingV2/Outputs/LoadBalancerMinimumLoadBalancerCapacity.cs create mode 100644 sdk/dotnet/ResourceGroups/GetTagSyncTask.cs create mode 100644 sdk/dotnet/ResourceGroups/TagSyncTask.cs create mode 100644 sdk/dotnet/Wisdom/GetMessageTemplate.cs create mode 100644 sdk/dotnet/Wisdom/GetMessageTemplateVersion.cs create mode 100644 sdk/dotnet/Wisdom/Inputs/MessageTemplateAgentAttributesArgs.cs create mode 100644 sdk/dotnet/Wisdom/Inputs/MessageTemplateAttributesArgs.cs create mode 100644 sdk/dotnet/Wisdom/Inputs/MessageTemplateBodyContentProviderArgs.cs create mode 100644 sdk/dotnet/Wisdom/Inputs/MessageTemplateContentArgs.cs create mode 100644 sdk/dotnet/Wisdom/Inputs/MessageTemplateCustomerProfileAttributesArgs.cs create mode 100644 sdk/dotnet/Wisdom/Inputs/MessageTemplateEmailMessageTemplateContentArgs.cs create mode 100644 sdk/dotnet/Wisdom/Inputs/MessageTemplateEmailMessageTemplateContentBodyArgs.cs create mode 100644 sdk/dotnet/Wisdom/Inputs/MessageTemplateEmailMessageTemplateHeaderArgs.cs create mode 100644 sdk/dotnet/Wisdom/Inputs/MessageTemplateGroupingConfigurationArgs.cs create mode 100644 sdk/dotnet/Wisdom/Inputs/MessageTemplateSmsMessageTemplateContentArgs.cs create mode 100644 sdk/dotnet/Wisdom/Inputs/MessageTemplateSmsMessageTemplateContentBodyArgs.cs create mode 100644 sdk/dotnet/Wisdom/Inputs/MessageTemplateSystemAttributesArgs.cs create mode 100644 sdk/dotnet/Wisdom/Inputs/MessageTemplateSystemEndpointAttributesArgs.cs create mode 100644 sdk/dotnet/Wisdom/MessageTemplate.cs create mode 100644 sdk/dotnet/Wisdom/MessageTemplateVersion.cs create mode 100644 sdk/dotnet/Wisdom/Outputs/MessageTemplateAgentAttributes.cs create mode 100644 sdk/dotnet/Wisdom/Outputs/MessageTemplateAttributes.cs create mode 100644 sdk/dotnet/Wisdom/Outputs/MessageTemplateBodyContentProvider.cs create mode 100644 sdk/dotnet/Wisdom/Outputs/MessageTemplateContent.cs create mode 100644 sdk/dotnet/Wisdom/Outputs/MessageTemplateCustomerProfileAttributes.cs create mode 100644 sdk/dotnet/Wisdom/Outputs/MessageTemplateEmailMessageTemplateContent.cs create mode 100644 sdk/dotnet/Wisdom/Outputs/MessageTemplateEmailMessageTemplateContentBody.cs create mode 100644 sdk/dotnet/Wisdom/Outputs/MessageTemplateEmailMessageTemplateHeader.cs create mode 100644 sdk/dotnet/Wisdom/Outputs/MessageTemplateGroupingConfiguration.cs create mode 100644 sdk/dotnet/Wisdom/Outputs/MessageTemplateSmsMessageTemplateContent.cs create mode 100644 sdk/dotnet/Wisdom/Outputs/MessageTemplateSmsMessageTemplateContentBody.cs create mode 100644 sdk/dotnet/Wisdom/Outputs/MessageTemplateSystemAttributes.cs create mode 100644 sdk/dotnet/Wisdom/Outputs/MessageTemplateSystemEndpointAttributes.cs create mode 100644 sdk/go/aws/chatbot/customAction.go create mode 100644 sdk/go/aws/chatbot/getCustomAction.go create mode 100644 sdk/go/aws/chatbot/pulumiEnums.go create mode 100644 sdk/go/aws/cloudtrail/dashboard.go create mode 100644 sdk/go/aws/cloudtrail/getDashboard.go create mode 100644 sdk/go/aws/resourcegroups/getTagSyncTask.go create mode 100644 sdk/go/aws/resourcegroups/tagSyncTask.go create mode 100644 sdk/go/aws/wisdom/getMessageTemplate.go create mode 100644 sdk/go/aws/wisdom/getMessageTemplateVersion.go create mode 100644 sdk/go/aws/wisdom/messageTemplate.go create mode 100644 sdk/go/aws/wisdom/messageTemplateVersion.go create mode 100644 sdk/nodejs/chatbot/customAction.ts create mode 100644 sdk/nodejs/chatbot/getCustomAction.ts create mode 100644 sdk/nodejs/cloudtrail/dashboard.ts create mode 100644 sdk/nodejs/cloudtrail/getDashboard.ts create mode 100644 sdk/nodejs/resourcegroups/getTagSyncTask.ts create mode 100644 sdk/nodejs/resourcegroups/tagSyncTask.ts create mode 100644 sdk/nodejs/types/enums/chatbot/index.ts create mode 100644 sdk/nodejs/wisdom/getMessageTemplate.ts create mode 100644 sdk/nodejs/wisdom/getMessageTemplateVersion.ts create mode 100644 sdk/nodejs/wisdom/messageTemplate.ts create mode 100644 sdk/nodejs/wisdom/messageTemplateVersion.ts create mode 100644 sdk/python/pulumi_aws_native/chatbot/_enums.py create mode 100644 sdk/python/pulumi_aws_native/chatbot/_inputs.py create mode 100644 sdk/python/pulumi_aws_native/chatbot/custom_action.py create mode 100644 sdk/python/pulumi_aws_native/chatbot/get_custom_action.py create mode 100644 sdk/python/pulumi_aws_native/chatbot/outputs.py create mode 100644 sdk/python/pulumi_aws_native/cloudtrail/dashboard.py create mode 100644 sdk/python/pulumi_aws_native/cloudtrail/get_dashboard.py create mode 100644 sdk/python/pulumi_aws_native/resourcegroups/get_tag_sync_task.py create mode 100644 sdk/python/pulumi_aws_native/resourcegroups/tag_sync_task.py create mode 100644 sdk/python/pulumi_aws_native/wisdom/get_message_template.py create mode 100644 sdk/python/pulumi_aws_native/wisdom/get_message_template_version.py create mode 100644 sdk/python/pulumi_aws_native/wisdom/message_template.py create mode 100644 sdk/python/pulumi_aws_native/wisdom/message_template_version.py diff --git a/.docs.version b/.docs.version index a0e287aeaf..13756090b5 100644 --- a/.docs.version +++ b/.docs.version @@ -1 +1 @@ -29eaaa79dfb7b0afd2f6a548371b1182aafe20c1 +918af2f7c13bf2d949edb41408428fdb7ff32650 diff --git a/aws-cloudformation-schema/aws-chatbot-customaction.json b/aws-cloudformation-schema/aws-chatbot-customaction.json new file mode 100644 index 0000000000..0a88b57ef6 --- /dev/null +++ b/aws-cloudformation-schema/aws-chatbot-customaction.json @@ -0,0 +1,167 @@ +{ + "typeName" : "AWS::Chatbot::CustomAction", + "description" : "Definition of AWS::Chatbot::CustomAction Resource Type", + "definitions" : { + "CustomActionAttachment" : { + "type" : "object", + "properties" : { + "NotificationType" : { + "type" : "string", + "maxLength" : 100, + "minLength" : 1, + "pattern" : "^[a-zA-Z0-9-]+$" + }, + "ButtonText" : { + "type" : "string", + "maxLength" : 50, + "minLength" : 1, + "pattern" : "^[\\S\\s]+$" + }, + "Criteria" : { + "type" : "array", + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/CustomActionAttachmentCriteria" + }, + "maxItems" : 5, + "minItems" : 1 + }, + "Variables" : { + "$ref" : "#/definitions/CustomActionAttachmentVariables" + } + }, + "additionalProperties" : false + }, + "CustomActionAttachmentCriteria" : { + "type" : "object", + "properties" : { + "Operator" : { + "$ref" : "#/definitions/CustomActionAttachmentCriteriaOperator" + }, + "VariableName" : { + "type" : "string" + }, + "Value" : { + "type" : "string", + "maxLength" : 50, + "minLength" : 0 + } + }, + "required" : [ "Operator", "VariableName" ], + "additionalProperties" : false + }, + "CustomActionAttachmentCriteriaOperator" : { + "type" : "string", + "enum" : [ "HAS_VALUE", "EQUALS" ] + }, + "CustomActionAttachmentVariables" : { + "type" : "object", + "maxProperties" : 5, + "minProperties" : 1, + "patternProperties" : { + ".+" : { + "type" : "string" + } + }, + "additionalProperties" : false + }, + "CustomActionDefinition" : { + "type" : "object", + "properties" : { + "CommandText" : { + "type" : "string", + "maxLength" : 100, + "minLength" : 1 + } + }, + "required" : [ "CommandText" ], + "additionalProperties" : false + }, + "Tag" : { + "type" : "object", + "properties" : { + "Key" : { + "type" : "string", + "maxLength" : 128, + "minLength" : 1 + }, + "Value" : { + "type" : "string", + "maxLength" : 256, + "minLength" : 0 + } + }, + "required" : [ "Key", "Value" ], + "additionalProperties" : false + } + }, + "properties" : { + "ActionName" : { + "type" : "string", + "maxLength" : 64, + "minLength" : 1, + "pattern" : "^[a-zA-Z0-9_-]{1,64}$" + }, + "AliasName" : { + "type" : "string", + "maxLength" : 30, + "minLength" : 1, + "pattern" : "^[A-Za-z0-9-_]+$" + }, + "Attachments" : { + "type" : "array", + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/CustomActionAttachment" + } + }, + "CustomActionArn" : { + "type" : "string", + "maxLength" : 1011, + "minLength" : 1, + "pattern" : "^arn:(aws[a-zA-Z-]*)?:chatbot:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:custom-action/[a-zA-Z0-9_-]{1,64}$" + }, + "Definition" : { + "$ref" : "#/definitions/CustomActionDefinition" + }, + "Tags" : { + "type" : "array", + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/Tag" + }, + "maxItems" : 200, + "minItems" : 0 + } + }, + "required" : [ "ActionName", "Definition" ], + "readOnlyProperties" : [ "/properties/CustomActionArn" ], + "createOnlyProperties" : [ "/properties/ActionName" ], + "primaryIdentifier" : [ "/properties/CustomActionArn" ], + "handlers" : { + "create" : { + "permissions" : [ "chatbot:CreateCustomAction", "chatbot:GetCustomAction", "chatbot:TagResource", "chatbot:ListTagsForResource" ] + }, + "read" : { + "permissions" : [ "chatbot:GetCustomAction", "chatbot:ListTagsForResource" ] + }, + "update" : { + "permissions" : [ "chatbot:UpdateCustomAction", "chatbot:GetCustomAction", "chatbot:TagResource", "chatbot:UntagResource", "chatbot:ListTagsForResource" ] + }, + "delete" : { + "permissions" : [ "chatbot:DeleteCustomAction" ] + }, + "list" : { + "permissions" : [ "chatbot:ListCustomActions" ] + } + }, + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : true, + "tagProperty" : "/properties/Tags", + "permissions" : [ "chatbot:TagResource", "chatbot:ListTagsForResource", "chatbot:UntagResource" ] + }, + "additionalProperties" : false +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-chatbot-microsoftteamschannelconfiguration.json b/aws-cloudformation-schema/aws-chatbot-microsoftteamschannelconfiguration.json index 852fe5be4d..6a5d847987 100644 --- a/aws-cloudformation-schema/aws-chatbot-microsoftteamschannelconfiguration.json +++ b/aws-cloudformation-schema/aws-chatbot-microsoftteamschannelconfiguration.json @@ -93,6 +93,15 @@ "items" : { "$ref" : "#/definitions/Tag" } + }, + "CustomizationResourceArns" : { + "description" : "ARNs of Custom Actions to associate with notifications in the provided chat channel.", + "type" : "array", + "insertionOrder" : false, + "items" : { + "type" : "string", + "pattern" : "^arn:aws:chatbot:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:custom-action/[a-zA-Z0-9_-]{1,64}$" + } } }, "required" : [ "TeamId", "TeamsChannelId", "TeamsTenantId", "ConfigurationName", "IamRoleArn" ], @@ -102,19 +111,19 @@ "additionalProperties" : false, "handlers" : { "create" : { - "permissions" : [ "chatbot:CreateMicrosoftTeamsChannelConfiguration", "chatbot:TagResource", "iam:PassRole", "iam:CreateServiceLinkedRole" ] + "permissions" : [ "chatbot:CreateMicrosoftTeamsChannelConfiguration", "chatbot:TagResource", "chatbot:AssociateToConfiguration", "chatbot:ListAssociations", "iam:PassRole", "iam:CreateServiceLinkedRole" ] }, "read" : { - "permissions" : [ "chatbot:GetMicrosoftTeamsChannelConfiguration" ] + "permissions" : [ "chatbot:GetMicrosoftTeamsChannelConfiguration", "chatbot:ListAssociations" ] }, "update" : { - "permissions" : [ "chatbot:UpdateMicrosoftTeamsChannelConfiguration", "chatbot:TagResource", "chatbot:UntagResource", "chatbot:ListTagsForResource", "iam:PassRole" ] + "permissions" : [ "chatbot:UpdateMicrosoftTeamsChannelConfiguration", "chatbot:TagResource", "chatbot:UntagResource", "chatbot:ListTagsForResource", "chatbot:AssociateToConfiguration", "chatbot:DisassociateFromConfiguration", "chatbot:ListAssociations", "iam:PassRole" ] }, "delete" : { - "permissions" : [ "chatbot:GetMicrosoftTeamsChannelConfiguration", "chatbot:DeleteMicrosoftTeamsChannelConfiguration" ] + "permissions" : [ "chatbot:GetMicrosoftTeamsChannelConfiguration", "chatbot:DeleteMicrosoftTeamsChannelConfiguration", "chatbot:DisassociateFromConfiguration", "chatbot:ListAssociations" ] }, "list" : { - "permissions" : [ "chatbot:ListMicrosoftTeamsChannelConfigurations" ] + "permissions" : [ "chatbot:ListMicrosoftTeamsChannelConfigurations", "chatbot:ListAssociations" ] } }, "tagging" : { @@ -122,6 +131,7 @@ "tagOnCreate" : true, "tagUpdatable" : true, "cloudFormationSystemTags" : true, - "tagProperty" : "/properties/Tags" + "tagProperty" : "/properties/Tags", + "permissions" : [ "chatbot:TagResource", "chatbot:ListTagsForResource", "chatbot:UntagResource" ] } } \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-chatbot-slackchannelconfiguration.json b/aws-cloudformation-schema/aws-chatbot-slackchannelconfiguration.json index 60efaeacf0..0cd0cc1365 100644 --- a/aws-cloudformation-schema/aws-chatbot-slackchannelconfiguration.json +++ b/aws-cloudformation-schema/aws-chatbot-slackchannelconfiguration.json @@ -86,6 +86,15 @@ "description" : "Enables use of a user role requirement in your chat configuration", "type" : "boolean", "default" : false + }, + "CustomizationResourceArns" : { + "description" : "ARNs of Custom Actions to associate with notifications in the provided chat channel.", + "type" : "array", + "insertionOrder" : false, + "items" : { + "type" : "string", + "pattern" : "^arn:aws:chatbot:[A-Za-z0-9_/.-]{0,63}:[A-Za-z0-9_/.-]{0,63}:custom-action/[a-zA-Z0-9_-]{1,64}$" + } } }, "required" : [ "SlackWorkspaceId", "SlackChannelId", "ConfigurationName", "IamRoleArn" ], @@ -95,19 +104,19 @@ "additionalProperties" : false, "handlers" : { "create" : { - "permissions" : [ "chatbot:CreateSlackChannelConfiguration", "chatbot:TagResource", "iam:PassRole", "iam:CreateServiceLinkedRole" ] + "permissions" : [ "chatbot:CreateSlackChannelConfiguration", "chatbot:TagResource", "chatbot:AssociateToConfiguration", "chatbot:ListAssociations", "iam:PassRole", "iam:CreateServiceLinkedRole" ] }, "read" : { - "permissions" : [ "chatbot:DescribeSlackChannelConfigurations" ] + "permissions" : [ "chatbot:DescribeSlackChannelConfigurations", "chatbot:ListAssociations" ] }, "update" : { - "permissions" : [ "chatbot:UpdateSlackChannelConfiguration", "chatbot:TagResource", "chatbot:UntagResource", "chatbot:ListTagsForResource", "iam:PassRole" ] + "permissions" : [ "chatbot:UpdateSlackChannelConfiguration", "chatbot:TagResource", "chatbot:UntagResource", "chatbot:ListTagsForResource", "chatbot:AssociateToConfiguration", "chatbot:DisassociateFromConfiguration", "chatbot:ListAssociations", "iam:PassRole" ] }, "delete" : { - "permissions" : [ "chatbot:DeleteSlackChannelConfiguration" ] + "permissions" : [ "chatbot:DeleteSlackChannelConfiguration", "chatbot:DisassociateFromConfiguration", "chatbot:ListAssociations" ] }, "list" : { - "permissions" : [ "chatbot:DescribeSlackChannelConfigurations" ] + "permissions" : [ "chatbot:DescribeSlackChannelConfigurations", "chatbot:ListAssociations" ] } }, "tagging" : { @@ -115,6 +124,7 @@ "tagOnCreate" : true, "tagUpdatable" : true, "cloudFormationSystemTags" : true, - "tagProperty" : "/properties/Tags" + "tagProperty" : "/properties/Tags", + "permissions" : [ "chatbot:TagResource", "chatbot:ListTagsForResource", "chatbot:UntagResource" ] } } \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-cloudtrail-dashboard.json b/aws-cloudformation-schema/aws-cloudtrail-dashboard.json new file mode 100644 index 0000000000..6006a3e907 --- /dev/null +++ b/aws-cloudformation-schema/aws-cloudtrail-dashboard.json @@ -0,0 +1,190 @@ +{ + "typeName" : "AWS::CloudTrail::Dashboard", + "description" : "The Amazon CloudTrail dashboard resource allows customers to manage managed dashboards and create custom dashboards. You can manually refresh custom and managed dashboards. For custom dashboards, you can also set up an automatic refresh schedule and modify dashboard widgets.", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-cloudtrail.git", + "definitions" : { + "RefreshSchedule" : { + "description" : "Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule.", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "Frequency" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "Unit" : { + "description" : "The frequency unit. Supported values are HOURS and DAYS.", + "type" : "string", + "enum" : [ "HOURS", "DAYS" ] + }, + "Value" : { + "description" : "The frequency value.", + "type" : "integer" + } + }, + "required" : [ "Unit", "Value" ] + }, + "TimeOfDay" : { + "type" : "string", + "description" : "StartTime of the automatic schedule refresh.", + "pattern" : "^[0-9]{2}:[0-9]{2}" + }, + "Status" : { + "type" : "string", + "description" : "The status of the schedule. Supported values are ENABLED and DISABLED.", + "enum" : [ "ENABLED", "DISABLED" ] + } + }, + "required" : [ ] + }, + "QueryParameter" : { + "type" : "string", + "description" : "The value of the QueryParameter. Possible values: $StartTime$, $EndTime$, $Period$.", + "minLength" : 1, + "maxLength" : 1024, + "pattern" : ".*" + }, + "Widget" : { + "description" : "The dashboard widget", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "QueryStatement" : { + "description" : "The SQL query statement on one or more event data stores.", + "type" : "string", + "minLength" : 1, + "maxLength" : 10000, + "pattern" : "(?s).*" + }, + "QueryParameters" : { + "description" : "The placeholder keys in the QueryStatement. For example: $StartTime$, $EndTime$, $Period$.", + "type" : "array", + "items" : { + "$ref" : "#/definitions/QueryParameter" + }, + "minItems" : 1, + "maxItems" : 10, + "uniqueItems" : false, + "insertionOrder" : true + }, + "ViewProperties" : { + "description" : "The view properties of the widget.", + "type" : "object", + "additionalProperties" : false, + "patternProperties" : { + "^[a-zA-Z0-9._-]{3,128}$" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 128, + "pattern" : "^[a-zA-Z0-9._\\- ]+$" + } + } + } + }, + "required" : [ "QueryStatement" ] + }, + "Tag" : { + "description" : "An arbitrary set of tags (key-value pairs) for this dashboard.", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "Key" : { + "description" : "The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "type" : "string" + }, + "Value" : { + "description" : "The value for the tag. You can specify a value that is 1 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", + "type" : "string" + } + }, + "required" : [ "Value", "Key" ] + }, + "Timestamp" : { + "type" : "string" + } + }, + "properties" : { + "Widgets" : { + "description" : "List of widgets on the dashboard", + "type" : "array", + "items" : { + "$ref" : "#/definitions/Widget" + }, + "uniqueItems" : true, + "insertionOrder" : true + }, + "CreatedTimestamp" : { + "description" : "The timestamp of the dashboard creation.", + "$ref" : "#/definitions/Timestamp" + }, + "DashboardArn" : { + "description" : "The ARN of the dashboard.", + "type" : "string", + "pattern" : "^[a-zA-Z0-9._/\\-:]+$" + }, + "RefreshSchedule" : { + "description" : "Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule.", + "$ref" : "#/definitions/RefreshSchedule" + }, + "Name" : { + "description" : "The name of the dashboard.", + "type" : "string", + "pattern" : "^[a-zA-Z0-9_\\-]+$" + }, + "Status" : { + "description" : "The status of the dashboard. Values are CREATING, CREATED, UPDATING, UPDATED and DELETING.", + "type" : "string", + "enum" : [ "CREATING", "CREATED", "UPDATING", "UPDATED", "DELETING" ] + }, + "TerminationProtectionEnabled" : { + "description" : "Indicates whether the dashboard is protected from termination.", + "type" : "boolean" + }, + "Type" : { + "description" : "The type of the dashboard. Values are CUSTOM and MANAGED.", + "type" : "string", + "enum" : [ "MANAGED", "CUSTOM" ] + }, + "UpdatedTimestamp" : { + "description" : "The timestamp showing when the dashboard was updated, if applicable. UpdatedTimestamp is always either the same or newer than the time shown in CreatedTimestamp.", + "$ref" : "#/definitions/Timestamp" + }, + "Tags" : { + "type" : "array", + "uniqueItems" : false, + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/Tag" + } + } + }, + "required" : [ ], + "readOnlyProperties" : [ "/properties/DashboardArn", "/properties/CreatedTimestamp", "/properties/UpdatedTimestamp", "/properties/Status", "/properties/Type" ], + "primaryIdentifier" : [ "/properties/DashboardArn" ], + "handlers" : { + "create" : { + "permissions" : [ "CloudTrail:CreateDashboard", "CloudTrail:AddTags", "CloudTrail:StartQuery", "CloudTrail:StartDashboardRefresh" ] + }, + "read" : { + "permissions" : [ "CloudTrail:GetDashboard", "CloudTrail:ListDashboards", "CloudTrail:ListTags" ] + }, + "update" : { + "permissions" : [ "CloudTrail:UpdateDashboard", "CloudTrail:AddTags", "CloudTrail:RemoveTags", "CloudTrail:StartQuery", "CloudTrail:StartDashboardRefresh" ] + }, + "delete" : { + "permissions" : [ "CloudTrail:DeleteDashboard", "CloudTrail:UpdateDashboard" ] + }, + "list" : { + "permissions" : [ "CloudTrail:ListDashboards", "CloudTrail:GetDashboard", "CloudTrail:ListTags" ] + } + }, + "additionalProperties" : false, + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : false, + "tagProperty" : "/properties/Tags", + "permissions" : [ "CloudTrail:AddTags", "CloudTrail:RemoveTags", "CloudTrail:ListTags" ] + } +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-ec2-enclavecertificateiamroleassociation.json b/aws-cloudformation-schema/aws-ec2-enclavecertificateiamroleassociation.json index 19279db461..bf9d69c08f 100644 --- a/aws-cloudformation-schema/aws-ec2-enclavecertificateiamroleassociation.json +++ b/aws-cloudformation-schema/aws-ec2-enclavecertificateiamroleassociation.json @@ -35,13 +35,13 @@ "primaryIdentifier" : [ "/properties/CertificateArn", "/properties/RoleArn" ], "handlers" : { "create" : { - "permissions" : [ "ec2:AssociateEnclaveCertificateIamRole" ] + "permissions" : [ "ec2:AssociateEnclaveCertificateIamRole", "ec2:GetAssociatedEnclaveCertificateIamRoles" ] }, "read" : { "permissions" : [ "ec2:GetAssociatedEnclaveCertificateIamRoles" ] }, "delete" : { - "permissions" : [ "ec2:DisassociateEnclaveCertificateIamRole" ] + "permissions" : [ "ec2:DisassociateEnclaveCertificateIamRole", "ec2:GetAssociatedEnclaveCertificateIamRoles" ] }, "list" : { "permissions" : [ "ec2:GetAssociatedEnclaveCertificateIamRoles" ] diff --git a/aws-cloudformation-schema/aws-ecs-taskdefinition.json b/aws-cloudformation-schema/aws-ecs-taskdefinition.json index 5c9cff7c91..6b7180a622 100644 --- a/aws-cloudformation-schema/aws-ecs-taskdefinition.json +++ b/aws-cloudformation-schema/aws-ecs-taskdefinition.json @@ -71,7 +71,7 @@ "type" : "object", "properties" : { "Command" : { - "description" : "A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. \n When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets.\n ``[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]`` \n You don't include the double quotes and brackets when you use the AWS Management Console.\n ``CMD-SHELL, curl -f http://localhost/ || exit 1`` \n An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command", + "description" : "A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. \n When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets.\n ``[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]`` \n You don't include the double quotes and brackets when you use the AWS Management Console.\n ``CMD-SHELL, curl -f http://localhost/ || exit 1`` \n An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command.", "insertionOrder" : true, "type" : "array", "items" : { @@ -582,7 +582,7 @@ "type" : "string" }, "Name" : { - "description" : "The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.\n For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*.", + "description" : "The name that's used for the port mapping. This parameter is the name that you use in the ``serviceConnectConfiguration`` and the ``vpcLatticeConfigurations`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.", "type" : "string" } } diff --git a/aws-cloudformation-schema/aws-elasticloadbalancingv2-listener.json b/aws-cloudformation-schema/aws-elasticloadbalancingv2-listener.json index b0c886674a..1f96faa1b0 100644 --- a/aws-cloudformation-schema/aws-elasticloadbalancingv2-listener.json +++ b/aws-cloudformation-schema/aws-elasticloadbalancingv2-listener.json @@ -239,7 +239,7 @@ "type" : "string" }, "Protocol" : { - "description" : "The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP.", + "description" : "The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP.", "type" : "string" }, "StatusCode" : { @@ -430,7 +430,7 @@ } }, "Port" : { - "description" : "The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer.", + "description" : "The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer.", "type" : "integer" }, "Certificates" : { @@ -442,7 +442,7 @@ } }, "Protocol" : { - "description" : "The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer.", + "description" : "The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer.", "type" : "string" } } diff --git a/aws-cloudformation-schema/aws-elasticloadbalancingv2-listenerrule.json b/aws-cloudformation-schema/aws-elasticloadbalancingv2-listenerrule.json index eba1a807fc..fe70b2ab3b 100644 --- a/aws-cloudformation-schema/aws-elasticloadbalancingv2-listenerrule.json +++ b/aws-cloudformation-schema/aws-elasticloadbalancingv2-listenerrule.json @@ -294,7 +294,7 @@ }, "Protocol" : { "type" : "string", - "description" : "The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP." + "description" : "The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP." }, "StatusCode" : { "type" : "string", diff --git a/aws-cloudformation-schema/aws-elasticloadbalancingv2-loadbalancer.json b/aws-cloudformation-schema/aws-elasticloadbalancingv2-loadbalancer.json index ce483ed896..160a860050 100644 --- a/aws-cloudformation-schema/aws-elasticloadbalancingv2-loadbalancer.json +++ b/aws-cloudformation-schema/aws-elasticloadbalancingv2-loadbalancer.json @@ -7,11 +7,11 @@ "properties" : { "IpAddressType" : { "type" : "string", - "description" : "Note: Internal load balancers must use the ``ipv4`` IP address type.\n [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses).\n Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors.\n [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener.\n [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses)." + "description" : "The IP address type. Internal load balancers must use ``ipv4``.\n [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses).\n Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors.\n [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses)." }, "EnablePrefixForIpv6SourceNat" : { "type" : "string", - "description" : "" + "description" : "[Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``." }, "SecurityGroups" : { "type" : "array", @@ -32,9 +32,14 @@ "$ref" : "#/definitions/LoadBalancerAttribute" } }, + "MinimumLoadBalancerCapacity" : { + "type" : "object", + "description" : "", + "$ref" : "#/definitions/MinimumLoadBalancerCapacity" + }, "Scheme" : { "type" : "string", - "description" : "The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet.\n The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer.\n The default is an Internet-facing load balancer.\n You cannot specify a scheme for a Gateway Load Balancer." + "description" : "The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet.\n The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer.\n The default is an Internet-facing load balancer.\n You can't specify a scheme for a Gateway Load Balancer." }, "DNSName" : { "type" : "string", @@ -54,7 +59,7 @@ }, "Subnets" : { "type" : "array", - "description" : "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers] You can specify subnets from one or more Availability Zones.\n [Gateway Load Balancers] You can specify subnets from one or more Availability Zones.", + "description" : "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones.", "uniqueItems" : true, "insertionOrder" : false, "items" : { @@ -84,7 +89,7 @@ }, "SubnetMappings" : { "type" : "array", - "description" : "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet.\n [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets.", + "description" : "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet.\n [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets.", "uniqueItems" : true, "insertionOrder" : false, "items" : { @@ -97,6 +102,17 @@ } }, "definitions" : { + "MinimumLoadBalancerCapacity" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "CapacityUnits" : { + "type" : "integer" + } + }, + "required" : [ "CapacityUnits" ], + "description" : "" + }, "SubnetMapping" : { "type" : "object", "additionalProperties" : false, @@ -119,7 +135,7 @@ }, "SourceNatIpv6Prefix" : { "type" : "string", - "description" : "" + "description" : "[Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or ``auto_assigned`` to use an IPv6 prefix selected at random from the subnet CIDR block." } }, "required" : [ "SubnetId" ], @@ -135,7 +151,7 @@ }, "Key" : { "type" : "string", - "description" : "The name of the attribute.\n The following attributes are supported by all load balancers:\n + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and cannot be changed.\n \n The following attributes are supported by both Application Load Balancers and Network Load Balancers:\n + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``access_logs.s3.bucket`` - The name of the S3 bucket for the access logs. This attribute is required if access logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``access_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the access logs.\n + ``ipv6.deny_all_igw_traffic`` - Blocks internet gateway (IGW) access to the load balancer. It is set to ``false`` for internet-facing load balancers and ``true`` for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway.\n \n The following attributes are supported by only Application Load Balancers:\n + ``idle_timeout.timeout_seconds`` - The idle timeout value, in seconds. The valid range is 1-4000 seconds. The default is 60 seconds.\n + ``client_keep_alive.seconds`` - The client keep alive value, in seconds. The valid range is 60-604800 seconds. The default is 3600 seconds.\n + ``connection_logs.s3.enabled`` - Indicates whether connection logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``connection_logs.s3.bucket`` - The name of the S3 bucket for the connection logs. This attribute is required if connection logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``connection_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the connection logs.\n + ``routing.http.desync_mitigation_mode`` - Determines how the load balancer handles requests that might pose a security risk to your application. The possible values are ``monitor``, ``defensive``, and ``strictest``. The default is ``defensive``.\n + ``routing.http.drop_invalid_header_fields.enabled`` - Indicates whether HTTP headers with invalid header fields are removed by the load balancer (``true``) or routed to targets (``false``). The default is ``false``.\n + ``routing.http.preserve_host_header.enabled`` - Indicates whether the Application Load Balancer should preserve the ``Host`` header in the HTTP request and send it to the target without any change. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.x_amzn_tls_version_and_cipher_suite.enabled`` - Indicates whether the two headers (``x-amzn-tls-version`` and ``x-amzn-tls-cipher-suite``), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. The ``x-amzn-tls-version`` header has information about the TLS protocol version negotiated with the client, and the ``x-amzn-tls-cipher-suite`` header has information about the cipher suite negotiated with the client. Both headers are in OpenSSL format. The possible values for the attribute are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_client_port.enabled`` - Indicates whether the ``X-Forwarded-For`` header should preserve the source port that the client used to connect to the load balancer. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_header_processing.mode`` - Enables you to modify, preserve, or remove the ``X-Forwarded-For`` header in the HTTP request before the Application Load Balancer sends the request to the target. The possible values are ``append``, ``preserve``, and ``remove``. The default is ``append``.\n + If the value is ``append``, the Application Load Balancer adds the client IP address (of the last hop) to the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n + If the value is ``preserve`` the Application Load Balancer preserves the ``X-Forwarded-For`` header in the HTTP request, and sends it to targets without any change.\n + If the value is ``remove``, the Application Load Balancer removes the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n \n + ``routing.http2.enabled`` - Indicates whether HTTP/2 is enabled. The possible values are ``true`` and ``false``. The default is ``true``. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens.\n + ``waf.fail_open.enabled`` - Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. The possible values are ``true`` and ``false``. The default is ``false``.\n \n The following attributes are supported by only Network Load Balancers:\n + ``dns_record.client_routing_policy`` - Indicates how traffic is distributed among the load balancer Availability Zones. The possible values are ``availability_zone_affinity`` with 100 percent zonal affinity, ``partial_availability_zone_affinity`` with 85 percent zonal affinity, and ``any_availability_zone`` with 0 percent zonal affinity.\n + ``zonal_shift.config.enabled`` - Indicates whether zonal shift is enabled. The possible values are ``true`` and ``false``. The default is ``false``." + "description" : "The name of the attribute.\n The following attributes are supported by all load balancers:\n + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and can't be changed.\n \n The following attributes are supported by both Application Load Balancers and Network Load Balancers:\n + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``access_logs.s3.bucket`` - The name of the S3 bucket for the access logs. This attribute is required if access logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``access_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the access logs.\n + ``ipv6.deny_all_igw_traffic`` - Blocks internet gateway (IGW) access to the load balancer. It is set to ``false`` for internet-facing load balancers and ``true`` for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway.\n \n The following attributes are supported by only Application Load Balancers:\n + ``idle_timeout.timeout_seconds`` - The idle timeout value, in seconds. The valid range is 1-4000 seconds. The default is 60 seconds.\n + ``client_keep_alive.seconds`` - The client keep alive value, in seconds. The valid range is 60-604800 seconds. The default is 3600 seconds.\n + ``connection_logs.s3.enabled`` - Indicates whether connection logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``connection_logs.s3.bucket`` - The name of the S3 bucket for the connection logs. This attribute is required if connection logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``connection_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the connection logs.\n + ``routing.http.desync_mitigation_mode`` - Determines how the load balancer handles requests that might pose a security risk to your application. The possible values are ``monitor``, ``defensive``, and ``strictest``. The default is ``defensive``.\n + ``routing.http.drop_invalid_header_fields.enabled`` - Indicates whether HTTP headers with invalid header fields are removed by the load balancer (``true``) or routed to targets (``false``). The default is ``false``.\n + ``routing.http.preserve_host_header.enabled`` - Indicates whether the Application Load Balancer should preserve the ``Host`` header in the HTTP request and send it to the target without any change. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.x_amzn_tls_version_and_cipher_suite.enabled`` - Indicates whether the two headers (``x-amzn-tls-version`` and ``x-amzn-tls-cipher-suite``), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. The ``x-amzn-tls-version`` header has information about the TLS protocol version negotiated with the client, and the ``x-amzn-tls-cipher-suite`` header has information about the cipher suite negotiated with the client. Both headers are in OpenSSL format. The possible values for the attribute are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_client_port.enabled`` - Indicates whether the ``X-Forwarded-For`` header should preserve the source port that the client used to connect to the load balancer. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_header_processing.mode`` - Enables you to modify, preserve, or remove the ``X-Forwarded-For`` header in the HTTP request before the Application Load Balancer sends the request to the target. The possible values are ``append``, ``preserve``, and ``remove``. The default is ``append``.\n + If the value is ``append``, the Application Load Balancer adds the client IP address (of the last hop) to the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n + If the value is ``preserve`` the Application Load Balancer preserves the ``X-Forwarded-For`` header in the HTTP request, and sends it to targets without any change.\n + If the value is ``remove``, the Application Load Balancer removes the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n \n + ``routing.http2.enabled`` - Indicates whether HTTP/2 is enabled. The possible values are ``true`` and ``false``. The default is ``true``. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens.\n + ``waf.fail_open.enabled`` - Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. The possible values are ``true`` and ``false``. The default is ``false``.\n \n The following attributes are supported by only Network Load Balancers:\n + ``dns_record.client_routing_policy`` - Indicates how traffic is distributed among the load balancer Availability Zones. The possible values are ``availability_zone_affinity`` with 100 percent zonal affinity, ``partial_availability_zone_affinity`` with 85 percent zonal affinity, and ``any_availability_zone`` with 0 percent zonal affinity.\n + ``zonal_shift.config.enabled`` - Indicates whether zonal shift is enabled. The possible values are ``true`` and ``false``. The default is ``false``." } }, "description" : "Specifies an attribute for an Application Load Balancer, a Network Load Balancer, or a Gateway Load Balancer." @@ -180,10 +196,10 @@ "permissions" : [ "elasticloadbalancing:DescribeLoadBalancers" ] }, "read" : { - "permissions" : [ "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeLoadBalancerAttributes", "elasticloadbalancing:DescribeTags" ] + "permissions" : [ "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeLoadBalancerAttributes", "elasticloadbalancing:DescribeCapacityReservation", "elasticloadbalancing:DescribeTags" ] }, "update" : { - "permissions" : [ "elasticloadbalancing:ModifyLoadBalancerAttributes", "elasticloadbalancing:SetSubnets", "elasticloadbalancing:SetIpAddressType", "elasticloadbalancing:SetSecurityGroups", "elasticloadbalancing:AddTags", "elasticloadbalancing:RemoveTags" ] + "permissions" : [ "elasticloadbalancing:ModifyLoadBalancerAttributes", "elasticloadbalancing:ModifyCapacityReservation", "elasticloadbalancing:SetSubnets", "elasticloadbalancing:SetIpAddressType", "elasticloadbalancing:SetSecurityGroups", "elasticloadbalancing:AddTags", "elasticloadbalancing:RemoveTags" ] } } } \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-iotfleetwise-decodermanifest.json b/aws-cloudformation-schema/aws-iotfleetwise-decodermanifest.json index 9de98a9067..bffafc0472 100644 --- a/aws-cloudformation-schema/aws-iotfleetwise-decodermanifest.json +++ b/aws-cloudformation-schema/aws-iotfleetwise-decodermanifest.json @@ -1,297 +1,338 @@ { - "tagging" : { - "permissions" : [ "iotfleetwise:UntagResource", "iotfleetwise:TagResource", "iotfleetwise:ListTagsForResource" ], - "taggable" : true, - "tagOnCreate" : true, - "tagUpdatable" : true, - "tagProperty" : "/properties/Tags", - "cloudFormationSystemTags" : true - }, - "handlers" : { - "read" : { - "permissions" : [ "iotfleetwise:GetDecoderManifest", "iotfleetwise:ListDecoderManifestSignals", "iotfleetwise:ListDecoderManifestNetworkInterfaces", "iotfleetwise:ListTagsForResource" ] - }, - "create" : { - "permissions" : [ "iotfleetwise:CreateDecoderManifest", "iotfleetwise:GetDecoderManifest", "iotfleetwise:UpdateDecoderManifest", "iotfleetwise:ListDecoderManifestSignals", "iotfleetwise:ListDecoderManifestNetworkInterfaces", "iotfleetwise:ListTagsForResource", "iotfleetwise:TagResource" ] - }, - "update" : { - "permissions" : [ "iotfleetwise:UpdateDecoderManifest", "iotfleetwise:GetDecoderManifest", "iotfleetwise:ListDecoderManifestSignals", "iotfleetwise:ListDecoderManifestNetworkInterfaces", "iotfleetwise:ListTagsForResource", "iotfleetwise:TagResource", "iotfleetwise:UntagResource" ] - }, - "list" : { - "permissions" : [ "iotfleetwise:ListDecoderManifests" ] - }, - "delete" : { - "permissions" : [ "iotfleetwise:DeleteDecoderManifest", "iotfleetwise:GetDecoderManifest" ] - } - }, "typeName" : "AWS::IoTFleetWise::DecoderManifest", - "readOnlyProperties" : [ "/properties/Arn", "/properties/CreationTime", "/properties/LastModificationTime" ], "description" : "Definition of AWS::IoTFleetWise::DecoderManifest Resource Type", - "createOnlyProperties" : [ "/properties/Name", "/properties/ModelManifestArn" ], - "additionalProperties" : false, - "primaryIdentifier" : [ "/properties/Name" ], "definitions" : { - "ObdSignal" : { - "additionalProperties" : false, + "CanInterface" : { "type" : "object", "properties" : { - "BitRightShift" : { - "type" : [ "integer", "string" ] + "Name" : { + "type" : "string", + "maxLength" : 100, + "minLength" : 1 }, - "BitMaskLength" : { - "type" : [ "integer", "string" ] + "ProtocolName" : { + "type" : "string", + "maxLength" : 50, + "minLength" : 1 }, - "StartByte" : { + "ProtocolVersion" : { + "type" : "string", + "maxLength" : 50, + "minLength" : 1 + } + }, + "required" : [ "Name" ], + "additionalProperties" : false + }, + "CanSignal" : { + "type" : "object", + "properties" : { + "MessageId" : { "type" : [ "integer", "string" ] }, - "ByteLength" : { - "type" : [ "integer", "string" ] + "IsBigEndian" : { + "type" : [ "boolean", "string" ] }, - "PidResponseLength" : { + "IsSigned" : { + "type" : [ "boolean", "string" ] + }, + "StartBit" : { "type" : [ "integer", "string" ] }, - "Scaling" : { + "Offset" : { "type" : [ "number", "string" ] }, - "Pid" : { - "type" : [ "integer", "string" ] + "Factor" : { + "type" : [ "number", "string" ] }, - "ServiceMode" : { + "Length" : { "type" : [ "integer", "string" ] }, - "Offset" : { - "type" : [ "number", "string" ] + "Name" : { + "type" : "string", + "maxLength" : 100, + "minLength" : 1 } }, - "required" : [ "ByteLength", "Offset", "Pid", "PidResponseLength", "Scaling", "ServiceMode", "StartByte" ] + "required" : [ "Factor", "IsBigEndian", "IsSigned", "Length", "MessageId", "Offset", "StartBit" ], + "additionalProperties" : false + }, + "ManifestStatus" : { + "type" : "string", + "enum" : [ "ACTIVE", "DRAFT" ], + "default" : "DRAFT" }, "CanNetworkInterface" : { - "additionalProperties" : false, "type" : "object", "properties" : { + "InterfaceId" : { + "type" : "string", + "maxLength" : 50, + "minLength" : 1 + }, "Type" : { "type" : "string", "enum" : [ "CAN_INTERFACE" ] }, "CanInterface" : { "$ref" : "#/definitions/CanInterface" - }, + } + }, + "required" : [ "InterfaceId", "Type", "CanInterface" ], + "additionalProperties" : false + }, + "ObdNetworkInterface" : { + "type" : "object", + "properties" : { "InterfaceId" : { - "minLength" : 1, "type" : "string", - "maxLength" : 50 + "maxLength" : 50, + "minLength" : 1 + }, + "Type" : { + "type" : "string", + "enum" : [ "OBD_INTERFACE" ] + }, + "ObdInterface" : { + "$ref" : "#/definitions/ObdInterface" } }, - "required" : [ "InterfaceId", "Type", "CanInterface" ] + "required" : [ "InterfaceId", "Type", "ObdInterface" ], + "additionalProperties" : false }, - "ManifestStatus" : { - "default" : "DRAFT", - "type" : "string", - "enum" : [ "ACTIVE", "DRAFT" ] - }, - "ObdSignalDecoder" : { - "additionalProperties" : false, + "ObdInterface" : { "type" : "object", "properties" : { - "Type" : { + "Name" : { "type" : "string", - "enum" : [ "OBD_SIGNAL" ] + "maxLength" : 100, + "minLength" : 1 }, - "ObdSignal" : { - "$ref" : "#/definitions/ObdSignal" + "RequestMessageId" : { + "type" : [ "integer", "string" ] }, - "FullyQualifiedName" : { - "minLength" : 1, + "ObdStandard" : { "type" : "string", - "maxLength" : 150 + "maxLength" : 50, + "minLength" : 1 }, - "InterfaceId" : { - "minLength" : 1, - "type" : "string", - "maxLength" : 50 + "PidRequestIntervalSeconds" : { + "type" : [ "integer", "string" ] + }, + "DtcRequestIntervalSeconds" : { + "type" : [ "integer", "string" ] + }, + "UseExtendedIds" : { + "type" : [ "boolean", "string" ] + }, + "HasTransmissionEcu" : { + "type" : [ "boolean", "string" ] + } + }, + "required" : [ "Name", "RequestMessageId" ], + "additionalProperties" : false + }, + "ObdSignal" : { + "type" : "object", + "properties" : { + "PidResponseLength" : { + "type" : [ "integer", "string" ] + }, + "ServiceMode" : { + "type" : [ "integer", "string" ] + }, + "Pid" : { + "type" : [ "integer", "string" ] + }, + "Scaling" : { + "type" : [ "number", "string" ] + }, + "Offset" : { + "type" : [ "number", "string" ] + }, + "StartByte" : { + "type" : [ "integer", "string" ] + }, + "ByteLength" : { + "type" : [ "integer", "string" ] + }, + "BitRightShift" : { + "type" : [ "integer", "string" ] + }, + "BitMaskLength" : { + "type" : [ "integer", "string" ] } }, - "required" : [ "FullyQualifiedName", "InterfaceId", "Type", "ObdSignal" ] + "required" : [ "ByteLength", "Offset", "Pid", "PidResponseLength", "Scaling", "ServiceMode", "StartByte" ], + "additionalProperties" : false }, "CanSignalDecoder" : { - "additionalProperties" : false, "type" : "object", "properties" : { + "FullyQualifiedName" : { + "type" : "string", + "maxLength" : 150, + "minLength" : 1 + }, "Type" : { "type" : "string", "enum" : [ "CAN_SIGNAL" ] }, - "FullyQualifiedName" : { - "minLength" : 1, + "InterfaceId" : { "type" : "string", - "maxLength" : 150 + "maxLength" : 50, + "minLength" : 1 }, "CanSignal" : { "$ref" : "#/definitions/CanSignal" - }, - "InterfaceId" : { - "minLength" : 1, - "type" : "string", - "maxLength" : 50 } }, - "required" : [ "FullyQualifiedName", "InterfaceId", "Type", "CanSignal" ] + "required" : [ "FullyQualifiedName", "InterfaceId", "Type", "CanSignal" ], + "additionalProperties" : false }, - "CanInterface" : { - "additionalProperties" : false, + "ObdSignalDecoder" : { "type" : "object", "properties" : { - "ProtocolName" : { - "minLength" : 1, + "FullyQualifiedName" : { "type" : "string", - "maxLength" : 50 + "maxLength" : 150, + "minLength" : 1 }, - "ProtocolVersion" : { - "minLength" : 1, + "Type" : { "type" : "string", - "maxLength" : 50 + "enum" : [ "OBD_SIGNAL" ] }, - "Name" : { - "minLength" : 1, + "InterfaceId" : { "type" : "string", - "maxLength" : 100 + "maxLength" : 50, + "minLength" : 1 + }, + "ObdSignal" : { + "$ref" : "#/definitions/ObdSignal" } }, - "required" : [ "Name" ] + "required" : [ "FullyQualifiedName", "InterfaceId", "Type", "ObdSignal" ], + "additionalProperties" : false }, - "ObdNetworkInterface" : { - "additionalProperties" : false, + "Tag" : { "type" : "object", "properties" : { - "Type" : { + "Key" : { "type" : "string", - "enum" : [ "OBD_INTERFACE" ] + "maxLength" : 128, + "minLength" : 1 }, - "InterfaceId" : { - "minLength" : 1, + "Value" : { "type" : "string", - "maxLength" : 50 - }, - "ObdInterface" : { - "$ref" : "#/definitions/ObdInterface" + "maxLength" : 256, + "minLength" : 0 } }, - "required" : [ "InterfaceId", "Type", "ObdInterface" ] + "required" : [ "Key", "Value" ], + "additionalProperties" : false }, - "CanSignal" : { - "additionalProperties" : false, + "CustomDecodingNetworkInterface" : { "type" : "object", "properties" : { - "IsBigEndian" : { - "type" : [ "boolean", "string" ] - }, - "Length" : { - "type" : [ "integer", "string" ] - }, - "Factor" : { - "type" : [ "number", "string" ] - }, - "IsSigned" : { - "type" : [ "boolean", "string" ] - }, - "StartBit" : { - "type" : [ "integer", "string" ] - }, - "MessageId" : { - "type" : [ "integer", "string" ] + "InterfaceId" : { + "type" : "string", + "maxLength" : 50, + "minLength" : 1 }, - "Offset" : { - "type" : [ "number", "string" ] + "Type" : { + "type" : "string", + "enum" : [ "CUSTOM_DECODING_INTERFACE" ] }, + "CustomDecodingInterface" : { + "$ref" : "#/definitions/CustomDecodingInterface" + } + }, + "required" : [ "InterfaceId", "Type", "CustomDecodingInterface" ], + "additionalProperties" : false + }, + "CustomDecodingInterface" : { + "type" : "object", + "properties" : { "Name" : { - "minLength" : 1, "type" : "string", - "maxLength" : 100 + "maxLength" : 100, + "minLength" : 1, + "pattern" : "^[a-zA-Z\\d\\-_:]+$" } }, - "required" : [ "Factor", "IsBigEndian", "IsSigned", "Length", "MessageId", "Offset", "StartBit" ] + "required" : [ "Name" ], + "additionalProperties" : false }, - "Tag" : { - "additionalProperties" : false, + "CustomDecodingSignal" : { "type" : "object", "properties" : { - "Value" : { - "minLength" : 0, + "Id" : { "type" : "string", - "maxLength" : 256 - }, - "Key" : { + "maxLength" : 150, "minLength" : 1, - "type" : "string", - "maxLength" : 128 + "pattern" : "^(?!.*\\.\\.)[a-zA-Z0-9_\\-#:.]+$" } }, - "required" : [ "Key", "Value" ] + "required" : [ "Id" ], + "additionalProperties" : false }, - "ObdInterface" : { - "additionalProperties" : false, + "CustomDecodingSignalDecoder" : { "type" : "object", "properties" : { - "HasTransmissionEcu" : { - "type" : [ "boolean", "string" ] - }, - "PidRequestIntervalSeconds" : { - "type" : [ "integer", "string" ] - }, - "UseExtendedIds" : { - "type" : [ "boolean", "string" ] - }, - "RequestMessageId" : { - "type" : [ "integer", "string" ] + "FullyQualifiedName" : { + "type" : "string", + "maxLength" : 150, + "minLength" : 1 }, - "ObdStandard" : { - "minLength" : 1, + "Type" : { "type" : "string", - "maxLength" : 50 + "enum" : [ "CUSTOM_DECODING_SIGNAL" ] }, - "Name" : { - "minLength" : 1, + "InterfaceId" : { "type" : "string", - "maxLength" : 100 + "maxLength" : 50, + "minLength" : 1 }, - "DtcRequestIntervalSeconds" : { - "type" : [ "integer", "string" ] + "CustomDecodingSignal" : { + "$ref" : "#/definitions/CustomDecodingSignal" } }, - "required" : [ "Name", "RequestMessageId" ] + "required" : [ "FullyQualifiedName", "InterfaceId", "Type", "CustomDecodingSignal" ], + "additionalProperties" : false + }, + "DefaultForUnmappedSignalsType" : { + "type" : "string", + "enum" : [ "CUSTOM_DECODING" ] } }, - "required" : [ "Name", "ModelManifestArn" ], "properties" : { - "LastModificationTime" : { - "format" : "date-time", + "Arn" : { "type" : "string" }, - "SignalDecoders" : { - "minItems" : 1, - "maxItems" : 5000, - "insertionOrder" : false, - "type" : "array", - "items" : { - "oneOf" : [ { - "$ref" : "#/definitions/CanSignalDecoder" - }, { - "$ref" : "#/definitions/ObdSignalDecoder" - } ] - } - }, - "Status" : { - "$ref" : "#/definitions/ManifestStatus" + "CreationTime" : { + "type" : "string", + "format" : "date-time" }, "Description" : { + "type" : "string", + "maxLength" : 2048, "minLength" : 1, - "pattern" : "^[^\\u0000-\\u001F\\u007F]+$", + "pattern" : "^[^\\u0000-\\u001F\\u007F]+$" + }, + "LastModificationTime" : { + "type" : "string", + "format" : "date-time" + }, + "ModelManifestArn" : { + "type" : "string" + }, + "Name" : { "type" : "string", - "maxLength" : 2048 + "maxLength" : 100, + "minLength" : 1, + "pattern" : "^[a-zA-Z\\d\\-_:]+$" }, "NetworkInterfaces" : { - "minItems" : 1, - "maxItems" : 5000, "insertionOrder" : false, "type" : "array", "items" : { @@ -299,34 +340,74 @@ "$ref" : "#/definitions/CanNetworkInterface" }, { "$ref" : "#/definitions/ObdNetworkInterface" + }, { + "$ref" : "#/definitions/CustomDecodingNetworkInterface" } ] - } + }, + "maxItems" : 5000, + "minItems" : 1 }, - "CreationTime" : { - "format" : "date-time", - "type" : "string" + "SignalDecoders" : { + "insertionOrder" : false, + "type" : "array", + "items" : { + "oneOf" : [ { + "$ref" : "#/definitions/CanSignalDecoder" + }, { + "$ref" : "#/definitions/ObdSignalDecoder" + }, { + "$ref" : "#/definitions/CustomDecodingSignalDecoder" + } ] + }, + "maxItems" : 5000, + "minItems" : 1 }, - "Arn" : { - "type" : "string" + "Status" : { + "$ref" : "#/definitions/ManifestStatus" }, - "ModelManifestArn" : { - "type" : "string" + "DefaultForUnmappedSignals" : { + "$ref" : "#/definitions/DefaultForUnmappedSignalsType" }, "Tags" : { - "minItems" : 0, - "maxItems" : 50, - "uniqueItems" : true, - "insertionOrder" : false, "type" : "array", "items" : { "$ref" : "#/definitions/Tag" - } + }, + "maxItems" : 50, + "minItems" : 0, + "insertionOrder" : false, + "uniqueItems" : true + } + }, + "required" : [ "Name", "ModelManifestArn" ], + "readOnlyProperties" : [ "/properties/Arn", "/properties/CreationTime", "/properties/LastModificationTime" ], + "createOnlyProperties" : [ "/properties/Name", "/properties/ModelManifestArn" ], + "writeOnlyProperties" : [ "/properties/DefaultForUnmappedSignals" ], + "primaryIdentifier" : [ "/properties/Name" ], + "handlers" : { + "create" : { + "permissions" : [ "iotfleetwise:CreateDecoderManifest", "iotfleetwise:GetDecoderManifest", "iotfleetwise:UpdateDecoderManifest", "iotfleetwise:ListDecoderManifestSignals", "iotfleetwise:ListDecoderManifestNetworkInterfaces", "iotfleetwise:ListTagsForResource", "iotfleetwise:TagResource" ] }, - "Name" : { - "minLength" : 1, - "pattern" : "^[a-zA-Z\\d\\-_:]+$", - "type" : "string", - "maxLength" : 100 + "read" : { + "permissions" : [ "iotfleetwise:GetDecoderManifest", "iotfleetwise:ListDecoderManifestSignals", "iotfleetwise:ListDecoderManifestNetworkInterfaces", "iotfleetwise:ListTagsForResource" ] + }, + "update" : { + "permissions" : [ "iotfleetwise:UpdateDecoderManifest", "iotfleetwise:GetDecoderManifest", "iotfleetwise:ListDecoderManifestSignals", "iotfleetwise:ListDecoderManifestNetworkInterfaces", "iotfleetwise:ListTagsForResource", "iotfleetwise:TagResource", "iotfleetwise:UntagResource" ] + }, + "delete" : { + "permissions" : [ "iotfleetwise:DeleteDecoderManifest", "iotfleetwise:GetDecoderManifest" ] + }, + "list" : { + "permissions" : [ "iotfleetwise:ListDecoderManifests" ] } + }, + "additionalProperties" : false, + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : true, + "tagProperty" : "/properties/Tags", + "permissions" : [ "iotfleetwise:UntagResource", "iotfleetwise:TagResource", "iotfleetwise:ListTagsForResource" ] } } \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-iotfleetwise-statetemplate.json b/aws-cloudformation-schema/aws-iotfleetwise-statetemplate.json new file mode 100644 index 0000000000..1c0d86b97a --- /dev/null +++ b/aws-cloudformation-schema/aws-iotfleetwise-statetemplate.json @@ -0,0 +1,131 @@ +{ + "typeName" : "AWS::IoTFleetWise::StateTemplate", + "description" : "Definition of AWS::IoTFleetWise::StateTemplate Resource Type", + "definitions" : { + "Tag" : { + "type" : "object", + "properties" : { + "Key" : { + "type" : "string", + "maxLength" : 128, + "minLength" : 1 + }, + "Value" : { + "type" : "string", + "maxLength" : 256, + "minLength" : 0 + } + }, + "required" : [ "Key", "Value" ], + "additionalProperties" : false + }, + "Unit" : { + "type" : "object", + "additionalProperties" : false + } + }, + "properties" : { + "Arn" : { + "type" : "string" + }, + "CreationTime" : { + "type" : "string", + "format" : "date-time" + }, + "Description" : { + "type" : "string", + "maxLength" : 2048, + "minLength" : 1, + "pattern" : "^[^\\u0000-\\u001F\\u007F]+$" + }, + "LastModificationTime" : { + "type" : "string", + "format" : "date-time" + }, + "Name" : { + "type" : "string", + "maxLength" : 100, + "minLength" : 1, + "pattern" : "^[a-zA-Z\\d\\-_:]+$" + }, + "SignalCatalogArn" : { + "type" : "string" + }, + "StateTemplateProperties" : { + "type" : "array", + "insertionOrder" : false, + "items" : { + "type" : "string", + "maxLength" : 150, + "minLength" : 1, + "pattern" : "^[a-zA-Z0-9_.]+$" + }, + "maxItems" : 500, + "minItems" : 1 + }, + "DataExtraDimensions" : { + "type" : "array", + "insertionOrder" : false, + "items" : { + "type" : "string", + "maxLength" : 150, + "minLength" : 1, + "pattern" : "^[a-zA-Z0-9_.]+$" + }, + "maxItems" : 5, + "minItems" : 0 + }, + "MetadataExtraDimensions" : { + "type" : "array", + "insertionOrder" : false, + "items" : { + "type" : "string", + "maxLength" : 150, + "minLength" : 1, + "pattern" : "^[a-zA-Z0-9_.]+$" + }, + "maxItems" : 5, + "minItems" : 0 + }, + "Tags" : { + "type" : "array", + "insertionOrder" : false, + "uniqueItems" : true, + "items" : { + "$ref" : "#/definitions/Tag" + }, + "maxItems" : 50, + "minItems" : 0 + } + }, + "required" : [ "Name", "SignalCatalogArn", "StateTemplateProperties" ], + "readOnlyProperties" : [ "/properties/Arn", "/properties/CreationTime", "/properties/LastModificationTime" ], + "createOnlyProperties" : [ "/properties/Name", "/properties/SignalCatalogArn" ], + "primaryIdentifier" : [ "/properties/Name" ], + "handlers" : { + "create" : { + "permissions" : [ "iotfleetwise:GetStateTemplate", "iotfleetwise:CreateStateTemplate", "iotfleetwise:ListTagsForResource", "iotfleetwise:TagResource" ] + }, + "read" : { + "permissions" : [ "iotfleetwise:GetStateTemplate", "iotfleetwise:ListTagsForResource" ] + }, + "update" : { + "permissions" : [ "iotfleetwise:UpdateStateTemplate", "iotfleetwise:GetStateTemplate", "iotfleetwise:ListTagsForResource", "iotfleetwise:TagResource", "iotfleetwise:UntagResource" ] + }, + "delete" : { + "permissions" : [ "iotfleetwise:DeleteStateTemplate", "iotfleetwise:GetStateTemplate" ] + }, + "list" : { + "permissions" : [ "iotfleetwise:ListStateTemplates" ] + } + }, + "additionalProperties" : false, + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : true, + "tagProperty" : "/properties/Tags", + "permissions" : [ "iotfleetwise:ListTagsForResource", "iotfleetwise:TagResource", "iotfleetwise:UntagResource" ] + } +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-resourcegroups-tagsynctask.json b/aws-cloudformation-schema/aws-resourcegroups-tagsynctask.json new file mode 100644 index 0000000000..7d469dc52f --- /dev/null +++ b/aws-cloudformation-schema/aws-resourcegroups-tagsynctask.json @@ -0,0 +1,89 @@ +{ + "typeName" : "AWS::ResourceGroups::TagSyncTask", + "description" : "Schema for ResourceGroups::TagSyncTask", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "properties" : { + "Group" : { + "description" : "The Amazon resource name (ARN) or name of the application group for which you want to create a tag-sync task", + "type" : "string", + "maxLength" : 1600, + "minLength" : 12, + "pattern" : "([a-zA-Z0-9_\\\\.-]{1,150}/[a-z0-9]{26})|(arn:aws(-[a-z]+)*:resource-groups(-(test|beta|gamma))?:[a-z]{2}(-[a-z]+)+-\\d{1}:[0-9]{12}:group/[a-zA-Z0-9_\\\\.-]{1,150}/[a-z0-9]{26})" + }, + "GroupArn" : { + "description" : "The Amazon resource name (ARN) of the ApplicationGroup for which the TagSyncTask is created", + "type" : "string", + "maxLength" : 1600, + "minLength" : 12, + "pattern" : "arn:aws(-[a-z]+)*:resource-groups(-(test|beta|gamma))?:[a-z]{2}(-[a-z]+)+-\\d{1}:[0-9]{12}:group/[a-zA-Z0-9_\\.-]{1,150}/[a-z0-9]{26}" + }, + "GroupName" : { + "description" : "The Name of the application group for which the TagSyncTask is created", + "type" : "string", + "maxLength" : 300, + "minLength" : 1, + "pattern" : "[a-zA-Z0-9_\\.-]{1,150}/[a-z0-9]{26}" + }, + "TaskArn" : { + "description" : "The ARN of the TagSyncTask resource", + "type" : "string", + "maxLength" : 1600, + "minLength" : 12, + "pattern" : "arn:aws(-[a-z]+)*:resource-groups(-(test|beta|gamma))?:[a-z]{2}(-[a-z]+)+-\\d{1}:[0-9]{12}:group/[a-zA-Z0-9_\\.-]{1,150}/[a-z0-9]{26}/tag-sync-task/[a-z0-9]{26}" + }, + "TagKey" : { + "description" : "The tag key. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application.", + "type" : "string", + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, + "TagValue" : { + "description" : "The tag value. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application.", + "type" : "string", + "maxLength" : 256, + "minLength" : 0, + "pattern" : "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$" + }, + "RoleArn" : { + "description" : "The Amazon resource name (ARN) of the role assumed by the service to tag and untag resources on your behalf.", + "type" : "string", + "maxLength" : 2048, + "minLength" : 20, + "pattern" : "arn:(aws[a-zA-Z-]*)?:iam::\\d{12}:role/?[a-zA-Z_0-9+=,.@\\-_/]+" + }, + "Status" : { + "description" : "The status of the TagSyncTask", + "type" : "string", + "enum" : [ "ACTIVE", "ERROR" ] + } + }, + "additionalProperties" : false, + "required" : [ "Group", "TagKey", "TagValue", "RoleArn" ], + "createOnlyProperties" : [ "/properties/Group", "/properties/TagKey", "/properties/TagValue", "/properties/RoleArn" ], + "readOnlyProperties" : [ "/properties/TaskArn", "/properties/Status", "/properties/GroupName", "/properties/GroupArn" ], + "primaryIdentifier" : [ "/properties/TaskArn" ], + "propertyTransform" : { + "/properties/Group" : "$split(Group, \"/\")[1] & \"/\" & $split(Group, \"/\")[2] $OR Group" + }, + "tagging" : { + "taggable" : false, + "tagOnCreate" : false, + "tagUpdatable" : false, + "cloudFormationSystemTags" : false + }, + "handlers" : { + "create" : { + "permissions" : [ "resource-groups:StartTagSyncTask", "resource-groups:CreateGroup", "iam:PassRole" ] + }, + "read" : { + "permissions" : [ "resource-groups:GetTagSyncTask" ] + }, + "delete" : { + "permissions" : [ "resource-groups:CancelTagSyncTask", "resource-groups:DeleteGroup" ] + }, + "list" : { + "permissions" : [ "resource-groups:ListTagSyncTasks" ] + } + } +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-wisdom-messagetemplate.json b/aws-cloudformation-schema/aws-wisdom-messagetemplate.json new file mode 100644 index 0000000000..3c7b8b7628 --- /dev/null +++ b/aws-cloudformation-schema/aws-wisdom-messagetemplate.json @@ -0,0 +1,715 @@ +{ + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-wisdom", + "typeName" : "AWS::Wisdom::MessageTemplate", + "description" : "Definition of AWS::Wisdom::MessageTemplate Resource Type", + "definitions" : { + "ChannelSubtype" : { + "description" : "The channel subtype this message template applies to.", + "type" : "string", + "enum" : [ "EMAIL", "SMS" ] + }, + "Content" : { + "description" : "The content of the message template.", + "type" : "object", + "properties" : { + "EmailMessageTemplateContent" : { + "$ref" : "#/definitions/EmailMessageTemplateContent" + }, + "SmsMessageTemplateContent" : { + "$ref" : "#/definitions/SmsMessageTemplateContent" + } + }, + "oneOf" : [ { + "required" : [ "EmailMessageTemplateContent" ] + }, { + "required" : [ "SmsMessageTemplateContent" ] + } ], + "additionalProperties" : false + }, + "EmailMessageTemplateContent" : { + "description" : "The content of message template that applies to email channel subtype.", + "type" : "object", + "properties" : { + "Subject" : { + "description" : "The subject line, or title, to use in email messages.", + "type" : "string", + "minLength" : 1 + }, + "Body" : { + "$ref" : "#/definitions/EmailMessageTemplateContentBody" + }, + "Headers" : { + "description" : "The email headers to include in email messages.", + "type" : "array", + "items" : { + "$ref" : "#/definitions/EmailMessageTemplateHeader" + }, + "uniqueItems" : true, + "insertionOrder" : true, + "minItems" : 0, + "maxItems" : 15 + } + }, + "required" : [ "Subject", "Body", "Headers" ], + "additionalProperties" : false + }, + "EmailMessageTemplateContentBody" : { + "description" : "The body to use in email messages.", + "type" : "object", + "properties" : { + "PlainText" : { + "description" : "The message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices.", + "$ref" : "#/definitions/MessageTemplateBodyContentProvider" + }, + "Html" : { + "description" : "The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message.", + "$ref" : "#/definitions/MessageTemplateBodyContentProvider" + } + }, + "additionalProperties" : false + }, + "EmailMessageTemplateHeader" : { + "description" : "The email header to include in email messages.", + "type" : "object", + "properties" : { + "Name" : { + "description" : "The name of the email header.", + "type" : "string", + "pattern" : "^[!-9;-@A-~]+$", + "minLength" : 1, + "maxLength" : 126 + }, + "Value" : { + "description" : "The value of the email header.", + "type" : "string", + "pattern" : "[ -~]*", + "minLength" : 1, + "maxLength" : 870 + } + }, + "additionalProperties" : false + }, + "SmsMessageTemplateContent" : { + "description" : "The content of message template that applies to SMS channel subtype.", + "type" : "object", + "properties" : { + "Body" : { + "$ref" : "#/definitions/SmsMessageTemplateContentBody" + } + }, + "required" : [ "Body" ], + "additionalProperties" : false + }, + "SmsMessageTemplateContentBody" : { + "description" : "The body to use in SMS messages.", + "type" : "object", + "properties" : { + "PlainText" : { + "$ref" : "#/definitions/MessageTemplateBodyContentProvider" + } + }, + "additionalProperties" : false + }, + "MessageTemplateBodyContentProvider" : { + "description" : "The container of message template body.", + "type" : "object", + "properties" : { + "Content" : { + "type" : "string", + "minLength" : 1 + } + }, + "additionalProperties" : false + }, + "MessageTemplateAttributes" : { + "description" : "An object that specifies the default values to use for variables in the message template. This object contains different categories of key-value pairs. Each key defines a variable or placeholder in the message template. The corresponding value defines the default value for that variable.", + "type" : "object", + "properties" : { + "SystemAttributes" : { + "$ref" : "#/definitions/SystemAttributes" + }, + "AgentAttributes" : { + "$ref" : "#/definitions/AgentAttributes" + }, + "CustomerProfileAttributes" : { + "$ref" : "#/definitions/CustomerProfileAttributes" + }, + "CustomAttributes" : { + "$ref" : "#/definitions/CustomAttributes" + } + }, + "additionalProperties" : false + }, + "SystemAttributes" : { + "description" : "The system attributes that are used with the message template.", + "type" : "object", + "properties" : { + "Name" : { + "description" : "The name of the task.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "CustomerEndpoint" : { + "description" : "The CustomerEndpoint attribute.", + "$ref" : "#/definitions/SystemEndpointAttributes" + }, + "SystemEndpoint" : { + "description" : "The SystemEndpoint attribute.", + "$ref" : "#/definitions/SystemEndpointAttributes" + } + }, + "additionalProperties" : false + }, + "SystemEndpointAttributes" : { + "description" : "The system endpoint attributes that are used with the message template.", + "type" : "object", + "properties" : { + "Address" : { + "description" : "The customer's phone number if used with customerEndpoint, or the number the customer dialed to call your contact center if used with systemEndpoint.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + } + }, + "additionalProperties" : false + }, + "AgentAttributes" : { + "description" : "The agent attributes that are used with the message template.", + "type" : "object", + "properties" : { + "FirstName" : { + "description" : "The agent’s first name as entered in their Amazon Connect user account.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "LastName" : { + "description" : "The agent’s last name as entered in their Amazon Connect user account.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + } + }, + "additionalProperties" : false + }, + "CustomerProfileAttributes" : { + "description" : "The customer profile attributes that are used with the message template.", + "type" : "object", + "properties" : { + "ProfileId" : { + "description" : "The unique identifier of a customer profile.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "ProfileARN" : { + "description" : "The ARN of a customer profile.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "FirstName" : { + "description" : "The customer's first name.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "MiddleName" : { + "description" : "The customer's middle name.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "LastName" : { + "description" : "The customer's last name.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "AccountNumber" : { + "description" : "A unique account number that you have given to the customer.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "EmailAddress" : { + "description" : "The customer's email address, which has not been specified as a personal or business address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "PhoneNumber" : { + "description" : "The customer's phone number, which has not been specified as a mobile, home, or business number.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "AdditionalInformation" : { + "description" : "Any additional information relevant to the customer's profile.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "PartyType" : { + "description" : "The customer's party type.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "BusinessName" : { + "description" : "The name of the customer's business.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "BirthDate" : { + "description" : "The customer's birth date.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "Gender" : { + "description" : "The customer's gender.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "MobilePhoneNumber" : { + "description" : "The customer's mobile phone number.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "HomePhoneNumber" : { + "description" : "The customer's home phone number.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "BusinessPhoneNumber" : { + "description" : "The customer's business phone number.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "BusinessEmailAddress" : { + "description" : "The customer's business email address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "Address1" : { + "description" : "The first line of a customer address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "Address2" : { + "description" : "The second line of a customer address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "Address3" : { + "description" : "The third line of a customer address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "Address4" : { + "description" : "The fourth line of a customer address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "City" : { + "description" : "The city in which a customer lives.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "County" : { + "description" : "The county in which a customer lives.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "Country" : { + "description" : "The country in which a customer lives.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "PostalCode" : { + "description" : "The postal code of a customer address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "Province" : { + "description" : "The province in which a customer lives.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "State" : { + "description" : "The state in which a customer lives.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "ShippingAddress1" : { + "description" : "The first line of a customer’s shipping address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "ShippingAddress2" : { + "description" : "The second line of a customer’s shipping address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "ShippingAddress3" : { + "description" : "The third line of a customer’s shipping address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "ShippingAddress4" : { + "description" : "The fourth line of a customer’s shipping address", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "ShippingCity" : { + "description" : "The city of a customer’s shipping address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "ShippingCounty" : { + "description" : "The county of a customer’s shipping address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "ShippingCountry" : { + "description" : "The country of a customer’s shipping address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "ShippingPostalCode" : { + "description" : "The postal code of a customer’s shipping address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "ShippingProvince" : { + "description" : "The province of a customer’s shipping address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "ShippingState" : { + "description" : "The state of a customer’s shipping address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "MailingAddress1" : { + "description" : "The first line of a customer’s mailing address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "MailingAddress2" : { + "description" : "The second line of a customer’s mailing address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "MailingAddress3" : { + "description" : "The third line of a customer’s mailing address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "MailingAddress4" : { + "description" : "The fourth line of a customer’s mailing address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "MailingCity" : { + "description" : "The city of a customer’s mailing address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "MailingCounty" : { + "description" : "The county of a customer’s mailing address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "MailingCountry" : { + "description" : "The country of a customer’s mailing address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "MailingPostalCode" : { + "description" : "The postal code of a customer’s mailing address", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "MailingProvince" : { + "description" : "The province of a customer’s mailing address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "MailingState" : { + "description" : "The state of a customer’s mailing address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "BillingAddress1" : { + "description" : "The first line of a customer’s billing address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "BillingAddress2" : { + "description" : "The second line of a customer’s billing address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "BillingAddress3" : { + "description" : "The third line of a customer’s billing address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "BillingAddress4" : { + "description" : "The fourth line of a customer’s billing address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "BillingCity" : { + "description" : "The city of a customer’s billing address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "BillingCounty" : { + "description" : "The county of a customer’s billing address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "BillingCountry" : { + "description" : "The country of a customer’s billing address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "BillingPostalCode" : { + "description" : "The postal code of a customer’s billing address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "BillingProvince" : { + "description" : "The province of a customer’s billing address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "BillingState" : { + "description" : "The state of a customer’s billing address.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + }, + "Custom" : { + "$ref" : "#/definitions/CustomAttributes" + } + }, + "additionalProperties" : false + }, + "CustomAttributes" : { + "description" : "The custom attributes that are used with the message template.", + "type" : "object", + "patternProperties" : { + "^[a-zA-Z0-9\\s._:/=+@-]*$" : { + "description" : "Value of a custom attribute.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32767 + } + }, + "additionalProperties" : false + }, + "GroupingConfiguration" : { + "description" : "The configuration information of the user groups that the message template is accessible to.", + "type" : "object", + "properties" : { + "Criteria" : { + "description" : "The criteria used for grouping Amazon Q in Connect users.", + "type" : "string", + "minLength" : 1, + "maxLength" : 100 + }, + "Values" : { + "description" : "The list of values that define different groups of Amazon Q in Connect users.", + "type" : "array", + "items" : { + "$ref" : "#/definitions/GroupingValue" + }, + "insertionOrder" : true, + "uniqueItems" : true + } + }, + "required" : [ "Criteria", "Values" ], + "additionalProperties" : false + }, + "GroupingValue" : { + "description" : "The value that define the group of Amazon Q in Connect users.", + "type" : "string", + "minLength" : 1, + "maxLength" : 2048 + }, + "Tag" : { + "description" : "A key-value pair to associate with a resource.", + "type" : "object", + "properties" : { + "Key" : { + "description" : "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -", + "type" : "string", + "pattern" : "^(?!aws:)[a-zA-Z+-=._:/]+$", + "minLength" : 1, + "maxLength" : 128 + }, + "Value" : { + "description" : "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -", + "type" : "string", + "minLength" : 1, + "maxLength" : 256 + } + }, + "required" : [ "Key", "Value" ], + "additionalProperties" : false + } + }, + "properties" : { + "KnowledgeBaseArn" : { + "description" : "The Amazon Resource Name (ARN) of the knowledge base to which the message template belongs.", + "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})?$" + }, + "MessageTemplateId" : { + "description" : "The unique identifier of the message template.", + "type" : "string", + "pattern" : "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, + "MessageTemplateArn" : { + "description" : "The Amazon Resource Name (ARN) of the message template.", + "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})?$" + }, + "Name" : { + "description" : "The name of the message template.", + "type" : "string", + "pattern" : "^[a-zA-Z0-9\\\\s_.,-]+", + "minLength" : 1, + "maxLength" : 255 + }, + "ChannelSubtype" : { + "$ref" : "#/definitions/ChannelSubtype" + }, + "Content" : { + "$ref" : "#/definitions/Content" + }, + "Description" : { + "description" : "The description of the message template.", + "type" : "string", + "pattern" : "^[a-zA-Z0-9\\\\s_.,-]+", + "minLength" : 1, + "maxLength" : 255 + }, + "Language" : { + "description" : "The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW", + "type" : "string", + "minLength" : 2, + "maxLength" : 5 + }, + "GroupingConfiguration" : { + "$ref" : "#/definitions/GroupingConfiguration" + }, + "DefaultAttributes" : { + "$ref" : "#/definitions/MessageTemplateAttributes" + }, + "MessageTemplateContentSha256" : { + "description" : "The content SHA256 of the message template.", + "type" : "string", + "minLength" : 1, + "maxLength" : 64 + }, + "Tags" : { + "description" : "The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.", + "insertionOrder" : false, + "uniqueItems" : true, + "items" : { + "$ref" : "#/definitions/Tag" + }, + "type" : "array" + } + }, + "required" : [ "KnowledgeBaseArn", "ChannelSubtype", "Name", "Content" ], + "readOnlyProperties" : [ "/properties/MessageTemplateId", "/properties/MessageTemplateArn", "/properties/MessageTemplateContentSha256" ], + "createOnlyProperties" : [ "/properties/KnowledgeBaseArn", "/properties/ChannelSubtype" ], + "primaryIdentifier" : [ "/properties/MessageTemplateArn" ], + "additionalProperties" : false, + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : true, + "tagProperty" : "/properties/Tags", + "permissions" : [ "wisdom:TagResource", "wisdom:UntagResource" ] + }, + "replacementStrategy" : "create_then_delete", + "handlers" : { + "create" : { + "permissions" : [ "wisdom:CreateMessageTemplate", "wisdom:GetMessageTemplate", "wisdom:TagResource", "connect:SearchRoutingProfiles", "connect:DescribeRoutingProfile" ] + }, + "update" : { + "permissions" : [ "wisdom:UpdateMessageTemplate", "wisdom:UpdateMessageTemplateMetadata", "wisdom:GetMessageTemplate", "wisdom:TagResource", "wisdom:UntagResource", "connect:SearchRoutingProfiles", "connect:DescribeRoutingProfile" ] + }, + "delete" : { + "permissions" : [ "wisdom:DeleteMessageTemplate", "wisdom:UntagResource" ] + }, + "list" : { + "handlerSchema" : { + "properties" : { + "KnowledgeBaseArn" : { + "$ref" : "resource-schema.json#/properties/KnowledgeBaseArn" + } + }, + "required" : [ "KnowledgeBaseArn" ] + }, + "permissions" : [ "wisdom:ListMessageTemplates" ] + }, + "read" : { + "permissions" : [ "wisdom:GetMessageTemplate" ] + } + } +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-wisdom-messagetemplateversion.json b/aws-cloudformation-schema/aws-wisdom-messagetemplateversion.json new file mode 100644 index 0000000000..08cdcd50b8 --- /dev/null +++ b/aws-cloudformation-schema/aws-wisdom-messagetemplateversion.json @@ -0,0 +1,61 @@ +{ + "typeName" : "AWS::Wisdom::MessageTemplateVersion", + "description" : "A version for the specified customer-managed message template within the specified knowledge base.", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "properties" : { + "MessageTemplateArn" : { + "description" : "The unqualified Amazon Resource Name (ARN) of the message template.", + "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})?$" + }, + "MessageTemplateVersionArn" : { + "description" : "The unqualified Amazon Resource Name (ARN) of the message template version.", + "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}):[0-9]+?$" + }, + "MessageTemplateContentSha256" : { + "description" : "The content SHA256 of the message template.", + "type" : "string", + "minLength" : 1, + "maxLength" : 64 + }, + "MessageTemplateVersionNumber" : { + "description" : "Current version number of the message template.", + "type" : "number" + } + }, + "additionalProperties" : false, + "tagging" : { + "taggable" : false + }, + "required" : [ "MessageTemplateArn" ], + "readOnlyProperties" : [ "/properties/MessageTemplateVersionNumber", "/properties/MessageTemplateVersionArn" ], + "createOnlyProperties" : [ "/properties/MessageTemplateArn" ], + "conditionalCreateOnlyProperties" : [ "/properties/MessageTemplateContentSha256" ], + "primaryIdentifier" : [ "/properties/MessageTemplateVersionArn" ], + "handlers" : { + "create" : { + "permissions" : [ "wisdom:CreateMessageTemplateVersion", "wisdom:ListMessageTemplateVersions" ] + }, + "delete" : { + "permissions" : [ "wisdom:DeleteMessageTemplate" ] + }, + "update" : { + "permissions" : [ "wisdom:CreateMessageTemplateVersion" ] + }, + "list" : { + "handlerSchema" : { + "properties" : { + "MessageTemplateArn" : { + "$ref" : "resource-schema.json#/properties/MessageTemplateArn" + } + }, + "required" : [ "MessageTemplateArn" ] + }, + "permissions" : [ "wisdom:ListMessageTemplateVersions" ] + }, + "read" : { + "permissions" : [ "wisdom:GetMessageTemplate" ] + } + } +} \ No newline at end of file diff --git a/meta/.botocore.version b/meta/.botocore.version index 04d3ddcd51..b82b6d5b53 100644 --- a/meta/.botocore.version +++ b/meta/.botocore.version @@ -1 +1 @@ -1.35.66 +1.35.67 diff --git a/provider/cmd/pulumi-gen-aws-native/supported-types.txt b/provider/cmd/pulumi-gen-aws-native/supported-types.txt index d2b4e75470..67bbbd9f21 100644 --- a/provider/cmd/pulumi-gen-aws-native/supported-types.txt +++ b/provider/cmd/pulumi-gen-aws-native/supported-types.txt @@ -135,6 +135,7 @@ AWS::CE::CostCategory AWS::Cassandra::Keyspace AWS::Cassandra::Table AWS::CertificateManager::Account +AWS::Chatbot::CustomAction AWS::Chatbot::MicrosoftTeamsChannelConfiguration AWS::Chatbot::SlackChannelConfiguration AWS::CleanRooms::AnalysisTemplate @@ -174,6 +175,7 @@ AWS::CloudFront::PublicKey AWS::CloudFront::RealtimeLogConfig AWS::CloudFront::ResponseHeadersPolicy AWS::CloudTrail::Channel +AWS::CloudTrail::Dashboard AWS::CloudTrail::EventDataStore AWS::CloudTrail::ResourcePolicy AWS::CloudTrail::Trail @@ -873,6 +875,7 @@ AWS::ResourceExplorer2::DefaultViewAssociation AWS::ResourceExplorer2::Index AWS::ResourceExplorer2::View AWS::ResourceGroups::Group +AWS::ResourceGroups::TagSyncTask AWS::RoboMaker::Fleet AWS::RoboMaker::Robot AWS::RoboMaker::RobotApplication @@ -1076,6 +1079,8 @@ AWS::Wisdom::AIPromptVersion AWS::Wisdom::Assistant AWS::Wisdom::AssistantAssociation AWS::Wisdom::KnowledgeBase +AWS::Wisdom::MessageTemplate +AWS::Wisdom::MessageTemplateVersion AWS::WorkSpaces::ConnectionAlias AWS::WorkSpaces::WorkspacesPool AWS::WorkSpacesThinClient::Environment diff --git a/provider/cmd/pulumi-resource-aws-native/metadata.json b/provider/cmd/pulumi-resource-aws-native/metadata.json index 4e01fd185a..6dbdee3084 100644 --- a/provider/cmd/pulumi-resource-aws-native/metadata.json +++ b/provider/cmd/pulumi-resource-aws-native/metadata.json @@ -8899,7 +8899,8 @@ "description": "Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see [Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the in the *Amazon EC2 Auto Scaling User Guide*." }, "capacityReservationSpecification": { - "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupCapacityReservationSpecification" + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupCapacityReservationSpecification", + "description": "The capacity reservation specification." }, "context": { "type": "string", @@ -9069,7 +9070,8 @@ "description": "Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see [Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the in the *Amazon EC2 Auto Scaling User Guide*." }, "capacityReservationSpecification": { - "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupCapacityReservationSpecification" + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupCapacityReservationSpecification", + "description": "The capacity reservation specification." }, "context": { "type": "string", @@ -13299,6 +13301,72 @@ "expiryEventsConfiguration" ] }, + "aws-native:chatbot:CustomAction": { + "cf": "AWS::Chatbot::CustomAction", + "inputs": { + "actionName": { + "type": "string" + }, + "aliasName": { + "type": "string" + }, + "attachments": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:chatbot:CustomActionAttachment" + } + }, + "definition": { + "$ref": "#/types/aws-native:chatbot:CustomActionDefinition" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + } + }, + "outputs": { + "actionName": { + "type": "string", + "replaceOnChanges": true + }, + "aliasName": { + "type": "string" + }, + "attachments": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:chatbot:CustomActionAttachment" + } + }, + "customActionArn": { + "type": "string" + }, + "definition": { + "$ref": "#/types/aws-native:chatbot:CustomActionDefinition" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + } + }, + "autoNamingSpec": { + "sdkName": "actionName", + "minLength": 1, + "maxLength": 64 + }, + "required": [ + "definition" + ], + "createOnly": [ + "actionName" + ], + "tagsProperty": "tags", + "tagsStyle": "keyValueArray" + }, "aws-native:chatbot:MicrosoftTeamsChannelConfiguration": { "cf": "AWS::Chatbot::MicrosoftTeamsChannelConfiguration", "inputs": { @@ -13306,6 +13374,13 @@ "type": "string", "description": "The name of the configuration" }, + "customizationResourceArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ARNs of Custom Actions to associate with notifications in the provided chat channel." + }, "guardrailPolicies": { "type": "array", "items": { @@ -13362,6 +13437,13 @@ "description": "The name of the configuration", "replaceOnChanges": true }, + "customizationResourceArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ARNs of Custom Actions to associate with notifications in the provided chat channel." + }, "guardrailPolicies": { "type": "array", "items": { @@ -13436,6 +13518,13 @@ "type": "string", "description": "The name of the configuration" }, + "customizationResourceArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ARNs of Custom Actions to associate with notifications in the provided chat channel." + }, "guardrailPolicies": { "type": "array", "items": { @@ -13488,6 +13577,13 @@ "description": "The name of the configuration", "replaceOnChanges": true }, + "customizationResourceArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ARNs of Custom Actions to associate with notifications in the provided chat channel." + }, "guardrailPolicies": { "type": "array", "items": { @@ -16284,6 +16380,88 @@ "tagsProperty": "tags", "tagsStyle": "keyValueArray" }, + "aws-native:cloudtrail:Dashboard": { + "cf": "AWS::CloudTrail::Dashboard", + "inputs": { + "name": { + "type": "string", + "description": "The name of the dashboard." + }, + "refreshSchedule": { + "$ref": "#/types/aws-native:cloudtrail:DashboardRefreshSchedule", + "description": "Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + }, + "terminationProtectionEnabled": { + "type": "boolean", + "description": "Indicates whether the dashboard is protected from termination." + }, + "widgets": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:cloudtrail:DashboardWidget" + }, + "description": "List of widgets on the dashboard" + } + }, + "outputs": { + "createdTimestamp": { + "type": "string", + "description": "The timestamp of the dashboard creation." + }, + "dashboardArn": { + "type": "string", + "description": "The ARN of the dashboard." + }, + "name": { + "type": "string", + "description": "The name of the dashboard." + }, + "refreshSchedule": { + "$ref": "#/types/aws-native:cloudtrail:DashboardRefreshSchedule", + "description": "Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule." + }, + "status": { + "$ref": "#/types/aws-native:cloudtrail:DashboardStatus", + "description": "The status of the dashboard. Values are CREATING, CREATED, UPDATING, UPDATED and DELETING." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + }, + "terminationProtectionEnabled": { + "type": "boolean", + "description": "Indicates whether the dashboard is protected from termination." + }, + "type": { + "$ref": "#/types/aws-native:cloudtrail:DashboardType", + "description": "The type of the dashboard. Values are CUSTOM and MANAGED." + }, + "updatedTimestamp": { + "type": "string", + "description": "The timestamp showing when the dashboard was updated, if applicable. UpdatedTimestamp is always either the same or newer than the time shown in CreatedTimestamp." + }, + "widgets": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:cloudtrail:DashboardWidget" + }, + "description": "List of widgets on the dashboard" + } + }, + "autoNamingSpec": { + "sdkName": "name" + }, + "tagsProperty": "tags", + "tagsStyle": "keyValueArray" + }, "aws-native:cloudtrail:EventDataStore": { "cf": "AWS::CloudTrail::EventDataStore", "inputs": { @@ -37828,7 +38006,8 @@ "cf": "AWS::ECS::Service", "inputs": { "availabilityZoneRebalancing": { - "$ref": "#/types/aws-native:ecs:ServiceAvailabilityZoneRebalancing" + "$ref": "#/types/aws-native:ecs:ServiceAvailabilityZoneRebalancing", + "description": "Indicates whether to use Availability Zone rebalancing for the service.\n\nFor more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* ." }, "capacityProviderStrategy": { "type": "array", @@ -37953,7 +38132,8 @@ }, "outputs": { "availabilityZoneRebalancing": { - "$ref": "#/types/aws-native:ecs:ServiceAvailabilityZoneRebalancing" + "$ref": "#/types/aws-native:ecs:ServiceAvailabilityZoneRebalancing", + "description": "Indicates whether to use Availability Zone rebalancing for the service.\n\nFor more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* ." }, "capacityProviderStrategy": { "type": "array", @@ -40671,11 +40851,11 @@ }, "port": { "type": "integer", - "description": "The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer." + "description": "The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer." }, "protocol": { "type": "string", - "description": "The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer." + "description": "The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer." }, "sslPolicy": { "type": "string", @@ -40726,11 +40906,11 @@ }, "port": { "type": "integer", - "description": "The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer." + "description": "The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer." }, "protocol": { "type": "string", - "description": "The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer." + "description": "The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer." }, "sslPolicy": { "type": "string", @@ -40825,7 +41005,7 @@ "inputs": { "enablePrefixForIpv6SourceNat": { "type": "string", - "description": "[Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` ." + "description": "[Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``." }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string", @@ -40833,7 +41013,7 @@ }, "ipAddressType": { "type": "string", - "description": "Note: Internal load balancers must use the ``ipv4`` IP address type.\n [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses).\n Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors.\n [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener.\n [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses)." + "description": "The IP address type. Internal load balancers must use ``ipv4``.\n [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses).\n Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors.\n [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses)." }, "loadBalancerAttributes": { "type": "array", @@ -40842,13 +41022,16 @@ }, "description": "The load balancer attributes." }, + "minimumLoadBalancerCapacity": { + "$ref": "#/types/aws-native:elasticloadbalancingv2:LoadBalancerMinimumLoadBalancerCapacity" + }, "name": { "type": "string", "description": "The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with \"internal-\".\n If you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates. To replace the resource, specify a new name." }, "scheme": { "type": "string", - "description": "The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet.\n The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer.\n The default is an Internet-facing load balancer.\n You cannot specify a scheme for a Gateway Load Balancer." + "description": "The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet.\n The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer.\n The default is an Internet-facing load balancer.\n You can't specify a scheme for a Gateway Load Balancer." }, "securityGroups": { "type": "array", @@ -40862,14 +41045,14 @@ "items": { "$ref": "#/types/aws-native:elasticloadbalancingv2:LoadBalancerSubnetMapping" }, - "description": "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet.\n [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets." + "description": "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet.\n [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets." }, "subnets": { "type": "array", "items": { "type": "string" }, - "description": "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers] You can specify subnets from one or more Availability Zones.\n [Gateway Load Balancers] You can specify subnets from one or more Availability Zones." + "description": "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones." }, "tags": { "type": "array", @@ -40894,7 +41077,7 @@ }, "enablePrefixForIpv6SourceNat": { "type": "string", - "description": "[Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` ." + "description": "[Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``." }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string", @@ -40902,7 +41085,7 @@ }, "ipAddressType": { "type": "string", - "description": "Note: Internal load balancers must use the ``ipv4`` IP address type.\n [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses).\n Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors.\n [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener.\n [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses)." + "description": "The IP address type. Internal load balancers must use ``ipv4``.\n [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses).\n Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors.\n [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses)." }, "loadBalancerArn": { "type": "string", @@ -40923,6 +41106,9 @@ "type": "string", "description": "The name of the load balancer. For example, `my-load-balancer` ." }, + "minimumLoadBalancerCapacity": { + "$ref": "#/types/aws-native:elasticloadbalancingv2:LoadBalancerMinimumLoadBalancerCapacity" + }, "name": { "type": "string", "description": "The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with \"internal-\".\n If you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates. To replace the resource, specify a new name.", @@ -40930,7 +41116,7 @@ }, "scheme": { "type": "string", - "description": "The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet.\n The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer.\n The default is an Internet-facing load balancer.\n You cannot specify a scheme for a Gateway Load Balancer.", + "description": "The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet.\n The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer.\n The default is an Internet-facing load balancer.\n You can't specify a scheme for a Gateway Load Balancer.", "replaceOnChanges": true }, "securityGroups": { @@ -40945,14 +41131,14 @@ "items": { "$ref": "#/types/aws-native:elasticloadbalancingv2:LoadBalancerSubnetMapping" }, - "description": "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet.\n [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets." + "description": "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet.\n [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets." }, "subnets": { "type": "array", "items": { "type": "string" }, - "description": "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers] You can specify subnets from one or more Availability Zones.\n [Gateway Load Balancers] You can specify subnets from one or more Availability Zones." + "description": "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones." }, "tags": { "type": "array", @@ -59018,7 +59204,7 @@ "inputs": { "destinationConfig": { "$ref": "#/types/aws-native:lambda:EventInvokeConfigDestinationConfig", - "description": "A destination for events after they have been sent to a function for processing.\n\n**Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function.\n- *Queue* - The ARN of a standard SQS queue.\n- *Topic* - The ARN of a standard SNS topic.\n- *Event Bus* - The ARN of an Amazon EventBridge event bus." + "description": "A destination for events after they have been sent to a function for processing.\n\n**Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function.\n- *Queue* - The ARN of a standard SQS queue.\n- *Bucket* - The ARN of an Amazon S3 bucket.\n- *Topic* - The ARN of a standard SNS topic.\n- *Event Bus* - The ARN of an Amazon EventBridge event bus.\n\n\u003e S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type." }, "functionName": { "type": "string", @@ -59040,7 +59226,7 @@ "outputs": { "destinationConfig": { "$ref": "#/types/aws-native:lambda:EventInvokeConfigDestinationConfig", - "description": "A destination for events after they have been sent to a function for processing.\n\n**Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function.\n- *Queue* - The ARN of a standard SQS queue.\n- *Topic* - The ARN of a standard SNS topic.\n- *Event Bus* - The ARN of an Amazon EventBridge event bus." + "description": "A destination for events after they have been sent to a function for processing.\n\n**Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function.\n- *Queue* - The ARN of a standard SQS queue.\n- *Bucket* - The ARN of an Amazon S3 bucket.\n- *Topic* - The ARN of a standard SNS topic.\n- *Event Bus* - The ARN of an Amazon EventBridge event bus.\n\n\u003e S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type." }, "functionName": { "type": "string", @@ -79879,7 +80065,8 @@ "description": "The cluster identifier of the new global database cluster. This parameter is stored as a lowercase string." }, "globalEndpoint": { - "$ref": "#/types/aws-native:rds:GlobalClusterGlobalEndpoint" + "$ref": "#/types/aws-native:rds:GlobalClusterGlobalEndpoint", + "description": "The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster." }, "sourceDbClusterIdentifier": { "type": "string", @@ -79921,7 +80108,8 @@ "replaceOnChanges": true }, "globalEndpoint": { - "$ref": "#/types/aws-native:rds:GlobalClusterGlobalEndpoint" + "$ref": "#/types/aws-native:rds:GlobalClusterGlobalEndpoint", + "description": "The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster." }, "sourceDbClusterIdentifier": { "type": "string", @@ -82749,6 +82937,77 @@ "tagsProperty": "tags", "tagsStyle": "keyValueArray" }, + "aws-native:resourcegroups:TagSyncTask": { + "cf": "AWS::ResourceGroups::TagSyncTask", + "inputs": { + "group": { + "type": "string", + "description": "The Amazon resource name (ARN) or name of the application group for which you want to create a tag-sync task" + }, + "roleArn": { + "type": "string", + "description": "The Amazon resource name (ARN) of the role assumed by the service to tag and untag resources on your behalf." + }, + "tagKey": { + "type": "string", + "description": "The tag key. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application." + }, + "tagValue": { + "type": "string", + "description": "The tag value. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application." + } + }, + "outputs": { + "group": { + "type": "string", + "description": "The Amazon resource name (ARN) or name of the application group for which you want to create a tag-sync task", + "replaceOnChanges": true + }, + "groupArn": { + "type": "string", + "description": "The Amazon resource name (ARN) of the ApplicationGroup for which the TagSyncTask is created" + }, + "groupName": { + "type": "string", + "description": "The Name of the application group for which the TagSyncTask is created" + }, + "roleArn": { + "type": "string", + "description": "The Amazon resource name (ARN) of the role assumed by the service to tag and untag resources on your behalf.", + "replaceOnChanges": true + }, + "status": { + "$ref": "#/types/aws-native:resourcegroups:TagSyncTaskStatus", + "description": "The status of the TagSyncTask" + }, + "tagKey": { + "type": "string", + "description": "The tag key. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application.", + "replaceOnChanges": true + }, + "tagValue": { + "type": "string", + "description": "The tag value. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application.", + "replaceOnChanges": true + }, + "taskArn": { + "type": "string", + "description": "The ARN of the TagSyncTask resource" + } + }, + "required": [ + "group", + "roleArn", + "tagKey", + "tagValue" + ], + "createOnly": [ + "group", + "roleArn", + "tagKey", + "tagValue" + ] + }, "aws-native:robomaker:Fleet": { "cf": "AWS::RoboMaker::Fleet", "inputs": { @@ -99110,6 +99369,157 @@ "tagsProperty": "tags", "tagsStyle": "keyValueArrayCreateOnly" }, + "aws-native:wisdom:MessageTemplate": { + "cf": "AWS::Wisdom::MessageTemplate", + "inputs": { + "channelSubtype": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateChannelSubtype" + }, + "content": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateContent" + }, + "defaultAttributes": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateAttributes" + }, + "description": { + "type": "string", + "description": "The description of the message template." + }, + "groupingConfiguration": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateGroupingConfiguration" + }, + "knowledgeBaseArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the knowledge base to which the message template belongs." + }, + "language": { + "type": "string", + "description": "The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW" + }, + "name": { + "type": "string", + "description": "The name of the message template." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }." + } + }, + "outputs": { + "channelSubtype": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateChannelSubtype", + "replaceOnChanges": true + }, + "content": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateContent" + }, + "defaultAttributes": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateAttributes" + }, + "description": { + "type": "string", + "description": "The description of the message template." + }, + "groupingConfiguration": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateGroupingConfiguration" + }, + "knowledgeBaseArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the knowledge base to which the message template belongs.", + "replaceOnChanges": true + }, + "language": { + "type": "string", + "description": "The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW" + }, + "messageTemplateArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the message template." + }, + "messageTemplateContentSha256": { + "type": "string", + "description": "The content SHA256 of the message template." + }, + "messageTemplateId": { + "type": "string", + "description": "The unique identifier of the message template." + }, + "name": { + "type": "string", + "description": "The name of the message template." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }." + } + }, + "autoNamingSpec": { + "sdkName": "name", + "minLength": 1, + "maxLength": 255 + }, + "required": [ + "channelSubtype", + "content", + "knowledgeBaseArn" + ], + "createOnly": [ + "channelSubtype", + "knowledgeBaseArn" + ], + "irreversibleNames": { + "messageTemplateContentSha256": "MessageTemplateContentSha256" + }, + "tagsProperty": "tags", + "tagsStyle": "keyValueArray" + }, + "aws-native:wisdom:MessageTemplateVersion": { + "cf": "AWS::Wisdom::MessageTemplateVersion", + "inputs": { + "messageTemplateArn": { + "type": "string", + "description": "The unqualified Amazon Resource Name (ARN) of the message template." + }, + "messageTemplateContentSha256": { + "type": "string", + "description": "The content SHA256 of the message template." + } + }, + "outputs": { + "messageTemplateArn": { + "type": "string", + "description": "The unqualified Amazon Resource Name (ARN) of the message template.", + "replaceOnChanges": true + }, + "messageTemplateContentSha256": { + "type": "string", + "description": "The content SHA256 of the message template." + }, + "messageTemplateVersionArn": { + "type": "string", + "description": "The unqualified Amazon Resource Name (ARN) of the message template version." + }, + "messageTemplateVersionNumber": { + "type": "number", + "description": "Current version number of the message template." + } + }, + "required": [ + "messageTemplateArn" + ], + "createOnly": [ + "messageTemplateArn" + ], + "irreversibleNames": { + "messageTemplateContentSha256": "MessageTemplateContentSha256" + } + }, "aws-native:workspaces:ConnectionAlias": { "cf": "AWS::WorkSpaces::ConnectionAlias", "inputs": { @@ -108420,7 +108830,8 @@ "type": "object", "properties": { "cpu": { - "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupCpuPerformanceFactorRequest" + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupCpuPerformanceFactorRequest", + "description": "The CPU performance to consider, using an instance family as the baseline reference." } } }, @@ -108428,10 +108839,12 @@ "type": "object", "properties": { "capacityReservationPreference": { - "type": "string" + "type": "string", + "description": "The capacity reservation preference. The following options are available:\n\n- `capacity-reservations-only` - Auto Scaling will only launch instances into a Capacity Reservation or Capacity Reservation resource group. If capacity isn't available, instances will fail to launch.\n- `capacity-reservations-first` - Auto Scaling will try to launch instances into a Capacity Reservation or Capacity Reservation resource group first. If capacity isn't available, instances will run in On-Demand capacity.\n- `none` - Auto Scaling will not launch instances into a Capacity Reservation. Instances will run in On-Demand capacity.\n- `default` - Auto Scaling uses the Capacity Reservation preference from your launch template or an open Capacity Reservation." }, "capacityReservationTarget": { - "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupCapacityReservationTarget" + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupCapacityReservationTarget", + "description": "Describes a target Capacity Reservation or Capacity Reservation resource group." } } }, @@ -108442,13 +108855,15 @@ "type": "array", "items": { "type": "string" - } + }, + "description": "The Capacity Reservation IDs to launch instances into." }, "capacityReservationResourceGroupArns": { "type": "array", "items": { "type": "string" - } + }, + "description": "The resource group ARNs of the Capacity Reservation to launch instances into." } } }, @@ -108459,7 +108874,8 @@ "type": "array", "items": { "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupPerformanceFactorReferenceRequest" - } + }, + "description": "Specify an instance family to use as the baseline reference for CPU performance. All instance types that match your specified attributes will be compared against the CPU performance of the referenced instance family, regardless of CPU manufacturer or architecture differences.\n\n\u003e Currently only one instance family can be specified in the list." } } }, @@ -108524,7 +108940,8 @@ "description": "The minimum and maximum baseline bandwidth performance for an instance type, in Mbps. For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide for Linux Instances*.\n Default: No minimum or maximum limits" }, "baselinePerformanceFactors": { - "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupBaselinePerformanceFactorsRequest" + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupBaselinePerformanceFactorsRequest", + "description": "The baseline performance factors for the instance requirements." }, "burstablePerformance": { "type": "string", @@ -114711,6 +115128,65 @@ } } }, + "aws-native:chatbot:CustomActionAttachment": { + "type": "object", + "properties": { + "buttonText": { + "type": "string" + }, + "criteria": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:chatbot:CustomActionAttachmentCriteria" + } + }, + "notificationType": { + "type": "string" + }, + "variables": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "aws-native:chatbot:CustomActionAttachmentCriteria": { + "type": "object", + "properties": { + "operator": { + "$ref": "#/types/aws-native:chatbot:CustomActionAttachmentCriteriaOperator" + }, + "value": { + "type": "string" + }, + "variableName": { + "type": "string" + } + } + }, + "aws-native:chatbot:CustomActionAttachmentCriteriaOperator": { + "type": "string" + }, + "aws-native:chatbot:CustomActionDefinition": { + "type": "object", + "properties": { + "commandText": { + "type": "string" + } + } + }, + "aws-native:chatbot:CustomActionTag": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, "aws-native:chatbot:MicrosoftTeamsChannelConfigurationTag": { "type": "object", "properties": { @@ -117603,6 +118079,83 @@ } } }, + "aws-native:cloudtrail:DashboardRefreshSchedule": { + "type": "object", + "properties": { + "frequency": { + "$ref": "#/types/aws-native:cloudtrail:DashboardRefreshScheduleFrequencyProperties" + }, + "status": { + "$ref": "#/types/aws-native:cloudtrail:DashboardRefreshScheduleStatus", + "description": "The status of the schedule. Supported values are ENABLED and DISABLED." + }, + "timeOfDay": { + "type": "string", + "description": "StartTime of the automatic schedule refresh." + } + } + }, + "aws-native:cloudtrail:DashboardRefreshScheduleFrequencyProperties": { + "type": "object", + "properties": { + "unit": { + "$ref": "#/types/aws-native:cloudtrail:DashboardRefreshScheduleFrequencyPropertiesUnit", + "description": "The frequency unit. Supported values are HOURS and DAYS." + }, + "value": { + "type": "integer", + "description": "The frequency value." + } + } + }, + "aws-native:cloudtrail:DashboardRefreshScheduleFrequencyPropertiesUnit": { + "type": "string" + }, + "aws-native:cloudtrail:DashboardRefreshScheduleStatus": { + "type": "string" + }, + "aws-native:cloudtrail:DashboardStatus": { + "type": "string" + }, + "aws-native:cloudtrail:DashboardTag": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -." + }, + "value": { + "type": "string", + "description": "The value for the tag. You can specify a value that is 1 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -." + } + } + }, + "aws-native:cloudtrail:DashboardType": { + "type": "string" + }, + "aws-native:cloudtrail:DashboardWidget": { + "type": "object", + "properties": { + "queryParameters": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The placeholder keys in the QueryStatement. For example: $StartTime$, $EndTime$, $Period$." + }, + "queryStatement": { + "type": "string", + "description": "The SQL query statement on one or more event data stores." + }, + "viewProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The view properties of the widget." + } + } + }, "aws-native:cloudtrail:EventDataStoreAdvancedEventSelector": { "type": "object", "properties": { @@ -123252,19 +123805,23 @@ "$ref": "#/types/aws-native:customerprofiles:SegmentDefinitionDimension1Properties" } ] - } + }, + "description": "Defines the attributes to segment on." }, "sourceSegments": { "type": "array", "items": { "$ref": "#/types/aws-native:customerprofiles:SegmentDefinitionSourceSegment" - } + }, + "description": "Defines the starting source of data." }, "sourceType": { - "$ref": "#/types/aws-native:customerprofiles:SegmentDefinitionIncludeOptions" + "$ref": "#/types/aws-native:customerprofiles:SegmentDefinitionIncludeOptions", + "description": "Defines how to interact with the source data." }, "type": { - "$ref": "#/types/aws-native:customerprofiles:SegmentDefinitionIncludeOptions" + "$ref": "#/types/aws-native:customerprofiles:SegmentDefinitionIncludeOptions", + "description": "Defines how to interact with the profiles found in the current filtering." } } }, @@ -123383,10 +123940,12 @@ "type": "array", "items": { "$ref": "#/types/aws-native:customerprofiles:SegmentDefinitionGroup" - } + }, + "description": "Holds the list of groups within the segment definition." }, "include": { - "$ref": "#/types/aws-native:customerprofiles:SegmentDefinitionIncludeOptions" + "$ref": "#/types/aws-native:customerprofiles:SegmentDefinitionIncludeOptions", + "description": "Defines whether to include or exclude the profiles that fit the segment criteria." } } }, @@ -123394,7 +123953,8 @@ "type": "object", "properties": { "segmentDefinitionName": { - "type": "string" + "type": "string", + "description": "The name of the source segment." } } }, @@ -133836,7 +134396,7 @@ "items": { "type": "string" }, - "description": "A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. \n When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets.\n ``[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]`` \n You don't include the double quotes and brackets when you use the AWS Management Console.\n ``CMD-SHELL, curl -f http://localhost/ || exit 1`` \n An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command" + "description": "A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. \n When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets.\n ``[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]`` \n You don't include the double quotes and brackets when you use the AWS Management Console.\n ``CMD-SHELL, curl -f http://localhost/ || exit 1`` \n An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command." }, "interval": { "type": "integer", @@ -134036,7 +134596,7 @@ }, "name": { "type": "string", - "description": "The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.\n For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*." + "description": "The name that's used for the port mapping. This parameter is the name that you use in the ``serviceConnectConfiguration`` and the ``vpcLatticeConfigurations`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen." }, "protocol": { "type": "string", @@ -135612,7 +136172,7 @@ }, "protocol": { "type": "string", - "description": "The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP." + "description": "The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP." }, "query": { "type": "string", @@ -135884,7 +136444,7 @@ }, "protocol": { "type": "string", - "description": "The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP." + "description": "The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP." }, "query": { "type": "string", @@ -136005,7 +136565,7 @@ "properties": { "key": { "type": "string", - "description": "The name of the attribute.\n The following attributes are supported by all load balancers:\n + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and cannot be changed.\n \n The following attributes are supported by both Application Load Balancers and Network Load Balancers:\n + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``access_logs.s3.bucket`` - The name of the S3 bucket for the access logs. This attribute is required if access logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``access_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the access logs.\n + ``ipv6.deny_all_igw_traffic`` - Blocks internet gateway (IGW) access to the load balancer. It is set to ``false`` for internet-facing load balancers and ``true`` for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway.\n \n The following attributes are supported by only Application Load Balancers:\n + ``idle_timeout.timeout_seconds`` - The idle timeout value, in seconds. The valid range is 1-4000 seconds. The default is 60 seconds.\n + ``client_keep_alive.seconds`` - The client keep alive value, in seconds. The valid range is 60-604800 seconds. The default is 3600 seconds.\n + ``connection_logs.s3.enabled`` - Indicates whether connection logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``connection_logs.s3.bucket`` - The name of the S3 bucket for the connection logs. This attribute is required if connection logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``connection_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the connection logs.\n + ``routing.http.desync_mitigation_mode`` - Determines how the load balancer handles requests that might pose a security risk to your application. The possible values are ``monitor``, ``defensive``, and ``strictest``. The default is ``defensive``.\n + ``routing.http.drop_invalid_header_fields.enabled`` - Indicates whether HTTP headers with invalid header fields are removed by the load balancer (``true``) or routed to targets (``false``). The default is ``false``.\n + ``routing.http.preserve_host_header.enabled`` - Indicates whether the Application Load Balancer should preserve the ``Host`` header in the HTTP request and send it to the target without any change. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.x_amzn_tls_version_and_cipher_suite.enabled`` - Indicates whether the two headers (``x-amzn-tls-version`` and ``x-amzn-tls-cipher-suite``), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. The ``x-amzn-tls-version`` header has information about the TLS protocol version negotiated with the client, and the ``x-amzn-tls-cipher-suite`` header has information about the cipher suite negotiated with the client. Both headers are in OpenSSL format. The possible values for the attribute are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_client_port.enabled`` - Indicates whether the ``X-Forwarded-For`` header should preserve the source port that the client used to connect to the load balancer. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_header_processing.mode`` - Enables you to modify, preserve, or remove the ``X-Forwarded-For`` header in the HTTP request before the Application Load Balancer sends the request to the target. The possible values are ``append``, ``preserve``, and ``remove``. The default is ``append``.\n + If the value is ``append``, the Application Load Balancer adds the client IP address (of the last hop) to the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n + If the value is ``preserve`` the Application Load Balancer preserves the ``X-Forwarded-For`` header in the HTTP request, and sends it to targets without any change.\n + If the value is ``remove``, the Application Load Balancer removes the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n \n + ``routing.http2.enabled`` - Indicates whether HTTP/2 is enabled. The possible values are ``true`` and ``false``. The default is ``true``. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens.\n + ``waf.fail_open.enabled`` - Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. The possible values are ``true`` and ``false``. The default is ``false``.\n \n The following attributes are supported by only Network Load Balancers:\n + ``dns_record.client_routing_policy`` - Indicates how traffic is distributed among the load balancer Availability Zones. The possible values are ``availability_zone_affinity`` with 100 percent zonal affinity, ``partial_availability_zone_affinity`` with 85 percent zonal affinity, and ``any_availability_zone`` with 0 percent zonal affinity.\n + ``zonal_shift.config.enabled`` - Indicates whether zonal shift is enabled. The possible values are ``true`` and ``false``. The default is ``false``." + "description": "The name of the attribute.\n The following attributes are supported by all load balancers:\n + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and can't be changed.\n \n The following attributes are supported by both Application Load Balancers and Network Load Balancers:\n + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``access_logs.s3.bucket`` - The name of the S3 bucket for the access logs. This attribute is required if access logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``access_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the access logs.\n + ``ipv6.deny_all_igw_traffic`` - Blocks internet gateway (IGW) access to the load balancer. It is set to ``false`` for internet-facing load balancers and ``true`` for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway.\n \n The following attributes are supported by only Application Load Balancers:\n + ``idle_timeout.timeout_seconds`` - The idle timeout value, in seconds. The valid range is 1-4000 seconds. The default is 60 seconds.\n + ``client_keep_alive.seconds`` - The client keep alive value, in seconds. The valid range is 60-604800 seconds. The default is 3600 seconds.\n + ``connection_logs.s3.enabled`` - Indicates whether connection logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``connection_logs.s3.bucket`` - The name of the S3 bucket for the connection logs. This attribute is required if connection logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``connection_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the connection logs.\n + ``routing.http.desync_mitigation_mode`` - Determines how the load balancer handles requests that might pose a security risk to your application. The possible values are ``monitor``, ``defensive``, and ``strictest``. The default is ``defensive``.\n + ``routing.http.drop_invalid_header_fields.enabled`` - Indicates whether HTTP headers with invalid header fields are removed by the load balancer (``true``) or routed to targets (``false``). The default is ``false``.\n + ``routing.http.preserve_host_header.enabled`` - Indicates whether the Application Load Balancer should preserve the ``Host`` header in the HTTP request and send it to the target without any change. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.x_amzn_tls_version_and_cipher_suite.enabled`` - Indicates whether the two headers (``x-amzn-tls-version`` and ``x-amzn-tls-cipher-suite``), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. The ``x-amzn-tls-version`` header has information about the TLS protocol version negotiated with the client, and the ``x-amzn-tls-cipher-suite`` header has information about the cipher suite negotiated with the client. Both headers are in OpenSSL format. The possible values for the attribute are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_client_port.enabled`` - Indicates whether the ``X-Forwarded-For`` header should preserve the source port that the client used to connect to the load balancer. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_header_processing.mode`` - Enables you to modify, preserve, or remove the ``X-Forwarded-For`` header in the HTTP request before the Application Load Balancer sends the request to the target. The possible values are ``append``, ``preserve``, and ``remove``. The default is ``append``.\n + If the value is ``append``, the Application Load Balancer adds the client IP address (of the last hop) to the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n + If the value is ``preserve`` the Application Load Balancer preserves the ``X-Forwarded-For`` header in the HTTP request, and sends it to targets without any change.\n + If the value is ``remove``, the Application Load Balancer removes the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n \n + ``routing.http2.enabled`` - Indicates whether HTTP/2 is enabled. The possible values are ``true`` and ``false``. The default is ``true``. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens.\n + ``waf.fail_open.enabled`` - Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. The possible values are ``true`` and ``false``. The default is ``false``.\n \n The following attributes are supported by only Network Load Balancers:\n + ``dns_record.client_routing_policy`` - Indicates how traffic is distributed among the load balancer Availability Zones. The possible values are ``availability_zone_affinity`` with 100 percent zonal affinity, ``partial_availability_zone_affinity`` with 85 percent zonal affinity, and ``any_availability_zone`` with 0 percent zonal affinity.\n + ``zonal_shift.config.enabled`` - Indicates whether zonal shift is enabled. The possible values are ``true`` and ``false``. The default is ``false``." }, "value": { "type": "string", @@ -136013,6 +136573,14 @@ } } }, + "aws-native:elasticloadbalancingv2:LoadBalancerMinimumLoadBalancerCapacity": { + "type": "object", + "properties": { + "capacityUnits": { + "type": "integer" + } + } + }, "aws-native:elasticloadbalancingv2:LoadBalancerSubnetMapping": { "type": "object", "properties": { @@ -136030,7 +136598,7 @@ }, "sourceNatIpv6Prefix": { "type": "string", - "description": "[Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block." + "description": "[Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or ``auto_assigned`` to use an IPv6 prefix selected at random from the subnet CIDR block." }, "subnetId": { "type": "string", @@ -201935,6 +202503,9 @@ } } }, + "aws-native:resourcegroups:TagSyncTaskStatus": { + "type": "string" + }, "aws-native:robomaker:RobotApplicationRobotSoftwareSuite": { "type": "object", "properties": { @@ -204723,7 +205294,8 @@ "type": "integer" }, "id": { - "type": "string" + "type": "string", + "description": "Unique identifier for the rule. The value can't be longer than 255 characters." }, "objectSizeGreaterThan": { "type": "string" @@ -204732,10 +205304,12 @@ "type": "string" }, "prefix": { - "type": "string" + "type": "string", + "description": "Object key prefix that identifies one or more objects to which this rule applies.\n\n\u003e Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) ." }, "status": { - "$ref": "#/types/aws-native:s3express:DirectoryBucketRuleStatus" + "$ref": "#/types/aws-native:s3express:DirectoryBucketRuleStatus", + "description": "If `Enabled` , the rule is currently being applied. If `Disabled` , the rule is not currently being applied." } } }, @@ -220174,6 +220748,419 @@ "aws-native:wisdom:KnowledgeBaseType": { "type": "string" }, + "aws-native:wisdom:MessageTemplateAgentAttributes": { + "type": "object", + "properties": { + "firstName": { + "type": "string", + "description": "The agent’s first name as entered in their Amazon Connect user account." + }, + "lastName": { + "type": "string", + "description": "The agent’s last name as entered in their Amazon Connect user account." + } + } + }, + "aws-native:wisdom:MessageTemplateAttributes": { + "type": "object", + "properties": { + "agentAttributes": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateAgentAttributes" + }, + "customAttributes": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "customerProfileAttributes": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateCustomerProfileAttributes" + }, + "systemAttributes": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateSystemAttributes" + } + } + }, + "aws-native:wisdom:MessageTemplateBodyContentProvider": { + "type": "object", + "properties": { + "content": { + "type": "string" + } + } + }, + "aws-native:wisdom:MessageTemplateChannelSubtype": { + "type": "string" + }, + "aws-native:wisdom:MessageTemplateContent": { + "type": "object", + "properties": { + "emailMessageTemplateContent": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateEmailMessageTemplateContent" + }, + "smsMessageTemplateContent": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateSmsMessageTemplateContent" + } + } + }, + "aws-native:wisdom:MessageTemplateCustomerProfileAttributes": { + "type": "object", + "properties": { + "accountNumber": { + "type": "string", + "description": "A unique account number that you have given to the customer." + }, + "additionalInformation": { + "type": "string", + "description": "Any additional information relevant to the customer's profile." + }, + "address1": { + "type": "string", + "description": "The first line of a customer address." + }, + "address2": { + "type": "string", + "description": "The second line of a customer address." + }, + "address3": { + "type": "string", + "description": "The third line of a customer address." + }, + "address4": { + "type": "string", + "description": "The fourth line of a customer address." + }, + "billingAddress1": { + "type": "string", + "description": "The first line of a customer’s billing address." + }, + "billingAddress2": { + "type": "string", + "description": "The second line of a customer’s billing address." + }, + "billingAddress3": { + "type": "string", + "description": "The third line of a customer’s billing address." + }, + "billingAddress4": { + "type": "string", + "description": "The fourth line of a customer’s billing address." + }, + "billingCity": { + "type": "string", + "description": "The city of a customer’s billing address." + }, + "billingCountry": { + "type": "string", + "description": "The country of a customer’s billing address." + }, + "billingCounty": { + "type": "string", + "description": "The county of a customer’s billing address." + }, + "billingPostalCode": { + "type": "string", + "description": "The postal code of a customer’s billing address." + }, + "billingProvince": { + "type": "string", + "description": "The province of a customer’s billing address." + }, + "billingState": { + "type": "string", + "description": "The state of a customer’s billing address." + }, + "birthDate": { + "type": "string", + "description": "The customer's birth date." + }, + "businessEmailAddress": { + "type": "string", + "description": "The customer's business email address." + }, + "businessName": { + "type": "string", + "description": "The name of the customer's business." + }, + "businessPhoneNumber": { + "type": "string", + "description": "The customer's business phone number." + }, + "city": { + "type": "string", + "description": "The city in which a customer lives." + }, + "country": { + "type": "string", + "description": "The country in which a customer lives." + }, + "county": { + "type": "string", + "description": "The county in which a customer lives." + }, + "custom": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "emailAddress": { + "type": "string", + "description": "The customer's email address, which has not been specified as a personal or business address." + }, + "firstName": { + "type": "string", + "description": "The customer's first name." + }, + "gender": { + "type": "string", + "description": "The customer's gender." + }, + "homePhoneNumber": { + "type": "string", + "description": "The customer's home phone number." + }, + "lastName": { + "type": "string", + "description": "The customer's last name." + }, + "mailingAddress1": { + "type": "string", + "description": "The first line of a customer’s mailing address." + }, + "mailingAddress2": { + "type": "string", + "description": "The second line of a customer’s mailing address." + }, + "mailingAddress3": { + "type": "string", + "description": "The third line of a customer’s mailing address." + }, + "mailingAddress4": { + "type": "string", + "description": "The fourth line of a customer’s mailing address." + }, + "mailingCity": { + "type": "string", + "description": "The city of a customer’s mailing address." + }, + "mailingCountry": { + "type": "string", + "description": "The country of a customer’s mailing address." + }, + "mailingCounty": { + "type": "string", + "description": "The county of a customer’s mailing address." + }, + "mailingPostalCode": { + "type": "string", + "description": "The postal code of a customer’s mailing address" + }, + "mailingProvince": { + "type": "string", + "description": "The province of a customer’s mailing address." + }, + "mailingState": { + "type": "string", + "description": "The state of a customer’s mailing address." + }, + "middleName": { + "type": "string", + "description": "The customer's middle name." + }, + "mobilePhoneNumber": { + "type": "string", + "description": "The customer's mobile phone number." + }, + "partyType": { + "type": "string", + "description": "The customer's party type." + }, + "phoneNumber": { + "type": "string", + "description": "The customer's phone number, which has not been specified as a mobile, home, or business number." + }, + "postalCode": { + "type": "string", + "description": "The postal code of a customer address." + }, + "profileArn": { + "type": "string", + "description": "The ARN of a customer profile." + }, + "profileId": { + "type": "string", + "description": "The unique identifier of a customer profile." + }, + "province": { + "type": "string", + "description": "The province in which a customer lives." + }, + "shippingAddress1": { + "type": "string", + "description": "The first line of a customer’s shipping address." + }, + "shippingAddress2": { + "type": "string", + "description": "The second line of a customer’s shipping address." + }, + "shippingAddress3": { + "type": "string", + "description": "The third line of a customer’s shipping address." + }, + "shippingAddress4": { + "type": "string", + "description": "The fourth line of a customer’s shipping address" + }, + "shippingCity": { + "type": "string", + "description": "The city of a customer’s shipping address." + }, + "shippingCountry": { + "type": "string", + "description": "The country of a customer’s shipping address." + }, + "shippingCounty": { + "type": "string", + "description": "The county of a customer’s shipping address." + }, + "shippingPostalCode": { + "type": "string", + "description": "The postal code of a customer’s shipping address." + }, + "shippingProvince": { + "type": "string", + "description": "The province of a customer’s shipping address." + }, + "shippingState": { + "type": "string", + "description": "The state of a customer’s shipping address." + }, + "state": { + "type": "string", + "description": "The state in which a customer lives." + } + }, + "irreversibleNames": { + "profileArn": "ProfileARN" + } + }, + "aws-native:wisdom:MessageTemplateEmailMessageTemplateContent": { + "type": "object", + "properties": { + "body": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateEmailMessageTemplateContentBody" + }, + "headers": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateEmailMessageTemplateHeader" + }, + "description": "The email headers to include in email messages." + }, + "subject": { + "type": "string", + "description": "The subject line, or title, to use in email messages." + } + } + }, + "aws-native:wisdom:MessageTemplateEmailMessageTemplateContentBody": { + "type": "object", + "properties": { + "html": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateBodyContentProvider", + "description": "The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message." + }, + "plainText": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateBodyContentProvider", + "description": "The message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices." + } + } + }, + "aws-native:wisdom:MessageTemplateEmailMessageTemplateHeader": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the email header." + }, + "value": { + "type": "string", + "description": "The value of the email header." + } + } + }, + "aws-native:wisdom:MessageTemplateGroupingConfiguration": { + "type": "object", + "properties": { + "criteria": { + "type": "string", + "description": "The criteria used for grouping Amazon Q in Connect users." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The list of values that define different groups of Amazon Q in Connect users." + } + } + }, + "aws-native:wisdom:MessageTemplateSmsMessageTemplateContent": { + "type": "object", + "properties": { + "body": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateSmsMessageTemplateContentBody" + } + } + }, + "aws-native:wisdom:MessageTemplateSmsMessageTemplateContentBody": { + "type": "object", + "properties": { + "plainText": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateBodyContentProvider" + } + } + }, + "aws-native:wisdom:MessageTemplateSystemAttributes": { + "type": "object", + "properties": { + "customerEndpoint": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateSystemEndpointAttributes", + "description": "The CustomerEndpoint attribute." + }, + "name": { + "type": "string", + "description": "The name of the task." + }, + "systemEndpoint": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateSystemEndpointAttributes", + "description": "The SystemEndpoint attribute." + } + } + }, + "aws-native:wisdom:MessageTemplateSystemEndpointAttributes": { + "type": "object", + "properties": { + "address": { + "type": "string", + "description": "The customer's phone number if used with customerEndpoint, or the number the customer dialed to call your contact center if used with systemEndpoint." + } + } + }, + "aws-native:wisdom:MessageTemplateTag": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -" + }, + "value": { + "type": "string", + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -" + } + } + }, "aws-native:workspaces:ConnectionAliasAssociation": { "type": "object", "properties": { @@ -221640,6 +222627,12 @@ "accountId" ] }, + "aws-native:chatbot:getCustomAction": { + "cf": "AWS::Chatbot::CustomAction", + "ids": [ + "customActionArn" + ] + }, "aws-native:chatbot:getMicrosoftTeamsChannelConfiguration": { "cf": "AWS::Chatbot::MicrosoftTeamsChannelConfiguration", "ids": [ @@ -221873,6 +222866,12 @@ "channelArn" ] }, + "aws-native:cloudtrail:getDashboard": { + "cf": "AWS::CloudTrail::Dashboard", + "ids": [ + "dashboardArn" + ] + }, "aws-native:cloudtrail:getEventDataStore": { "cf": "AWS::CloudTrail::EventDataStore", "ids": [ @@ -226026,6 +227025,12 @@ "name" ] }, + "aws-native:resourcegroups:getTagSyncTask": { + "cf": "AWS::ResourceGroups::TagSyncTask", + "ids": [ + "taskArn" + ] + }, "aws-native:robomaker:getFleet": { "cf": "AWS::RoboMaker::Fleet", "ids": [ @@ -227223,6 +228228,18 @@ "knowledgeBaseId" ] }, + "aws-native:wisdom:getMessageTemplate": { + "cf": "AWS::Wisdom::MessageTemplate", + "ids": [ + "messageTemplateArn" + ] + }, + "aws-native:wisdom:getMessageTemplateVersion": { + "cf": "AWS::Wisdom::MessageTemplateVersion", + "ids": [ + "messageTemplateVersionArn" + ] + }, "aws-native:workspaces:getConnectionAlias": { "cf": "AWS::WorkSpaces::ConnectionAlias", "ids": [ diff --git a/provider/cmd/pulumi-resource-aws-native/schema.json b/provider/cmd/pulumi-resource-aws-native/schema.json index ef117ea899..a74dbdfbd7 100644 --- a/provider/cmd/pulumi-resource-aws-native/schema.json +++ b/provider/cmd/pulumi-resource-aws-native/schema.json @@ -11852,7 +11852,8 @@ "aws-native:autoscaling:AutoScalingGroupBaselinePerformanceFactorsRequest": { "properties": { "cpu": { - "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupCpuPerformanceFactorRequest" + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupCpuPerformanceFactorRequest", + "description": "The CPU performance to consider, using an instance family as the baseline reference." } }, "type": "object" @@ -11860,10 +11861,12 @@ "aws-native:autoscaling:AutoScalingGroupCapacityReservationSpecification": { "properties": { "capacityReservationPreference": { - "type": "string" + "type": "string", + "description": "The capacity reservation preference. The following options are available:\n\n- `capacity-reservations-only` - Auto Scaling will only launch instances into a Capacity Reservation or Capacity Reservation resource group. If capacity isn't available, instances will fail to launch.\n- `capacity-reservations-first` - Auto Scaling will try to launch instances into a Capacity Reservation or Capacity Reservation resource group first. If capacity isn't available, instances will run in On-Demand capacity.\n- `none` - Auto Scaling will not launch instances into a Capacity Reservation. Instances will run in On-Demand capacity.\n- `default` - Auto Scaling uses the Capacity Reservation preference from your launch template or an open Capacity Reservation." }, "capacityReservationTarget": { - "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupCapacityReservationTarget" + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupCapacityReservationTarget", + "description": "Describes a target Capacity Reservation or Capacity Reservation resource group." } }, "type": "object", @@ -11877,13 +11880,15 @@ "type": "array", "items": { "type": "string" - } + }, + "description": "The Capacity Reservation IDs to launch instances into." }, "capacityReservationResourceGroupArns": { "type": "array", "items": { "type": "string" - } + }, + "description": "The resource group ARNs of the Capacity Reservation to launch instances into." } }, "type": "object" @@ -11894,7 +11899,8 @@ "type": "array", "items": { "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupPerformanceFactorReferenceRequest" - } + }, + "description": "Specify an instance family to use as the baseline reference for CPU performance. All instance types that match your specified attributes will be compared against the CPU performance of the referenced instance family, regardless of CPU manufacturer or architecture differences.\n\n\u003e Currently only one instance family can be specified in the list." } }, "type": "object" @@ -11961,7 +11967,8 @@ "description": "The minimum and maximum baseline bandwidth performance for an instance type, in Mbps. For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide for Linux Instances*.\n Default: No minimum or maximum limits" }, "baselinePerformanceFactors": { - "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupBaselinePerformanceFactorsRequest" + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupBaselinePerformanceFactorsRequest", + "description": "The baseline performance factors for the instance requirements." }, "burstablePerformance": { "type": "string", @@ -23235,6 +23242,86 @@ }, "type": "object" }, + "aws-native:chatbot:CustomActionAttachment": { + "properties": { + "buttonText": { + "type": "string" + }, + "criteria": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:chatbot:CustomActionAttachmentCriteria" + } + }, + "notificationType": { + "type": "string" + }, + "variables": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "type": "object" + }, + "aws-native:chatbot:CustomActionAttachmentCriteria": { + "properties": { + "operator": { + "$ref": "#/types/aws-native:chatbot:CustomActionAttachmentCriteriaOperator" + }, + "value": { + "type": "string" + }, + "variableName": { + "type": "string" + } + }, + "type": "object", + "required": [ + "operator", + "variableName" + ] + }, + "aws-native:chatbot:CustomActionAttachmentCriteriaOperator": { + "type": "string", + "enum": [ + { + "name": "HasValue", + "value": "HAS_VALUE" + }, + { + "name": "Equals", + "value": "EQUALS" + } + ] + }, + "aws-native:chatbot:CustomActionDefinition": { + "properties": { + "commandText": { + "type": "string" + } + }, + "type": "object", + "required": [ + "commandText" + ] + }, + "aws-native:chatbot:CustomActionTag": { + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "required": [ + "key", + "value" + ] + }, "aws-native:chatbot:MicrosoftTeamsChannelConfigurationTag": { "properties": { "key": { @@ -27546,6 +27633,153 @@ "value" ] }, + "aws-native:cloudtrail:DashboardRefreshSchedule": { + "description": "Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule.", + "properties": { + "frequency": { + "$ref": "#/types/aws-native:cloudtrail:DashboardRefreshScheduleFrequencyProperties" + }, + "status": { + "$ref": "#/types/aws-native:cloudtrail:DashboardRefreshScheduleStatus", + "description": "The status of the schedule. Supported values are ENABLED and DISABLED." + }, + "timeOfDay": { + "type": "string", + "description": "StartTime of the automatic schedule refresh." + } + }, + "type": "object" + }, + "aws-native:cloudtrail:DashboardRefreshScheduleFrequencyProperties": { + "properties": { + "unit": { + "$ref": "#/types/aws-native:cloudtrail:DashboardRefreshScheduleFrequencyPropertiesUnit", + "description": "The frequency unit. Supported values are HOURS and DAYS." + }, + "value": { + "type": "integer", + "description": "The frequency value." + } + }, + "type": "object", + "required": [ + "unit", + "value" + ] + }, + "aws-native:cloudtrail:DashboardRefreshScheduleFrequencyPropertiesUnit": { + "description": "The frequency unit. Supported values are HOURS and DAYS.", + "type": "string", + "enum": [ + { + "name": "Hours", + "value": "HOURS" + }, + { + "name": "Days", + "value": "DAYS" + } + ] + }, + "aws-native:cloudtrail:DashboardRefreshScheduleStatus": { + "description": "The status of the schedule. Supported values are ENABLED and DISABLED.", + "type": "string", + "enum": [ + { + "name": "Enabled", + "value": "ENABLED" + }, + { + "name": "Disabled", + "value": "DISABLED" + } + ] + }, + "aws-native:cloudtrail:DashboardStatus": { + "description": "The status of the dashboard. Values are CREATING, CREATED, UPDATING, UPDATED and DELETING.", + "type": "string", + "enum": [ + { + "name": "Creating", + "value": "CREATING" + }, + { + "name": "Created", + "value": "CREATED" + }, + { + "name": "Updating", + "value": "UPDATING" + }, + { + "name": "Updated", + "value": "UPDATED" + }, + { + "name": "Deleting", + "value": "DELETING" + } + ] + }, + "aws-native:cloudtrail:DashboardTag": { + "description": "An arbitrary set of tags (key-value pairs) for this dashboard.", + "properties": { + "key": { + "type": "string", + "description": "The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -." + }, + "value": { + "type": "string", + "description": "The value for the tag. You can specify a value that is 1 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -." + } + }, + "type": "object", + "required": [ + "key", + "value" + ] + }, + "aws-native:cloudtrail:DashboardType": { + "description": "The type of the dashboard. Values are CUSTOM and MANAGED.", + "type": "string", + "enum": [ + { + "name": "Managed", + "value": "MANAGED" + }, + { + "name": "Custom", + "value": "CUSTOM" + } + ] + }, + "aws-native:cloudtrail:DashboardWidget": { + "description": "The dashboard widget", + "properties": { + "queryParameters": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The placeholder keys in the QueryStatement. For example: $StartTime$, $EndTime$, $Period$." + }, + "queryStatement": { + "type": "string", + "description": "The SQL query statement on one or more event data stores." + }, + "viewProperties": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "The view properties of the widget." + } + }, + "type": "object", + "required": [ + "queryStatement" + ] + }, "aws-native:cloudtrail:EventDataStoreAdvancedEventSelector": { "description": "Advanced event selectors let you create fine-grained selectors for the following AWS CloudTrail event record fields. They help you control costs by logging only those events that are important to you.", "properties": { @@ -36413,19 +36647,23 @@ "$ref": "#/types/aws-native:customerprofiles:SegmentDefinitionDimension1Properties" } ] - } + }, + "description": "Defines the attributes to segment on." }, "sourceSegments": { "type": "array", "items": { "$ref": "#/types/aws-native:customerprofiles:SegmentDefinitionSourceSegment" - } + }, + "description": "Defines the starting source of data." }, "sourceType": { - "$ref": "#/types/aws-native:customerprofiles:SegmentDefinitionIncludeOptions" + "$ref": "#/types/aws-native:customerprofiles:SegmentDefinitionIncludeOptions", + "description": "Defines how to interact with the source data." }, "type": { - "$ref": "#/types/aws-native:customerprofiles:SegmentDefinitionIncludeOptions" + "$ref": "#/types/aws-native:customerprofiles:SegmentDefinitionIncludeOptions", + "description": "Defines how to interact with the profiles found in the current filtering." } }, "type": "object" @@ -36577,10 +36815,12 @@ "type": "array", "items": { "$ref": "#/types/aws-native:customerprofiles:SegmentDefinitionGroup" - } + }, + "description": "Holds the list of groups within the segment definition." }, "include": { - "$ref": "#/types/aws-native:customerprofiles:SegmentDefinitionIncludeOptions" + "$ref": "#/types/aws-native:customerprofiles:SegmentDefinitionIncludeOptions", + "description": "Defines whether to include or exclude the profiles that fit the segment criteria." } }, "type": "object" @@ -36589,7 +36829,8 @@ "description": "The base segment to build the segment on.", "properties": { "segmentDefinitionName": { - "type": "string" + "type": "string", + "description": "The name of the source segment." } }, "type": "object" @@ -50279,6 +50520,7 @@ "type": "object" }, "aws-native:ecs:ServiceAvailabilityZoneRebalancing": { + "description": "Indicates whether to use Availability Zone rebalancing for the service.\n\nFor more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* .", "type": "string", "enum": [ { @@ -51394,7 +51636,7 @@ "items": { "type": "string" }, - "description": "A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. \n When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets.\n ``[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]`` \n You don't include the double quotes and brackets when you use the AWS Management Console.\n ``CMD-SHELL, curl -f http://localhost/ || exit 1`` \n An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command" + "description": "A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. \n When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets.\n ``[ \"CMD-SHELL\", \"curl -f http://localhost/ || exit 1\" ]`` \n You don't include the double quotes and brackets when you use the AWS Management Console.\n ``CMD-SHELL, curl -f http://localhost/ || exit 1`` \n An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command." }, "interval": { "type": "integer", @@ -51610,7 +51852,7 @@ }, "name": { "type": "string", - "description": "The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.\n For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*." + "description": "The name that's used for the port mapping. This parameter is the name that you use in the ``serviceConnectConfiguration`` and the ``vpcLatticeConfigurations`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen." }, "protocol": { "type": "string", @@ -53612,7 +53854,7 @@ }, "protocol": { "type": "string", - "description": "The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP." + "description": "The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP." }, "query": { "type": "string", @@ -53917,7 +54159,7 @@ }, "protocol": { "type": "string", - "description": "The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP." + "description": "The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP." }, "query": { "type": "string", @@ -54048,7 +54290,7 @@ "properties": { "key": { "type": "string", - "description": "The name of the attribute.\n The following attributes are supported by all load balancers:\n + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and cannot be changed.\n \n The following attributes are supported by both Application Load Balancers and Network Load Balancers:\n + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``access_logs.s3.bucket`` - The name of the S3 bucket for the access logs. This attribute is required if access logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``access_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the access logs.\n + ``ipv6.deny_all_igw_traffic`` - Blocks internet gateway (IGW) access to the load balancer. It is set to ``false`` for internet-facing load balancers and ``true`` for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway.\n \n The following attributes are supported by only Application Load Balancers:\n + ``idle_timeout.timeout_seconds`` - The idle timeout value, in seconds. The valid range is 1-4000 seconds. The default is 60 seconds.\n + ``client_keep_alive.seconds`` - The client keep alive value, in seconds. The valid range is 60-604800 seconds. The default is 3600 seconds.\n + ``connection_logs.s3.enabled`` - Indicates whether connection logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``connection_logs.s3.bucket`` - The name of the S3 bucket for the connection logs. This attribute is required if connection logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``connection_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the connection logs.\n + ``routing.http.desync_mitigation_mode`` - Determines how the load balancer handles requests that might pose a security risk to your application. The possible values are ``monitor``, ``defensive``, and ``strictest``. The default is ``defensive``.\n + ``routing.http.drop_invalid_header_fields.enabled`` - Indicates whether HTTP headers with invalid header fields are removed by the load balancer (``true``) or routed to targets (``false``). The default is ``false``.\n + ``routing.http.preserve_host_header.enabled`` - Indicates whether the Application Load Balancer should preserve the ``Host`` header in the HTTP request and send it to the target without any change. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.x_amzn_tls_version_and_cipher_suite.enabled`` - Indicates whether the two headers (``x-amzn-tls-version`` and ``x-amzn-tls-cipher-suite``), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. The ``x-amzn-tls-version`` header has information about the TLS protocol version negotiated with the client, and the ``x-amzn-tls-cipher-suite`` header has information about the cipher suite negotiated with the client. Both headers are in OpenSSL format. The possible values for the attribute are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_client_port.enabled`` - Indicates whether the ``X-Forwarded-For`` header should preserve the source port that the client used to connect to the load balancer. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_header_processing.mode`` - Enables you to modify, preserve, or remove the ``X-Forwarded-For`` header in the HTTP request before the Application Load Balancer sends the request to the target. The possible values are ``append``, ``preserve``, and ``remove``. The default is ``append``.\n + If the value is ``append``, the Application Load Balancer adds the client IP address (of the last hop) to the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n + If the value is ``preserve`` the Application Load Balancer preserves the ``X-Forwarded-For`` header in the HTTP request, and sends it to targets without any change.\n + If the value is ``remove``, the Application Load Balancer removes the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n \n + ``routing.http2.enabled`` - Indicates whether HTTP/2 is enabled. The possible values are ``true`` and ``false``. The default is ``true``. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens.\n + ``waf.fail_open.enabled`` - Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. The possible values are ``true`` and ``false``. The default is ``false``.\n \n The following attributes are supported by only Network Load Balancers:\n + ``dns_record.client_routing_policy`` - Indicates how traffic is distributed among the load balancer Availability Zones. The possible values are ``availability_zone_affinity`` with 100 percent zonal affinity, ``partial_availability_zone_affinity`` with 85 percent zonal affinity, and ``any_availability_zone`` with 0 percent zonal affinity.\n + ``zonal_shift.config.enabled`` - Indicates whether zonal shift is enabled. The possible values are ``true`` and ``false``. The default is ``false``." + "description": "The name of the attribute.\n The following attributes are supported by all load balancers:\n + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and can't be changed.\n \n The following attributes are supported by both Application Load Balancers and Network Load Balancers:\n + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``access_logs.s3.bucket`` - The name of the S3 bucket for the access logs. This attribute is required if access logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``access_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the access logs.\n + ``ipv6.deny_all_igw_traffic`` - Blocks internet gateway (IGW) access to the load balancer. It is set to ``false`` for internet-facing load balancers and ``true`` for internal load balancers, preventing unintended access to your internal load balancer through an internet gateway.\n \n The following attributes are supported by only Application Load Balancers:\n + ``idle_timeout.timeout_seconds`` - The idle timeout value, in seconds. The valid range is 1-4000 seconds. The default is 60 seconds.\n + ``client_keep_alive.seconds`` - The client keep alive value, in seconds. The valid range is 60-604800 seconds. The default is 3600 seconds.\n + ``connection_logs.s3.enabled`` - Indicates whether connection logs are enabled. The value is ``true`` or ``false``. The default is ``false``.\n + ``connection_logs.s3.bucket`` - The name of the S3 bucket for the connection logs. This attribute is required if connection logs are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permissions to write to the bucket.\n + ``connection_logs.s3.prefix`` - The prefix for the location in the S3 bucket for the connection logs.\n + ``routing.http.desync_mitigation_mode`` - Determines how the load balancer handles requests that might pose a security risk to your application. The possible values are ``monitor``, ``defensive``, and ``strictest``. The default is ``defensive``.\n + ``routing.http.drop_invalid_header_fields.enabled`` - Indicates whether HTTP headers with invalid header fields are removed by the load balancer (``true``) or routed to targets (``false``). The default is ``false``.\n + ``routing.http.preserve_host_header.enabled`` - Indicates whether the Application Load Balancer should preserve the ``Host`` header in the HTTP request and send it to the target without any change. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.x_amzn_tls_version_and_cipher_suite.enabled`` - Indicates whether the two headers (``x-amzn-tls-version`` and ``x-amzn-tls-cipher-suite``), which contain information about the negotiated TLS version and cipher suite, are added to the client request before sending it to the target. The ``x-amzn-tls-version`` header has information about the TLS protocol version negotiated with the client, and the ``x-amzn-tls-cipher-suite`` header has information about the cipher suite negotiated with the client. Both headers are in OpenSSL format. The possible values for the attribute are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_client_port.enabled`` - Indicates whether the ``X-Forwarded-For`` header should preserve the source port that the client used to connect to the load balancer. The possible values are ``true`` and ``false``. The default is ``false``.\n + ``routing.http.xff_header_processing.mode`` - Enables you to modify, preserve, or remove the ``X-Forwarded-For`` header in the HTTP request before the Application Load Balancer sends the request to the target. The possible values are ``append``, ``preserve``, and ``remove``. The default is ``append``.\n + If the value is ``append``, the Application Load Balancer adds the client IP address (of the last hop) to the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n + If the value is ``preserve`` the Application Load Balancer preserves the ``X-Forwarded-For`` header in the HTTP request, and sends it to targets without any change.\n + If the value is ``remove``, the Application Load Balancer removes the ``X-Forwarded-For`` header in the HTTP request before it sends it to targets.\n \n + ``routing.http2.enabled`` - Indicates whether HTTP/2 is enabled. The possible values are ``true`` and ``false``. The default is ``true``. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens.\n + ``waf.fail_open.enabled`` - Indicates whether to allow a WAF-enabled load balancer to route requests to targets if it is unable to forward the request to AWS WAF. The possible values are ``true`` and ``false``. The default is ``false``.\n \n The following attributes are supported by only Network Load Balancers:\n + ``dns_record.client_routing_policy`` - Indicates how traffic is distributed among the load balancer Availability Zones. The possible values are ``availability_zone_affinity`` with 100 percent zonal affinity, ``partial_availability_zone_affinity`` with 85 percent zonal affinity, and ``any_availability_zone`` with 0 percent zonal affinity.\n + ``zonal_shift.config.enabled`` - Indicates whether zonal shift is enabled. The possible values are ``true`` and ``false``. The default is ``false``." }, "value": { "type": "string", @@ -54057,6 +54299,17 @@ }, "type": "object" }, + "aws-native:elasticloadbalancingv2:LoadBalancerMinimumLoadBalancerCapacity": { + "properties": { + "capacityUnits": { + "type": "integer" + } + }, + "type": "object", + "required": [ + "capacityUnits" + ] + }, "aws-native:elasticloadbalancingv2:LoadBalancerSubnetMapping": { "description": "Specifies a subnet for a load balancer.", "properties": { @@ -54074,7 +54327,7 @@ }, "sourceNatIpv6Prefix": { "type": "string", - "description": "[Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block." + "description": "[Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or ``auto_assigned`` to use an IPv6 prefix selected at random from the subnet CIDR block." }, "subnetId": { "type": "string", @@ -144215,6 +144468,20 @@ }, "type": "object" }, + "aws-native:resourcegroups:TagSyncTaskStatus": { + "description": "The status of the TagSyncTask", + "type": "string", + "enum": [ + { + "name": "Active", + "value": "ACTIVE" + }, + { + "name": "Error", + "value": "ERROR" + } + ] + }, "aws-native:robomaker:RobotApplicationRobotSoftwareSuite": { "description": "The robot software suite used by the robot application.", "properties": { @@ -148696,7 +148963,8 @@ "type": "integer" }, "id": { - "type": "string" + "type": "string", + "description": "Unique identifier for the rule. The value can't be longer than 255 characters." }, "objectSizeGreaterThan": { "type": "string" @@ -148705,10 +148973,12 @@ "type": "string" }, "prefix": { - "type": "string" + "type": "string", + "description": "Object key prefix that identifies one or more objects to which this rule applies.\n\n\u003e Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) ." }, "status": { - "$ref": "#/types/aws-native:s3express:DirectoryBucketRuleStatus" + "$ref": "#/types/aws-native:s3express:DirectoryBucketRuleStatus", + "description": "If `Enabled` , the rule is currently being applied. If `Disabled` , the rule is not currently being applied." } }, "type": "object", @@ -148717,6 +148987,7 @@ ] }, "aws-native:s3express:DirectoryBucketRuleStatus": { + "description": "If `Enabled` , the rule is currently being applied. If `Disabled` , the rule is not currently being applied.", "type": "string", "enum": [ { @@ -172276,6 +172547,457 @@ } ] }, + "aws-native:wisdom:MessageTemplateAgentAttributes": { + "description": "The agent attributes that are used with the message template.", + "properties": { + "firstName": { + "type": "string", + "description": "The agent’s first name as entered in their Amazon Connect user account." + }, + "lastName": { + "type": "string", + "description": "The agent’s last name as entered in their Amazon Connect user account." + } + }, + "type": "object" + }, + "aws-native:wisdom:MessageTemplateAttributes": { + "description": "An object that specifies the default values to use for variables in the message template. This object contains different categories of key-value pairs. Each key defines a variable or placeholder in the message template. The corresponding value defines the default value for that variable.", + "properties": { + "agentAttributes": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateAgentAttributes" + }, + "customAttributes": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "customerProfileAttributes": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateCustomerProfileAttributes" + }, + "systemAttributes": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateSystemAttributes" + } + }, + "type": "object" + }, + "aws-native:wisdom:MessageTemplateBodyContentProvider": { + "description": "The container of message template body.", + "properties": { + "content": { + "type": "string" + } + }, + "type": "object" + }, + "aws-native:wisdom:MessageTemplateChannelSubtype": { + "description": "The channel subtype this message template applies to.", + "type": "string", + "enum": [ + { + "name": "Email", + "value": "EMAIL" + }, + { + "name": "Sms", + "value": "SMS" + } + ] + }, + "aws-native:wisdom:MessageTemplateContent": { + "description": "The content of the message template.", + "properties": { + "emailMessageTemplateContent": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateEmailMessageTemplateContent" + }, + "smsMessageTemplateContent": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateSmsMessageTemplateContent" + } + }, + "type": "object" + }, + "aws-native:wisdom:MessageTemplateCustomerProfileAttributes": { + "description": "The customer profile attributes that are used with the message template.", + "properties": { + "accountNumber": { + "type": "string", + "description": "A unique account number that you have given to the customer." + }, + "additionalInformation": { + "type": "string", + "description": "Any additional information relevant to the customer's profile." + }, + "address1": { + "type": "string", + "description": "The first line of a customer address." + }, + "address2": { + "type": "string", + "description": "The second line of a customer address." + }, + "address3": { + "type": "string", + "description": "The third line of a customer address." + }, + "address4": { + "type": "string", + "description": "The fourth line of a customer address." + }, + "billingAddress1": { + "type": "string", + "description": "The first line of a customer’s billing address." + }, + "billingAddress2": { + "type": "string", + "description": "The second line of a customer’s billing address." + }, + "billingAddress3": { + "type": "string", + "description": "The third line of a customer’s billing address." + }, + "billingAddress4": { + "type": "string", + "description": "The fourth line of a customer’s billing address." + }, + "billingCity": { + "type": "string", + "description": "The city of a customer’s billing address." + }, + "billingCountry": { + "type": "string", + "description": "The country of a customer’s billing address." + }, + "billingCounty": { + "type": "string", + "description": "The county of a customer’s billing address." + }, + "billingPostalCode": { + "type": "string", + "description": "The postal code of a customer’s billing address." + }, + "billingProvince": { + "type": "string", + "description": "The province of a customer’s billing address." + }, + "billingState": { + "type": "string", + "description": "The state of a customer’s billing address." + }, + "birthDate": { + "type": "string", + "description": "The customer's birth date." + }, + "businessEmailAddress": { + "type": "string", + "description": "The customer's business email address." + }, + "businessName": { + "type": "string", + "description": "The name of the customer's business." + }, + "businessPhoneNumber": { + "type": "string", + "description": "The customer's business phone number." + }, + "city": { + "type": "string", + "description": "The city in which a customer lives." + }, + "country": { + "type": "string", + "description": "The country in which a customer lives." + }, + "county": { + "type": "string", + "description": "The county in which a customer lives." + }, + "custom": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "emailAddress": { + "type": "string", + "description": "The customer's email address, which has not been specified as a personal or business address." + }, + "firstName": { + "type": "string", + "description": "The customer's first name." + }, + "gender": { + "type": "string", + "description": "The customer's gender." + }, + "homePhoneNumber": { + "type": "string", + "description": "The customer's home phone number." + }, + "lastName": { + "type": "string", + "description": "The customer's last name." + }, + "mailingAddress1": { + "type": "string", + "description": "The first line of a customer’s mailing address." + }, + "mailingAddress2": { + "type": "string", + "description": "The second line of a customer’s mailing address." + }, + "mailingAddress3": { + "type": "string", + "description": "The third line of a customer’s mailing address." + }, + "mailingAddress4": { + "type": "string", + "description": "The fourth line of a customer’s mailing address." + }, + "mailingCity": { + "type": "string", + "description": "The city of a customer’s mailing address." + }, + "mailingCountry": { + "type": "string", + "description": "The country of a customer’s mailing address." + }, + "mailingCounty": { + "type": "string", + "description": "The county of a customer’s mailing address." + }, + "mailingPostalCode": { + "type": "string", + "description": "The postal code of a customer’s mailing address" + }, + "mailingProvince": { + "type": "string", + "description": "The province of a customer’s mailing address." + }, + "mailingState": { + "type": "string", + "description": "The state of a customer’s mailing address." + }, + "middleName": { + "type": "string", + "description": "The customer's middle name." + }, + "mobilePhoneNumber": { + "type": "string", + "description": "The customer's mobile phone number." + }, + "partyType": { + "type": "string", + "description": "The customer's party type." + }, + "phoneNumber": { + "type": "string", + "description": "The customer's phone number, which has not been specified as a mobile, home, or business number." + }, + "postalCode": { + "type": "string", + "description": "The postal code of a customer address." + }, + "profileArn": { + "type": "string", + "description": "The ARN of a customer profile." + }, + "profileId": { + "type": "string", + "description": "The unique identifier of a customer profile." + }, + "province": { + "type": "string", + "description": "The province in which a customer lives." + }, + "shippingAddress1": { + "type": "string", + "description": "The first line of a customer’s shipping address." + }, + "shippingAddress2": { + "type": "string", + "description": "The second line of a customer’s shipping address." + }, + "shippingAddress3": { + "type": "string", + "description": "The third line of a customer’s shipping address." + }, + "shippingAddress4": { + "type": "string", + "description": "The fourth line of a customer’s shipping address" + }, + "shippingCity": { + "type": "string", + "description": "The city of a customer’s shipping address." + }, + "shippingCountry": { + "type": "string", + "description": "The country of a customer’s shipping address." + }, + "shippingCounty": { + "type": "string", + "description": "The county of a customer’s shipping address." + }, + "shippingPostalCode": { + "type": "string", + "description": "The postal code of a customer’s shipping address." + }, + "shippingProvince": { + "type": "string", + "description": "The province of a customer’s shipping address." + }, + "shippingState": { + "type": "string", + "description": "The state of a customer’s shipping address." + }, + "state": { + "type": "string", + "description": "The state in which a customer lives." + } + }, + "type": "object" + }, + "aws-native:wisdom:MessageTemplateEmailMessageTemplateContent": { + "description": "The content of message template that applies to email channel subtype.", + "properties": { + "body": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateEmailMessageTemplateContentBody" + }, + "headers": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateEmailMessageTemplateHeader" + }, + "description": "The email headers to include in email messages." + }, + "subject": { + "type": "string", + "description": "The subject line, or title, to use in email messages." + } + }, + "type": "object", + "required": [ + "body", + "headers", + "subject" + ] + }, + "aws-native:wisdom:MessageTemplateEmailMessageTemplateContentBody": { + "description": "The body to use in email messages.", + "properties": { + "html": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateBodyContentProvider", + "description": "The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message." + }, + "plainText": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateBodyContentProvider", + "description": "The message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices." + } + }, + "type": "object" + }, + "aws-native:wisdom:MessageTemplateEmailMessageTemplateHeader": { + "description": "The email header to include in email messages.", + "properties": { + "name": { + "type": "string", + "description": "The name of the email header." + }, + "value": { + "type": "string", + "description": "The value of the email header." + } + }, + "type": "object" + }, + "aws-native:wisdom:MessageTemplateGroupingConfiguration": { + "description": "The configuration information of the user groups that the message template is accessible to.", + "properties": { + "criteria": { + "type": "string", + "description": "The criteria used for grouping Amazon Q in Connect users." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The list of values that define different groups of Amazon Q in Connect users." + } + }, + "type": "object", + "required": [ + "criteria", + "values" + ] + }, + "aws-native:wisdom:MessageTemplateSmsMessageTemplateContent": { + "description": "The content of message template that applies to SMS channel subtype.", + "properties": { + "body": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateSmsMessageTemplateContentBody" + } + }, + "type": "object", + "required": [ + "body" + ] + }, + "aws-native:wisdom:MessageTemplateSmsMessageTemplateContentBody": { + "description": "The body to use in SMS messages.", + "properties": { + "plainText": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateBodyContentProvider" + } + }, + "type": "object" + }, + "aws-native:wisdom:MessageTemplateSystemAttributes": { + "description": "The system attributes that are used with the message template.", + "properties": { + "customerEndpoint": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateSystemEndpointAttributes", + "description": "The CustomerEndpoint attribute." + }, + "name": { + "type": "string", + "description": "The name of the task." + }, + "systemEndpoint": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateSystemEndpointAttributes", + "description": "The SystemEndpoint attribute." + } + }, + "type": "object" + }, + "aws-native:wisdom:MessageTemplateSystemEndpointAttributes": { + "description": "The system endpoint attributes that are used with the message template.", + "properties": { + "address": { + "type": "string", + "description": "The customer's phone number if used with customerEndpoint, or the number the customer dialed to call your contact center if used with systemEndpoint." + } + }, + "type": "object" + }, + "aws-native:wisdom:MessageTemplateTag": { + "description": "A key-value pair to associate with a resource.", + "properties": { + "key": { + "type": "string", + "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -" + }, + "value": { + "type": "string", + "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -" + } + }, + "type": "object", + "required": [ + "key", + "value" + ] + }, "aws-native:workspaces:ConnectionAliasAssociation": { "properties": { "associatedAccountId": { @@ -182027,7 +182749,8 @@ "description": "Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see [Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the in the *Amazon EC2 Auto Scaling User Guide*." }, "capacityReservationSpecification": { - "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupCapacityReservationSpecification" + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupCapacityReservationSpecification", + "description": "The capacity reservation specification." }, "context": { "type": "string", @@ -182202,7 +182925,8 @@ "description": "Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see [Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the in the *Amazon EC2 Auto Scaling User Guide*." }, "capacityReservationSpecification": { - "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupCapacityReservationSpecification" + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupCapacityReservationSpecification", + "description": "The capacity reservation specification." }, "context": { "type": "string", @@ -186341,6 +187065,68 @@ "expiryEventsConfiguration" ] }, + "aws-native:chatbot:CustomAction": { + "description": "Definition of AWS::Chatbot::CustomAction Resource Type", + "properties": { + "actionName": { + "type": "string", + "replaceOnChanges": true + }, + "aliasName": { + "type": "string" + }, + "attachments": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:chatbot:CustomActionAttachment" + } + }, + "customActionArn": { + "type": "string" + }, + "definition": { + "$ref": "#/types/aws-native:chatbot:CustomActionDefinition" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + } + }, + "type": "object", + "required": [ + "actionName", + "customActionArn", + "definition" + ], + "inputProperties": { + "actionName": { + "type": "string" + }, + "aliasName": { + "type": "string" + }, + "attachments": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:chatbot:CustomActionAttachment" + } + }, + "definition": { + "$ref": "#/types/aws-native:chatbot:CustomActionDefinition" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + } + }, + "requiredInputs": [ + "definition" + ] + }, "aws-native:chatbot:MicrosoftTeamsChannelConfiguration": { "description": "Resource schema for AWS::Chatbot::MicrosoftTeamsChannelConfiguration.", "properties": { @@ -186353,6 +187139,13 @@ "description": "The name of the configuration", "replaceOnChanges": true }, + "customizationResourceArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ARNs of Custom Actions to associate with notifications in the provided chat channel." + }, "guardrailPolicies": { "type": "array", "items": { @@ -186415,6 +187208,13 @@ "type": "string", "description": "The name of the configuration" }, + "customizationResourceArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ARNs of Custom Actions to associate with notifications in the provided chat channel." + }, "guardrailPolicies": { "type": "array", "items": { @@ -186480,6 +187280,13 @@ "description": "The name of the configuration", "replaceOnChanges": true }, + "customizationResourceArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ARNs of Custom Actions to associate with notifications in the provided chat channel." + }, "guardrailPolicies": { "type": "array", "items": { @@ -186536,6 +187343,13 @@ "type": "string", "description": "The name of the configuration" }, + "customizationResourceArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ARNs of Custom Actions to associate with notifications in the provided chat channel." + }, "guardrailPolicies": { "type": "array", "items": { @@ -189405,6 +190219,91 @@ } } }, + "aws-native:cloudtrail:Dashboard": { + "description": "The Amazon CloudTrail dashboard resource allows customers to manage managed dashboards and create custom dashboards. You can manually refresh custom and managed dashboards. For custom dashboards, you can also set up an automatic refresh schedule and modify dashboard widgets.", + "properties": { + "createdTimestamp": { + "type": "string", + "description": "The timestamp of the dashboard creation." + }, + "dashboardArn": { + "type": "string", + "description": "The ARN of the dashboard." + }, + "name": { + "type": "string", + "description": "The name of the dashboard." + }, + "refreshSchedule": { + "$ref": "#/types/aws-native:cloudtrail:DashboardRefreshSchedule", + "description": "Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule." + }, + "status": { + "$ref": "#/types/aws-native:cloudtrail:DashboardStatus", + "description": "The status of the dashboard. Values are CREATING, CREATED, UPDATING, UPDATED and DELETING." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + }, + "terminationProtectionEnabled": { + "type": "boolean", + "description": "Indicates whether the dashboard is protected from termination." + }, + "type": { + "$ref": "#/types/aws-native:cloudtrail:DashboardType", + "description": "The type of the dashboard. Values are CUSTOM and MANAGED." + }, + "updatedTimestamp": { + "type": "string", + "description": "The timestamp showing when the dashboard was updated, if applicable. UpdatedTimestamp is always either the same or newer than the time shown in CreatedTimestamp." + }, + "widgets": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:cloudtrail:DashboardWidget" + }, + "description": "List of widgets on the dashboard" + } + }, + "type": "object", + "required": [ + "createdTimestamp", + "dashboardArn", + "status", + "type", + "updatedTimestamp" + ], + "inputProperties": { + "name": { + "type": "string", + "description": "The name of the dashboard." + }, + "refreshSchedule": { + "$ref": "#/types/aws-native:cloudtrail:DashboardRefreshSchedule", + "description": "Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + }, + "terminationProtectionEnabled": { + "type": "boolean", + "description": "Indicates whether the dashboard is protected from termination." + }, + "widgets": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:cloudtrail:DashboardWidget" + }, + "description": "List of widgets on the dashboard" + } + } + }, "aws-native:cloudtrail:EventDataStore": { "description": "A storage lake of event data against which you can run complex SQL-based queries. An event data store can include events that you have logged on your account from the last 7 to 2557 or 3653 days (about seven or ten years) depending on the selected BillingMode.", "properties": { @@ -210458,7 +211357,8 @@ "description": "The ``AWS::ECS::Service`` resource creates an Amazon Elastic Container Service (Amazon ECS) service that runs and maintains the requested number of tasks and associated load balancers.\n The stack update fails if you change any properties that require replacement and at least one ECS Service Connect ``ServiceConnectConfiguration`` property the is configured. This is because AWS CloudFormation creates the replacement service first, but each ``ServiceConnectService`` must have a name that is unique in the namespace.\n Starting April 15, 2023, AWS; will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, ECS, or EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service.", "properties": { "availabilityZoneRebalancing": { - "$ref": "#/types/aws-native:ecs:ServiceAvailabilityZoneRebalancing" + "$ref": "#/types/aws-native:ecs:ServiceAvailabilityZoneRebalancing", + "description": "Indicates whether to use Availability Zone rebalancing for the service.\n\nFor more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* ." }, "capacityProviderStrategy": { "type": "array", @@ -210602,7 +211502,8 @@ ], "inputProperties": { "availabilityZoneRebalancing": { - "$ref": "#/types/aws-native:ecs:ServiceAvailabilityZoneRebalancing" + "$ref": "#/types/aws-native:ecs:ServiceAvailabilityZoneRebalancing", + "description": "Indicates whether to use Availability Zone rebalancing for the service.\n\nFor more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* ." }, "capacityProviderStrategy": { "type": "array", @@ -213153,11 +214054,11 @@ }, "port": { "type": "integer", - "description": "The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer." + "description": "The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer." }, "protocol": { "type": "string", - "description": "The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer." + "description": "The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer." }, "sslPolicy": { "type": "string", @@ -213209,11 +214110,11 @@ }, "port": { "type": "integer", - "description": "The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer." + "description": "The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer." }, "protocol": { "type": "string", - "description": "The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer." + "description": "The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer." }, "sslPolicy": { "type": "string", @@ -213311,7 +214212,7 @@ }, "enablePrefixForIpv6SourceNat": { "type": "string", - "description": "[Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` ." + "description": "[Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``." }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string", @@ -213319,7 +214220,7 @@ }, "ipAddressType": { "type": "string", - "description": "Note: Internal load balancers must use the ``ipv4`` IP address type.\n [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses).\n Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors.\n [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener.\n [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses)." + "description": "The IP address type. Internal load balancers must use ``ipv4``.\n [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses).\n Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors.\n [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses)." }, "loadBalancerArn": { "type": "string", @@ -213340,6 +214241,9 @@ "type": "string", "description": "The name of the load balancer. For example, `my-load-balancer` ." }, + "minimumLoadBalancerCapacity": { + "$ref": "#/types/aws-native:elasticloadbalancingv2:LoadBalancerMinimumLoadBalancerCapacity" + }, "name": { "type": "string", "description": "The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with \"internal-\".\n If you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates. To replace the resource, specify a new name.", @@ -213347,7 +214251,7 @@ }, "scheme": { "type": "string", - "description": "The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet.\n The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer.\n The default is an Internet-facing load balancer.\n You cannot specify a scheme for a Gateway Load Balancer.", + "description": "The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet.\n The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer.\n The default is an Internet-facing load balancer.\n You can't specify a scheme for a Gateway Load Balancer.", "replaceOnChanges": true }, "securityGroups": { @@ -213362,14 +214266,14 @@ "items": { "$ref": "#/types/aws-native:elasticloadbalancingv2:LoadBalancerSubnetMapping" }, - "description": "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet.\n [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets." + "description": "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet.\n [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets." }, "subnets": { "type": "array", "items": { "type": "string" }, - "description": "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers] You can specify subnets from one or more Availability Zones.\n [Gateway Load Balancers] You can specify subnets from one or more Availability Zones." + "description": "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones." }, "tags": { "type": "array", @@ -213395,7 +214299,7 @@ "inputProperties": { "enablePrefixForIpv6SourceNat": { "type": "string", - "description": "[Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` ." + "description": "[Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``." }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string", @@ -213403,7 +214307,7 @@ }, "ipAddressType": { "type": "string", - "description": "Note: Internal load balancers must use the ``ipv4`` IP address type.\n [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses).\n Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors.\n [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener.\n [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses)." + "description": "The IP address type. Internal load balancers must use ``ipv4``.\n [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses).\n Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors.\n [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses)." }, "loadBalancerAttributes": { "type": "array", @@ -213412,13 +214316,16 @@ }, "description": "The load balancer attributes." }, + "minimumLoadBalancerCapacity": { + "$ref": "#/types/aws-native:elasticloadbalancingv2:LoadBalancerMinimumLoadBalancerCapacity" + }, "name": { "type": "string", "description": "The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with \"internal-\".\n If you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates. To replace the resource, specify a new name." }, "scheme": { "type": "string", - "description": "The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet.\n The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer.\n The default is an Internet-facing load balancer.\n You cannot specify a scheme for a Gateway Load Balancer." + "description": "The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet.\n The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer.\n The default is an Internet-facing load balancer.\n You can't specify a scheme for a Gateway Load Balancer." }, "securityGroups": { "type": "array", @@ -213432,14 +214339,14 @@ "items": { "$ref": "#/types/aws-native:elasticloadbalancingv2:LoadBalancerSubnetMapping" }, - "description": "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet.\n [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets." + "description": "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet.\n [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets." }, "subnets": { "type": "array", "items": { "type": "string" }, - "description": "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers] You can specify subnets from one or more Availability Zones.\n [Gateway Load Balancers] You can specify subnets from one or more Availability Zones." + "description": "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones." }, "tags": { "type": "array", @@ -230839,7 +231746,7 @@ "properties": { "destinationConfig": { "$ref": "#/types/aws-native:lambda:EventInvokeConfigDestinationConfig", - "description": "A destination for events after they have been sent to a function for processing.\n\n**Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function.\n- *Queue* - The ARN of a standard SQS queue.\n- *Topic* - The ARN of a standard SNS topic.\n- *Event Bus* - The ARN of an Amazon EventBridge event bus." + "description": "A destination for events after they have been sent to a function for processing.\n\n**Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function.\n- *Queue* - The ARN of a standard SQS queue.\n- *Bucket* - The ARN of an Amazon S3 bucket.\n- *Topic* - The ARN of a standard SNS topic.\n- *Event Bus* - The ARN of an Amazon EventBridge event bus.\n\n\u003e S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type." }, "functionName": { "type": "string", @@ -230868,7 +231775,7 @@ "inputProperties": { "destinationConfig": { "$ref": "#/types/aws-native:lambda:EventInvokeConfigDestinationConfig", - "description": "A destination for events after they have been sent to a function for processing.\n\n**Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function.\n- *Queue* - The ARN of a standard SQS queue.\n- *Topic* - The ARN of a standard SNS topic.\n- *Event Bus* - The ARN of an Amazon EventBridge event bus." + "description": "A destination for events after they have been sent to a function for processing.\n\n**Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function.\n- *Queue* - The ARN of a standard SQS queue.\n- *Bucket* - The ARN of an Amazon S3 bucket.\n- *Topic* - The ARN of a standard SNS topic.\n- *Event Bus* - The ARN of an Amazon EventBridge event bus.\n\n\u003e S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type." }, "functionName": { "type": "string", @@ -251077,7 +251984,8 @@ "replaceOnChanges": true }, "globalEndpoint": { - "$ref": "#/types/aws-native:rds:GlobalClusterGlobalEndpoint" + "$ref": "#/types/aws-native:rds:GlobalClusterGlobalEndpoint", + "description": "The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster." }, "sourceDbClusterIdentifier": { "type": "string", @@ -251120,7 +252028,8 @@ "description": "The cluster identifier of the new global database cluster. This parameter is stored as a lowercase string." }, "globalEndpoint": { - "$ref": "#/types/aws-native:rds:GlobalClusterGlobalEndpoint" + "$ref": "#/types/aws-native:rds:GlobalClusterGlobalEndpoint", + "description": "The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster." }, "sourceDbClusterIdentifier": { "type": "string", @@ -253816,6 +254725,82 @@ } } }, + "aws-native:resourcegroups:TagSyncTask": { + "description": "Schema for ResourceGroups::TagSyncTask", + "properties": { + "group": { + "type": "string", + "description": "The Amazon resource name (ARN) or name of the application group for which you want to create a tag-sync task", + "replaceOnChanges": true + }, + "groupArn": { + "type": "string", + "description": "The Amazon resource name (ARN) of the ApplicationGroup for which the TagSyncTask is created" + }, + "groupName": { + "type": "string", + "description": "The Name of the application group for which the TagSyncTask is created" + }, + "roleArn": { + "type": "string", + "description": "The Amazon resource name (ARN) of the role assumed by the service to tag and untag resources on your behalf.", + "replaceOnChanges": true + }, + "status": { + "$ref": "#/types/aws-native:resourcegroups:TagSyncTaskStatus", + "description": "The status of the TagSyncTask" + }, + "tagKey": { + "type": "string", + "description": "The tag key. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application.", + "replaceOnChanges": true + }, + "tagValue": { + "type": "string", + "description": "The tag value. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application.", + "replaceOnChanges": true + }, + "taskArn": { + "type": "string", + "description": "The ARN of the TagSyncTask resource" + } + }, + "type": "object", + "required": [ + "group", + "groupArn", + "groupName", + "roleArn", + "status", + "tagKey", + "tagValue", + "taskArn" + ], + "inputProperties": { + "group": { + "type": "string", + "description": "The Amazon resource name (ARN) or name of the application group for which you want to create a tag-sync task" + }, + "roleArn": { + "type": "string", + "description": "The Amazon resource name (ARN) of the role assumed by the service to tag and untag resources on your behalf." + }, + "tagKey": { + "type": "string", + "description": "The tag key. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application." + }, + "tagValue": { + "type": "string", + "description": "The tag value. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application." + } + }, + "requiredInputs": [ + "group", + "roleArn", + "tagKey", + "tagValue" + ] + }, "aws-native:robomaker:Fleet": { "description": "AWS::RoboMaker::Fleet resource creates an AWS RoboMaker fleet. Fleets contain robots and can receive deployments.\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 basicFleet = new AwsNative.RoboMaker.Fleet(\"basicFleet\", new()\n {\n Name = \"MyFleet\",\n Tags = \n {\n { \"name\", \"BasicFleet\" },\n { \"type\", \"CFN\" },\n },\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"fleet\"] = \"BasicFleet\",\n };\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/robomaker\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := robomaker.NewFleet(ctx, \"basicFleet\", \u0026robomaker.FleetArgs{\n\t\t\tName: pulumi.String(\"MyFleet\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"name\": pulumi.String(\"BasicFleet\"),\n\t\t\t\t\"type\": pulumi.String(\"CFN\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"fleet\", pulumi.String(\"BasicFleet\"))\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 basicFleet = new aws_native.robomaker.Fleet(\"basicFleet\", {\n name: \"MyFleet\",\n tags: {\n name: \"BasicFleet\",\n type: \"CFN\",\n },\n});\nexport const fleet = \"BasicFleet\";\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nbasic_fleet = aws_native.robomaker.Fleet(\"basicFleet\",\n name=\"MyFleet\",\n tags={\n \"name\": \"BasicFleet\",\n \"type\": \"CFN\",\n })\npulumi.export(\"fleet\", \"BasicFleet\")\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 basicFleet = new AwsNative.RoboMaker.Fleet(\"basicFleet\", new()\n {\n Name = \"MyFleet\",\n Tags = \n {\n { \"name\", \"BasicFleet\" },\n { \"type\", \"CFN\" },\n },\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"fleet\"] = basicFleet.Id,\n };\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/robomaker\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbasicFleet, err := robomaker.NewFleet(ctx, \"basicFleet\", \u0026robomaker.FleetArgs{\n\t\t\tName: pulumi.String(\"MyFleet\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"name\": pulumi.String(\"BasicFleet\"),\n\t\t\t\t\"type\": pulumi.String(\"CFN\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"fleet\", basicFleet.ID())\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 basicFleet = new aws_native.robomaker.Fleet(\"basicFleet\", {\n name: \"MyFleet\",\n tags: {\n name: \"BasicFleet\",\n type: \"CFN\",\n },\n});\nexport const fleet = basicFleet.id;\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nbasic_fleet = aws_native.robomaker.Fleet(\"basicFleet\",\n name=\"MyFleet\",\n tags={\n \"name\": \"BasicFleet\",\n \"type\": \"CFN\",\n })\npulumi.export(\"fleet\", basic_fleet.id)\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 basicFleet = new AwsNative.RoboMaker.Fleet(\"basicFleet\", new()\n {\n Name = \"MyFleet\",\n });\n\n var basicRobot = new AwsNative.RoboMaker.Robot(\"basicRobot\", new()\n {\n Name = \"MyRobot\",\n GreengrassGroupId = \"51229986-abdc-4ca6-94f8-04735a0c9f07\",\n Architecture = AwsNative.RoboMaker.RobotArchitecture.Armhf,\n Fleet = basicFleet.Arn,\n Tags = \n {\n { \"name\", \"BasicRobot\" },\n { \"type\", \"CFN\" },\n },\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"robot\"] = \"BasicRobot\",\n };\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/robomaker\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbasicFleet, err := robomaker.NewFleet(ctx, \"basicFleet\", \u0026robomaker.FleetArgs{\n\t\t\tName: pulumi.String(\"MyFleet\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = robomaker.NewRobot(ctx, \"basicRobot\", \u0026robomaker.RobotArgs{\n\t\t\tName: pulumi.String(\"MyRobot\"),\n\t\t\tGreengrassGroupId: pulumi.String(\"51229986-abdc-4ca6-94f8-04735a0c9f07\"),\n\t\t\tArchitecture: robomaker.RobotArchitectureArmhf,\n\t\t\tFleet: basicFleet.Arn,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"name\": pulumi.String(\"BasicRobot\"),\n\t\t\t\t\"type\": pulumi.String(\"CFN\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"robot\", pulumi.String(\"BasicRobot\"))\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 basicFleet = new aws_native.robomaker.Fleet(\"basicFleet\", {name: \"MyFleet\"});\nconst basicRobot = new aws_native.robomaker.Robot(\"basicRobot\", {\n name: \"MyRobot\",\n greengrassGroupId: \"51229986-abdc-4ca6-94f8-04735a0c9f07\",\n architecture: aws_native.robomaker.RobotArchitecture.Armhf,\n fleet: basicFleet.arn,\n tags: {\n name: \"BasicRobot\",\n type: \"CFN\",\n },\n});\nexport const robot = \"BasicRobot\";\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nbasic_fleet = aws_native.robomaker.Fleet(\"basicFleet\", name=\"MyFleet\")\nbasic_robot = aws_native.robomaker.Robot(\"basicRobot\",\n name=\"MyRobot\",\n greengrass_group_id=\"51229986-abdc-4ca6-94f8-04735a0c9f07\",\n architecture=aws_native.robomaker.RobotArchitecture.ARMHF,\n fleet=basic_fleet.arn,\n tags={\n \"name\": \"BasicRobot\",\n \"type\": \"CFN\",\n })\npulumi.export(\"robot\", \"BasicRobot\")\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 basicFleet = new AwsNative.RoboMaker.Fleet(\"basicFleet\", new()\n {\n Name = \"MyFleet\",\n });\n\n var basicRobot = new AwsNative.RoboMaker.Robot(\"basicRobot\", new()\n {\n Name = \"MyRobot\",\n GreengrassGroupId = \"51229986-abdc-4ca6-94f8-04735a0c9f07\",\n Architecture = AwsNative.RoboMaker.RobotArchitecture.Armhf,\n Fleet = basicFleet.Arn,\n Tags = \n {\n { \"name\", \"BasicRobot\" },\n { \"type\", \"CFN\" },\n },\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"robot\"] = basicRobot.Id,\n };\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/robomaker\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbasicFleet, err := robomaker.NewFleet(ctx, \"basicFleet\", \u0026robomaker.FleetArgs{\n\t\t\tName: pulumi.String(\"MyFleet\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbasicRobot, err := robomaker.NewRobot(ctx, \"basicRobot\", \u0026robomaker.RobotArgs{\n\t\t\tName: pulumi.String(\"MyRobot\"),\n\t\t\tGreengrassGroupId: pulumi.String(\"51229986-abdc-4ca6-94f8-04735a0c9f07\"),\n\t\t\tArchitecture: robomaker.RobotArchitectureArmhf,\n\t\t\tFleet: basicFleet.Arn,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"name\": pulumi.String(\"BasicRobot\"),\n\t\t\t\t\"type\": pulumi.String(\"CFN\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"robot\", basicRobot.ID())\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 basicFleet = new aws_native.robomaker.Fleet(\"basicFleet\", {name: \"MyFleet\"});\nconst basicRobot = new aws_native.robomaker.Robot(\"basicRobot\", {\n name: \"MyRobot\",\n greengrassGroupId: \"51229986-abdc-4ca6-94f8-04735a0c9f07\",\n architecture: aws_native.robomaker.RobotArchitecture.Armhf,\n fleet: basicFleet.arn,\n tags: {\n name: \"BasicRobot\",\n type: \"CFN\",\n },\n});\nexport const robot = basicRobot.id;\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nbasic_fleet = aws_native.robomaker.Fleet(\"basicFleet\", name=\"MyFleet\")\nbasic_robot = aws_native.robomaker.Robot(\"basicRobot\",\n name=\"MyRobot\",\n greengrass_group_id=\"51229986-abdc-4ca6-94f8-04735a0c9f07\",\n architecture=aws_native.robomaker.RobotArchitecture.ARMHF,\n fleet=basic_fleet.arn,\n tags={\n \"name\": \"BasicRobot\",\n \"type\": \"CFN\",\n })\npulumi.export(\"robot\", basic_robot.id)\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n", "properties": { @@ -269611,6 +270596,153 @@ "knowledgeBaseType" ] }, + "aws-native:wisdom:MessageTemplate": { + "description": "Definition of AWS::Wisdom::MessageTemplate Resource Type", + "properties": { + "channelSubtype": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateChannelSubtype", + "replaceOnChanges": true + }, + "content": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateContent" + }, + "defaultAttributes": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateAttributes" + }, + "description": { + "type": "string", + "description": "The description of the message template." + }, + "groupingConfiguration": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateGroupingConfiguration" + }, + "knowledgeBaseArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the knowledge base to which the message template belongs.", + "replaceOnChanges": true + }, + "language": { + "type": "string", + "description": "The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW" + }, + "messageTemplateArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the message template." + }, + "messageTemplateContentSha256": { + "type": "string", + "description": "The content SHA256 of the message template." + }, + "messageTemplateId": { + "type": "string", + "description": "The unique identifier of the message template." + }, + "name": { + "type": "string", + "description": "The name of the message template." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }." + } + }, + "type": "object", + "required": [ + "channelSubtype", + "content", + "knowledgeBaseArn", + "messageTemplateArn", + "messageTemplateContentSha256", + "messageTemplateId", + "name" + ], + "inputProperties": { + "channelSubtype": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateChannelSubtype" + }, + "content": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateContent" + }, + "defaultAttributes": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateAttributes" + }, + "description": { + "type": "string", + "description": "The description of the message template." + }, + "groupingConfiguration": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateGroupingConfiguration" + }, + "knowledgeBaseArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the knowledge base to which the message template belongs." + }, + "language": { + "type": "string", + "description": "The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW" + }, + "name": { + "type": "string", + "description": "The name of the message template." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }." + } + }, + "requiredInputs": [ + "channelSubtype", + "content", + "knowledgeBaseArn" + ] + }, + "aws-native:wisdom:MessageTemplateVersion": { + "description": "A version for the specified customer-managed message template within the specified knowledge base.", + "properties": { + "messageTemplateArn": { + "type": "string", + "description": "The unqualified Amazon Resource Name (ARN) of the message template.", + "replaceOnChanges": true + }, + "messageTemplateContentSha256": { + "type": "string", + "description": "The content SHA256 of the message template." + }, + "messageTemplateVersionArn": { + "type": "string", + "description": "The unqualified Amazon Resource Name (ARN) of the message template version." + }, + "messageTemplateVersionNumber": { + "type": "number", + "description": "Current version number of the message template." + } + }, + "type": "object", + "required": [ + "messageTemplateArn", + "messageTemplateVersionArn", + "messageTemplateVersionNumber" + ], + "inputProperties": { + "messageTemplateArn": { + "type": "string", + "description": "The unqualified Amazon Resource Name (ARN) of the message template." + }, + "messageTemplateContentSha256": { + "type": "string", + "description": "The content SHA256 of the message template." + } + }, + "requiredInputs": [ + "messageTemplateArn" + ] + }, "aws-native:workspaces:ConnectionAlias": { "description": "Resource Type definition for AWS::WorkSpaces::ConnectionAlias", "properties": { @@ -275372,7 +276504,8 @@ "description": "Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see [Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the in the *Amazon EC2 Auto Scaling User Guide*." }, "capacityReservationSpecification": { - "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupCapacityReservationSpecification" + "$ref": "#/types/aws-native:autoscaling:AutoScalingGroupCapacityReservationSpecification", + "description": "The capacity reservation specification." }, "context": { "type": "string", @@ -277685,6 +278818,44 @@ } } }, + "aws-native:chatbot:getCustomAction": { + "description": "Definition of AWS::Chatbot::CustomAction Resource Type", + "inputs": { + "properties": { + "customActionArn": { + "type": "string" + } + }, + "required": [ + "customActionArn" + ] + }, + "outputs": { + "properties": { + "aliasName": { + "type": "string" + }, + "attachments": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:chatbot:CustomActionAttachment" + } + }, + "customActionArn": { + "type": "string" + }, + "definition": { + "$ref": "#/types/aws-native:chatbot:CustomActionDefinition" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + } + } + } + }, "aws-native:chatbot:getMicrosoftTeamsChannelConfiguration": { "description": "Resource schema for AWS::Chatbot::MicrosoftTeamsChannelConfiguration.", "inputs": { @@ -277704,6 +278875,13 @@ "type": "string", "description": "Amazon Resource Name (ARN) of the configuration" }, + "customizationResourceArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ARNs of Custom Actions to associate with notifications in the provided chat channel." + }, "guardrailPolicies": { "type": "array", "items": { @@ -277763,6 +278941,13 @@ "type": "string", "description": "Amazon Resource Name (ARN) of the configuration" }, + "customizationResourceArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ARNs of Custom Actions to associate with notifications in the provided chat channel." + }, "guardrailPolicies": { "type": "array", "items": { @@ -279344,6 +280529,69 @@ } } }, + "aws-native:cloudtrail:getDashboard": { + "description": "The Amazon CloudTrail dashboard resource allows customers to manage managed dashboards and create custom dashboards. You can manually refresh custom and managed dashboards. For custom dashboards, you can also set up an automatic refresh schedule and modify dashboard widgets.", + "inputs": { + "properties": { + "dashboardArn": { + "type": "string", + "description": "The ARN of the dashboard." + } + }, + "required": [ + "dashboardArn" + ] + }, + "outputs": { + "properties": { + "createdTimestamp": { + "type": "string", + "description": "The timestamp of the dashboard creation." + }, + "dashboardArn": { + "type": "string", + "description": "The ARN of the dashboard." + }, + "name": { + "type": "string", + "description": "The name of the dashboard." + }, + "refreshSchedule": { + "$ref": "#/types/aws-native:cloudtrail:DashboardRefreshSchedule", + "description": "Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule." + }, + "status": { + "$ref": "#/types/aws-native:cloudtrail:DashboardStatus", + "description": "The status of the dashboard. Values are CREATING, CREATED, UPDATING, UPDATED and DELETING." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + }, + "terminationProtectionEnabled": { + "type": "boolean", + "description": "Indicates whether the dashboard is protected from termination." + }, + "type": { + "$ref": "#/types/aws-native:cloudtrail:DashboardType", + "description": "The type of the dashboard. Values are CUSTOM and MANAGED." + }, + "updatedTimestamp": { + "type": "string", + "description": "The timestamp showing when the dashboard was updated, if applicable. UpdatedTimestamp is always either the same or newer than the time shown in CreatedTimestamp." + }, + "widgets": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:cloudtrail:DashboardWidget" + }, + "description": "List of widgets on the dashboard" + } + } + } + }, "aws-native:cloudtrail:getEventDataStore": { "description": "A storage lake of event data against which you can run complex SQL-based queries. An event data store can include events that you have logged on your account from the last 7 to 2557 or 3653 days (about seven or ten years) depending on the selected BillingMode.", "inputs": { @@ -290163,7 +291411,8 @@ "outputs": { "properties": { "availabilityZoneRebalancing": { - "$ref": "#/types/aws-native:ecs:ServiceAvailabilityZoneRebalancing" + "$ref": "#/types/aws-native:ecs:ServiceAvailabilityZoneRebalancing", + "description": "Indicates whether to use Availability Zone rebalancing for the service.\n\nFor more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* ." }, "capacityProviderStrategy": { "type": "array", @@ -291294,11 +292543,11 @@ }, "port": { "type": "integer", - "description": "The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer." + "description": "The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer." }, "protocol": { "type": "string", - "description": "The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer." + "description": "The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer." }, "sslPolicy": { "type": "string", @@ -291376,7 +292625,7 @@ }, "enablePrefixForIpv6SourceNat": { "type": "string", - "description": "[Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` ." + "description": "[Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``." }, "enforceSecurityGroupInboundRulesOnPrivateLinkTraffic": { "type": "string", @@ -291384,7 +292633,7 @@ }, "ipAddressType": { "type": "string", - "description": "Note: Internal load balancers must use the ``ipv4`` IP address type.\n [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses).\n Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors.\n [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener.\n [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses)." + "description": "The IP address type. Internal load balancers must use ``ipv4``.\n [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses).\n Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors.\n [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses)." }, "loadBalancerArn": { "type": "string", @@ -291405,6 +292654,9 @@ "type": "string", "description": "The name of the load balancer. For example, `my-load-balancer` ." }, + "minimumLoadBalancerCapacity": { + "$ref": "#/types/aws-native:elasticloadbalancingv2:LoadBalancerMinimumLoadBalancerCapacity" + }, "securityGroups": { "type": "array", "items": { @@ -291417,14 +292669,14 @@ "items": { "$ref": "#/types/aws-native:elasticloadbalancingv2:LoadBalancerSubnetMapping" }, - "description": "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet.\n [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets." + "description": "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet.\n [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets." }, "subnets": { "type": "array", "items": { "type": "string" }, - "description": "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers] You can specify subnets from one or more Availability Zones.\n [Gateway Load Balancers] You can specify subnets from one or more Availability Zones." + "description": "The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets.\n [Application Load Balancers] You must specify subnets from at least two Availability Zones.\n [Application Load Balancers on Outposts] You must specify one Outpost subnet.\n [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones.\n [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones." }, "tags": { "type": "array", @@ -301028,7 +302280,7 @@ "properties": { "destinationConfig": { "$ref": "#/types/aws-native:lambda:EventInvokeConfigDestinationConfig", - "description": "A destination for events after they have been sent to a function for processing.\n\n**Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function.\n- *Queue* - The ARN of a standard SQS queue.\n- *Topic* - The ARN of a standard SNS topic.\n- *Event Bus* - The ARN of an Amazon EventBridge event bus." + "description": "A destination for events after they have been sent to a function for processing.\n\n**Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function.\n- *Queue* - The ARN of a standard SQS queue.\n- *Bucket* - The ARN of an Amazon S3 bucket.\n- *Topic* - The ARN of a standard SNS topic.\n- *Event Bus* - The ARN of an Amazon EventBridge event bus.\n\n\u003e S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type." }, "maximumEventAgeInSeconds": { "type": "integer", @@ -311282,7 +312534,8 @@ "description": "The version number of the database engine to use. If you specify the SourceDBClusterIdentifier property, don't specify this property. The value is inherited from the cluster." }, "globalEndpoint": { - "$ref": "#/types/aws-native:rds:GlobalClusterGlobalEndpoint" + "$ref": "#/types/aws-native:rds:GlobalClusterGlobalEndpoint", + "description": "The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster." }, "tags": { "type": "array", @@ -312585,6 +313838,40 @@ } } }, + "aws-native:resourcegroups:getTagSyncTask": { + "description": "Schema for ResourceGroups::TagSyncTask", + "inputs": { + "properties": { + "taskArn": { + "type": "string", + "description": "The ARN of the TagSyncTask resource" + } + }, + "required": [ + "taskArn" + ] + }, + "outputs": { + "properties": { + "groupArn": { + "type": "string", + "description": "The Amazon resource name (ARN) of the ApplicationGroup for which the TagSyncTask is created" + }, + "groupName": { + "type": "string", + "description": "The Name of the application group for which the TagSyncTask is created" + }, + "status": { + "$ref": "#/types/aws-native:resourcegroups:TagSyncTaskStatus", + "description": "The status of the TagSyncTask" + }, + "taskArn": { + "type": "string", + "description": "The ARN of the TagSyncTask resource" + } + } + } + }, "aws-native:robomaker:getFleet": { "description": "AWS::RoboMaker::Fleet resource creates an AWS RoboMaker fleet. Fleets contain robots and can receive deployments.", "inputs": { @@ -321110,6 +322397,94 @@ } } }, + "aws-native:wisdom:getMessageTemplate": { + "description": "Definition of AWS::Wisdom::MessageTemplate Resource Type", + "inputs": { + "properties": { + "messageTemplateArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the message template." + } + }, + "required": [ + "messageTemplateArn" + ] + }, + "outputs": { + "properties": { + "content": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateContent" + }, + "defaultAttributes": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateAttributes" + }, + "description": { + "type": "string", + "description": "The description of the message template." + }, + "groupingConfiguration": { + "$ref": "#/types/aws-native:wisdom:MessageTemplateGroupingConfiguration" + }, + "language": { + "type": "string", + "description": "The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW" + }, + "messageTemplateArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the message template." + }, + "messageTemplateContentSha256": { + "type": "string", + "description": "The content SHA256 of the message template." + }, + "messageTemplateId": { + "type": "string", + "description": "The unique identifier of the message template." + }, + "name": { + "type": "string", + "description": "The name of the message template." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }." + } + } + } + }, + "aws-native:wisdom:getMessageTemplateVersion": { + "description": "A version for the specified customer-managed message template within the specified knowledge base.", + "inputs": { + "properties": { + "messageTemplateVersionArn": { + "type": "string", + "description": "The unqualified Amazon Resource Name (ARN) of the message template version." + } + }, + "required": [ + "messageTemplateVersionArn" + ] + }, + "outputs": { + "properties": { + "messageTemplateContentSha256": { + "type": "string", + "description": "The content SHA256 of the message template." + }, + "messageTemplateVersionArn": { + "type": "string", + "description": "The unqualified Amazon Resource Name (ARN) of the message template version." + }, + "messageTemplateVersionNumber": { + "type": "number", + "description": "Current version number of the message template." + } + } + } + }, "aws-native:workspaces:getConnectionAlias": { "description": "Resource Type definition for AWS::WorkSpaces::ConnectionAlias", "inputs": { diff --git a/reports/missedAutonaming.json b/reports/missedAutonaming.json index bb804d1f57..ea6141d46d 100644 --- a/reports/missedAutonaming.json +++ b/reports/missedAutonaming.json @@ -6944,11 +6944,11 @@ }, "port": { "type": "integer", - "description": "The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer." + "description": "The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer." }, "protocol": { "type": "string", - "description": "The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer." + "description": "The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer." }, "sslPolicy": { "type": "string", @@ -8444,7 +8444,7 @@ "properties": { "destinationConfig": { "$ref": "#/types/aws-native:lambda:EventInvokeConfigDestinationConfig", - "description": "A destination for events after they have been sent to a function for processing.\n\n**Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function.\n- *Queue* - The ARN of a standard SQS queue.\n- *Topic* - The ARN of a standard SNS topic.\n- *Event Bus* - The ARN of an Amazon EventBridge event bus." + "description": "A destination for events after they have been sent to a function for processing.\n\n**Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function.\n- *Queue* - The ARN of a standard SQS queue.\n- *Bucket* - The ARN of an Amazon S3 bucket.\n- *Topic* - The ARN of a standard SNS topic.\n- *Event Bus* - The ARN of an Amazon EventBridge event bus.\n\n\u003e S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type." }, "functionName": { "type": "string", @@ -11201,7 +11201,8 @@ "description": "The cluster identifier of the new global database cluster. This parameter is stored as a lowercase string." }, "globalEndpoint": { - "$ref": "#/types/aws-native:rds:GlobalClusterGlobalEndpoint" + "$ref": "#/types/aws-native:rds:GlobalClusterGlobalEndpoint", + "description": "The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster." }, "sourceDbClusterIdentifier": { "type": "string", @@ -11597,6 +11598,27 @@ } } }, + "aws-native:resourcegroups:TagSyncTask": { + "cfTypeName": "AWS::ResourceGroups::TagSyncTask", + "properties": { + "group": { + "type": "string", + "description": "The Amazon resource name (ARN) or name of the application group for which you want to create a tag-sync task" + }, + "roleArn": { + "type": "string", + "description": "The Amazon resource name (ARN) of the role assumed by the service to tag and untag resources on your behalf." + }, + "tagKey": { + "type": "string", + "description": "The tag key. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application." + }, + "tagValue": { + "type": "string", + "description": "The tag value. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application." + } + } + }, "aws-native:robomaker:RobotApplicationVersion": { "cfTypeName": "AWS::RoboMaker::RobotApplicationVersion", "properties": { @@ -13380,6 +13402,19 @@ } } }, + "aws-native:wisdom:MessageTemplateVersion": { + "cfTypeName": "AWS::Wisdom::MessageTemplateVersion", + "properties": { + "messageTemplateArn": { + "type": "string", + "description": "The unqualified Amazon Resource Name (ARN) of the message template." + }, + "messageTemplateContentSha256": { + "type": "string", + "description": "The content SHA256 of the message template." + } + } + }, "aws-native:workspaces:ConnectionAlias": { "cfTypeName": "AWS::WorkSpaces::ConnectionAlias", "properties": { diff --git a/sdk/dotnet/AutoScaling/AutoScalingGroup.cs b/sdk/dotnet/AutoScaling/AutoScalingGroup.cs index 16ec8f2a20..1369a393a7 100644 --- a/sdk/dotnet/AutoScaling/AutoScalingGroup.cs +++ b/sdk/dotnet/AutoScaling/AutoScalingGroup.cs @@ -50,6 +50,9 @@ public partial class AutoScalingGroup : global::Pulumi.CustomResource [Output("capacityRebalance")] public Output CapacityRebalance { get; private set; } = null!; + /// + /// The capacity reservation specification. + /// [Output("capacityReservationSpecification")] public Output CapacityReservationSpecification { get; private set; } = null!; @@ -332,6 +335,9 @@ public InputList AvailabilityZones [Input("capacityRebalance")] public Input? CapacityRebalance { get; set; } + /// + /// The capacity reservation specification. + /// [Input("capacityReservationSpecification")] public Input? CapacityReservationSpecification { get; set; } diff --git a/sdk/dotnet/AutoScaling/GetAutoScalingGroup.cs b/sdk/dotnet/AutoScaling/GetAutoScalingGroup.cs index 1ca6b173e0..ebe733eda5 100644 --- a/sdk/dotnet/AutoScaling/GetAutoScalingGroup.cs +++ b/sdk/dotnet/AutoScaling/GetAutoScalingGroup.cs @@ -83,6 +83,9 @@ public sealed class GetAutoScalingGroupResult /// Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see [Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the in the *Amazon EC2 Auto Scaling User Guide*. /// public readonly bool? CapacityRebalance; + /// + /// The capacity reservation specification. + /// public readonly Outputs.AutoScalingGroupCapacityReservationSpecification? CapacityReservationSpecification; /// /// Reserved. diff --git a/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupBaselinePerformanceFactorsRequestArgs.cs b/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupBaselinePerformanceFactorsRequestArgs.cs index 3dab100200..6bf34436d1 100644 --- a/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupBaselinePerformanceFactorsRequestArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupBaselinePerformanceFactorsRequestArgs.cs @@ -12,6 +12,9 @@ namespace Pulumi.AwsNative.AutoScaling.Inputs public sealed class AutoScalingGroupBaselinePerformanceFactorsRequestArgs : global::Pulumi.ResourceArgs { + /// + /// The CPU performance to consider, using an instance family as the baseline reference. + /// [Input("cpu")] public Input? Cpu { get; set; } diff --git a/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupCapacityReservationSpecificationArgs.cs b/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupCapacityReservationSpecificationArgs.cs index 88857d37ff..8828d669f4 100644 --- a/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupCapacityReservationSpecificationArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupCapacityReservationSpecificationArgs.cs @@ -12,9 +12,20 @@ namespace Pulumi.AwsNative.AutoScaling.Inputs public sealed class AutoScalingGroupCapacityReservationSpecificationArgs : global::Pulumi.ResourceArgs { + /// + /// The capacity reservation preference. The following options are available: + /// + /// - `capacity-reservations-only` - Auto Scaling will only launch instances into a Capacity Reservation or Capacity Reservation resource group. If capacity isn't available, instances will fail to launch. + /// - `capacity-reservations-first` - Auto Scaling will try to launch instances into a Capacity Reservation or Capacity Reservation resource group first. If capacity isn't available, instances will run in On-Demand capacity. + /// - `none` - Auto Scaling will not launch instances into a Capacity Reservation. Instances will run in On-Demand capacity. + /// - `default` - Auto Scaling uses the Capacity Reservation preference from your launch template or an open Capacity Reservation. + /// [Input("capacityReservationPreference", required: true)] public Input CapacityReservationPreference { get; set; } = null!; + /// + /// Describes a target Capacity Reservation or Capacity Reservation resource group. + /// [Input("capacityReservationTarget")] public Input? CapacityReservationTarget { get; set; } diff --git a/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupCapacityReservationTargetArgs.cs b/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupCapacityReservationTargetArgs.cs index 69031abaad..9e605397c4 100644 --- a/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupCapacityReservationTargetArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupCapacityReservationTargetArgs.cs @@ -14,6 +14,10 @@ public sealed class AutoScalingGroupCapacityReservationTargetArgs : global::Pulu { [Input("capacityReservationIds")] private InputList? _capacityReservationIds; + + /// + /// The Capacity Reservation IDs to launch instances into. + /// public InputList CapacityReservationIds { get => _capacityReservationIds ?? (_capacityReservationIds = new InputList()); @@ -22,6 +26,10 @@ public InputList CapacityReservationIds [Input("capacityReservationResourceGroupArns")] private InputList? _capacityReservationResourceGroupArns; + + /// + /// The resource group ARNs of the Capacity Reservation to launch instances into. + /// public InputList CapacityReservationResourceGroupArns { get => _capacityReservationResourceGroupArns ?? (_capacityReservationResourceGroupArns = new InputList()); diff --git a/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupCpuPerformanceFactorRequestArgs.cs b/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupCpuPerformanceFactorRequestArgs.cs index 5f46f7e20b..520afa06eb 100644 --- a/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupCpuPerformanceFactorRequestArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupCpuPerformanceFactorRequestArgs.cs @@ -14,6 +14,12 @@ public sealed class AutoScalingGroupCpuPerformanceFactorRequestArgs : global::Pu { [Input("references")] private InputList? _references; + + /// + /// Specify an instance family to use as the baseline reference for CPU performance. All instance types that match your specified attributes will be compared against the CPU performance of the referenced instance family, regardless of CPU manufacturer or architecture differences. + /// + /// > Currently only one instance family can be specified in the list. + /// public InputList References { get => _references ?? (_references = new InputList()); diff --git a/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupInstanceRequirementsArgs.cs b/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupInstanceRequirementsArgs.cs index a6cc83e73c..fd1e454636 100644 --- a/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupInstanceRequirementsArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/AutoScalingGroupInstanceRequirementsArgs.cs @@ -125,6 +125,9 @@ public InputList AllowedInstanceTypes [Input("baselineEbsBandwidthMbps")] public Input? BaselineEbsBandwidthMbps { get; set; } + /// + /// The baseline performance factors for the instance requirements. + /// [Input("baselinePerformanceFactors")] public Input? BaselinePerformanceFactors { get; set; } diff --git a/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupBaselinePerformanceFactorsRequest.cs b/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupBaselinePerformanceFactorsRequest.cs index 551211e221..13cfde94a2 100644 --- a/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupBaselinePerformanceFactorsRequest.cs +++ b/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupBaselinePerformanceFactorsRequest.cs @@ -13,6 +13,9 @@ namespace Pulumi.AwsNative.AutoScaling.Outputs [OutputType] public sealed class AutoScalingGroupBaselinePerformanceFactorsRequest { + /// + /// The CPU performance to consider, using an instance family as the baseline reference. + /// public readonly Outputs.AutoScalingGroupCpuPerformanceFactorRequest? Cpu; [OutputConstructor] diff --git a/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupCapacityReservationSpecification.cs b/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupCapacityReservationSpecification.cs index 6c4480b76e..8850519381 100644 --- a/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupCapacityReservationSpecification.cs +++ b/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupCapacityReservationSpecification.cs @@ -13,7 +13,18 @@ namespace Pulumi.AwsNative.AutoScaling.Outputs [OutputType] public sealed class AutoScalingGroupCapacityReservationSpecification { + /// + /// The capacity reservation preference. The following options are available: + /// + /// - `capacity-reservations-only` - Auto Scaling will only launch instances into a Capacity Reservation or Capacity Reservation resource group. If capacity isn't available, instances will fail to launch. + /// - `capacity-reservations-first` - Auto Scaling will try to launch instances into a Capacity Reservation or Capacity Reservation resource group first. If capacity isn't available, instances will run in On-Demand capacity. + /// - `none` - Auto Scaling will not launch instances into a Capacity Reservation. Instances will run in On-Demand capacity. + /// - `default` - Auto Scaling uses the Capacity Reservation preference from your launch template or an open Capacity Reservation. + /// public readonly string CapacityReservationPreference; + /// + /// Describes a target Capacity Reservation or Capacity Reservation resource group. + /// public readonly Outputs.AutoScalingGroupCapacityReservationTarget? CapacityReservationTarget; [OutputConstructor] diff --git a/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupCapacityReservationTarget.cs b/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupCapacityReservationTarget.cs index 385779d09b..6dda938791 100644 --- a/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupCapacityReservationTarget.cs +++ b/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupCapacityReservationTarget.cs @@ -13,7 +13,13 @@ namespace Pulumi.AwsNative.AutoScaling.Outputs [OutputType] public sealed class AutoScalingGroupCapacityReservationTarget { + /// + /// The Capacity Reservation IDs to launch instances into. + /// public readonly ImmutableArray CapacityReservationIds; + /// + /// The resource group ARNs of the Capacity Reservation to launch instances into. + /// public readonly ImmutableArray CapacityReservationResourceGroupArns; [OutputConstructor] diff --git a/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupCpuPerformanceFactorRequest.cs b/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupCpuPerformanceFactorRequest.cs index c41d619b6b..342a7644e1 100644 --- a/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupCpuPerformanceFactorRequest.cs +++ b/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupCpuPerformanceFactorRequest.cs @@ -13,6 +13,11 @@ namespace Pulumi.AwsNative.AutoScaling.Outputs [OutputType] public sealed class AutoScalingGroupCpuPerformanceFactorRequest { + /// + /// Specify an instance family to use as the baseline reference for CPU performance. All instance types that match your specified attributes will be compared against the CPU performance of the referenced instance family, regardless of CPU manufacturer or architecture differences. + /// + /// > Currently only one instance family can be specified in the list. + /// public readonly ImmutableArray References; [OutputConstructor] diff --git a/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupInstanceRequirements.cs b/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupInstanceRequirements.cs index 474394156b..2f54f8d1ef 100644 --- a/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupInstanceRequirements.cs +++ b/sdk/dotnet/AutoScaling/Outputs/AutoScalingGroupInstanceRequirements.cs @@ -86,6 +86,9 @@ public sealed class AutoScalingGroupInstanceRequirements /// Default: No minimum or maximum limits /// public readonly Outputs.AutoScalingGroupBaselineEbsBandwidthMbpsRequest? BaselineEbsBandwidthMbps; + /// + /// The baseline performance factors for the instance requirements. + /// public readonly Outputs.AutoScalingGroupBaselinePerformanceFactorsRequest? BaselinePerformanceFactors; /// /// Indicates whether burstable performance instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*. diff --git a/sdk/dotnet/Chatbot/CustomAction.cs b/sdk/dotnet/Chatbot/CustomAction.cs new file mode 100644 index 0000000000..f47d2c0e45 --- /dev/null +++ b/sdk/dotnet/Chatbot/CustomAction.cs @@ -0,0 +1,115 @@ +// *** 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.Chatbot +{ + /// + /// Definition of AWS::Chatbot::CustomAction Resource Type + /// + [AwsNativeResourceType("aws-native:chatbot:CustomAction")] + public partial class CustomAction : global::Pulumi.CustomResource + { + [Output("actionName")] + public Output ActionName { get; private set; } = null!; + + [Output("aliasName")] + public Output AliasName { get; private set; } = null!; + + [Output("attachments")] + public Output> Attachments { get; private set; } = null!; + + [Output("customActionArn")] + public Output CustomActionArn { get; private set; } = null!; + + [Output("definition")] + public Output Definition { get; private set; } = null!; + + [Output("tags")] + public Output> Tags { get; private set; } = null!; + + + /// + /// Create a CustomAction 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 CustomAction(string name, CustomActionArgs args, CustomResourceOptions? options = null) + : base("aws-native:chatbot:CustomAction", name, args ?? new CustomActionArgs(), MakeResourceOptions(options, "")) + { + } + + private CustomAction(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:chatbot:CustomAction", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "actionName", + }, + }; + 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 CustomAction 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 CustomAction Get(string name, Input id, CustomResourceOptions? options = null) + { + return new CustomAction(name, id, options); + } + } + + public sealed class CustomActionArgs : global::Pulumi.ResourceArgs + { + [Input("actionName")] + public Input? ActionName { get; set; } + + [Input("aliasName")] + public Input? AliasName { get; set; } + + [Input("attachments")] + private InputList? _attachments; + public InputList Attachments + { + get => _attachments ?? (_attachments = new InputList()); + set => _attachments = value; + } + + [Input("definition", required: true)] + public Input Definition { get; set; } = null!; + + [Input("tags")] + private InputList? _tags; + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + + public CustomActionArgs() + { + } + public static new CustomActionArgs Empty => new CustomActionArgs(); + } +} diff --git a/sdk/dotnet/Chatbot/Enums.cs b/sdk/dotnet/Chatbot/Enums.cs new file mode 100644 index 0000000000..8ad619bc44 --- /dev/null +++ b/sdk/dotnet/Chatbot/Enums.cs @@ -0,0 +1,37 @@ +// *** 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.Chatbot +{ + [EnumType] + public readonly struct CustomActionAttachmentCriteriaOperator : IEquatable + { + private readonly string _value; + + private CustomActionAttachmentCriteriaOperator(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static CustomActionAttachmentCriteriaOperator HasValue { get; } = new CustomActionAttachmentCriteriaOperator("HAS_VALUE"); + public static CustomActionAttachmentCriteriaOperator EqualsValue { get; } = new CustomActionAttachmentCriteriaOperator("EQUALS"); + + public static bool operator ==(CustomActionAttachmentCriteriaOperator left, CustomActionAttachmentCriteriaOperator right) => left.Equals(right); + public static bool operator !=(CustomActionAttachmentCriteriaOperator left, CustomActionAttachmentCriteriaOperator right) => !left.Equals(right); + + public static explicit operator string(CustomActionAttachmentCriteriaOperator value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is CustomActionAttachmentCriteriaOperator other && Equals(other); + public bool Equals(CustomActionAttachmentCriteriaOperator 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/Chatbot/GetCustomAction.cs b/sdk/dotnet/Chatbot/GetCustomAction.cs new file mode 100644 index 0000000000..adb7a3a6bd --- /dev/null +++ b/sdk/dotnet/Chatbot/GetCustomAction.cs @@ -0,0 +1,79 @@ +// *** 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.Chatbot +{ + public static class GetCustomAction + { + /// + /// Definition of AWS::Chatbot::CustomAction Resource Type + /// + public static Task InvokeAsync(GetCustomActionArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:chatbot:getCustomAction", args ?? new GetCustomActionArgs(), options.WithDefaults()); + + /// + /// Definition of AWS::Chatbot::CustomAction Resource Type + /// + public static Output Invoke(GetCustomActionInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:chatbot:getCustomAction", args ?? new GetCustomActionInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetCustomActionArgs : global::Pulumi.InvokeArgs + { + [Input("customActionArn", required: true)] + public string CustomActionArn { get; set; } = null!; + + public GetCustomActionArgs() + { + } + public static new GetCustomActionArgs Empty => new GetCustomActionArgs(); + } + + public sealed class GetCustomActionInvokeArgs : global::Pulumi.InvokeArgs + { + [Input("customActionArn", required: true)] + public Input CustomActionArn { get; set; } = null!; + + public GetCustomActionInvokeArgs() + { + } + public static new GetCustomActionInvokeArgs Empty => new GetCustomActionInvokeArgs(); + } + + + [OutputType] + public sealed class GetCustomActionResult + { + public readonly string? AliasName; + public readonly ImmutableArray Attachments; + public readonly string? CustomActionArn; + public readonly Outputs.CustomActionDefinition? Definition; + public readonly ImmutableArray Tags; + + [OutputConstructor] + private GetCustomActionResult( + string? aliasName, + + ImmutableArray attachments, + + string? customActionArn, + + Outputs.CustomActionDefinition? definition, + + ImmutableArray tags) + { + AliasName = aliasName; + Attachments = attachments; + CustomActionArn = customActionArn; + Definition = definition; + Tags = tags; + } + } +} diff --git a/sdk/dotnet/Chatbot/GetMicrosoftTeamsChannelConfiguration.cs b/sdk/dotnet/Chatbot/GetMicrosoftTeamsChannelConfiguration.cs index 02d33156d8..eb0c025399 100644 --- a/sdk/dotnet/Chatbot/GetMicrosoftTeamsChannelConfiguration.cs +++ b/sdk/dotnet/Chatbot/GetMicrosoftTeamsChannelConfiguration.cs @@ -62,6 +62,10 @@ public sealed class GetMicrosoftTeamsChannelConfigurationResult /// public readonly string? Arn; /// + /// ARNs of Custom Actions to associate with notifications in the provided chat channel. + /// + public readonly ImmutableArray CustomizationResourceArns; + /// /// The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. /// public readonly ImmutableArray GuardrailPolicies; @@ -94,6 +98,8 @@ public sealed class GetMicrosoftTeamsChannelConfigurationResult private GetMicrosoftTeamsChannelConfigurationResult( string? arn, + ImmutableArray customizationResourceArns, + ImmutableArray guardrailPolicies, string? iamRoleArn, @@ -109,6 +115,7 @@ private GetMicrosoftTeamsChannelConfigurationResult( bool? userRoleRequired) { Arn = arn; + CustomizationResourceArns = customizationResourceArns; GuardrailPolicies = guardrailPolicies; IamRoleArn = iamRoleArn; LoggingLevel = loggingLevel; diff --git a/sdk/dotnet/Chatbot/GetSlackChannelConfiguration.cs b/sdk/dotnet/Chatbot/GetSlackChannelConfiguration.cs index 0965042278..2ddde80f7f 100644 --- a/sdk/dotnet/Chatbot/GetSlackChannelConfiguration.cs +++ b/sdk/dotnet/Chatbot/GetSlackChannelConfiguration.cs @@ -62,6 +62,10 @@ public sealed class GetSlackChannelConfigurationResult /// public readonly string? Arn; /// + /// ARNs of Custom Actions to associate with notifications in the provided chat channel. + /// + public readonly ImmutableArray CustomizationResourceArns; + /// /// The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. /// public readonly ImmutableArray GuardrailPolicies; @@ -94,6 +98,8 @@ public sealed class GetSlackChannelConfigurationResult private GetSlackChannelConfigurationResult( string? arn, + ImmutableArray customizationResourceArns, + ImmutableArray guardrailPolicies, string? iamRoleArn, @@ -109,6 +115,7 @@ private GetSlackChannelConfigurationResult( bool? userRoleRequired) { Arn = arn; + CustomizationResourceArns = customizationResourceArns; GuardrailPolicies = guardrailPolicies; IamRoleArn = iamRoleArn; LoggingLevel = loggingLevel; diff --git a/sdk/dotnet/Chatbot/Inputs/CustomActionAttachmentArgs.cs b/sdk/dotnet/Chatbot/Inputs/CustomActionAttachmentArgs.cs new file mode 100644 index 0000000000..912ad9d6ab --- /dev/null +++ b/sdk/dotnet/Chatbot/Inputs/CustomActionAttachmentArgs.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.Chatbot.Inputs +{ + + public sealed class CustomActionAttachmentArgs : global::Pulumi.ResourceArgs + { + [Input("buttonText")] + public Input? ButtonText { get; set; } + + [Input("criteria")] + private InputList? _criteria; + public InputList Criteria + { + get => _criteria ?? (_criteria = new InputList()); + set => _criteria = value; + } + + [Input("notificationType")] + public Input? NotificationType { get; set; } + + [Input("variables")] + private InputMap? _variables; + public InputMap Variables + { + get => _variables ?? (_variables = new InputMap()); + set => _variables = value; + } + + public CustomActionAttachmentArgs() + { + } + public static new CustomActionAttachmentArgs Empty => new CustomActionAttachmentArgs(); + } +} diff --git a/sdk/dotnet/Chatbot/Inputs/CustomActionAttachmentCriteriaArgs.cs b/sdk/dotnet/Chatbot/Inputs/CustomActionAttachmentCriteriaArgs.cs new file mode 100644 index 0000000000..e0659b5ac7 --- /dev/null +++ b/sdk/dotnet/Chatbot/Inputs/CustomActionAttachmentCriteriaArgs.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.Chatbot.Inputs +{ + + public sealed class CustomActionAttachmentCriteriaArgs : global::Pulumi.ResourceArgs + { + [Input("operator", required: true)] + public Input Operator { get; set; } = null!; + + [Input("value")] + public Input? Value { get; set; } + + [Input("variableName", required: true)] + public Input VariableName { get; set; } = null!; + + public CustomActionAttachmentCriteriaArgs() + { + } + public static new CustomActionAttachmentCriteriaArgs Empty => new CustomActionAttachmentCriteriaArgs(); + } +} diff --git a/sdk/dotnet/Chatbot/Inputs/CustomActionDefinitionArgs.cs b/sdk/dotnet/Chatbot/Inputs/CustomActionDefinitionArgs.cs new file mode 100644 index 0000000000..42a1b4fb32 --- /dev/null +++ b/sdk/dotnet/Chatbot/Inputs/CustomActionDefinitionArgs.cs @@ -0,0 +1,23 @@ +// *** 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.Chatbot.Inputs +{ + + public sealed class CustomActionDefinitionArgs : global::Pulumi.ResourceArgs + { + [Input("commandText", required: true)] + public Input CommandText { get; set; } = null!; + + public CustomActionDefinitionArgs() + { + } + public static new CustomActionDefinitionArgs Empty => new CustomActionDefinitionArgs(); + } +} diff --git a/sdk/dotnet/Chatbot/MicrosoftTeamsChannelConfiguration.cs b/sdk/dotnet/Chatbot/MicrosoftTeamsChannelConfiguration.cs index c51798f6ef..453218d5d2 100644 --- a/sdk/dotnet/Chatbot/MicrosoftTeamsChannelConfiguration.cs +++ b/sdk/dotnet/Chatbot/MicrosoftTeamsChannelConfiguration.cs @@ -27,6 +27,12 @@ public partial class MicrosoftTeamsChannelConfiguration : global::Pulumi.CustomR [Output("configurationName")] public Output ConfigurationName { get; private set; } = null!; + /// + /// ARNs of Custom Actions to associate with notifications in the provided chat channel. + /// + [Output("customizationResourceArns")] + public Output> CustomizationResourceArns { get; private set; } = null!; + /// /// The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. /// @@ -138,6 +144,18 @@ public sealed class MicrosoftTeamsChannelConfigurationArgs : global::Pulumi.Reso [Input("configurationName")] public Input? ConfigurationName { get; set; } + [Input("customizationResourceArns")] + private InputList? _customizationResourceArns; + + /// + /// ARNs of Custom Actions to associate with notifications in the provided chat channel. + /// + public InputList CustomizationResourceArns + { + get => _customizationResourceArns ?? (_customizationResourceArns = new InputList()); + set => _customizationResourceArns = value; + } + [Input("guardrailPolicies")] private InputList? _guardrailPolicies; diff --git a/sdk/dotnet/Chatbot/Outputs/CustomActionAttachment.cs b/sdk/dotnet/Chatbot/Outputs/CustomActionAttachment.cs new file mode 100644 index 0000000000..ba10189261 --- /dev/null +++ b/sdk/dotnet/Chatbot/Outputs/CustomActionAttachment.cs @@ -0,0 +1,37 @@ +// *** 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.Chatbot.Outputs +{ + + [OutputType] + public sealed class CustomActionAttachment + { + public readonly string? ButtonText; + public readonly ImmutableArray Criteria; + public readonly string? NotificationType; + public readonly ImmutableDictionary? Variables; + + [OutputConstructor] + private CustomActionAttachment( + string? buttonText, + + ImmutableArray criteria, + + string? notificationType, + + ImmutableDictionary? variables) + { + ButtonText = buttonText; + Criteria = criteria; + NotificationType = notificationType; + Variables = variables; + } + } +} diff --git a/sdk/dotnet/Chatbot/Outputs/CustomActionAttachmentCriteria.cs b/sdk/dotnet/Chatbot/Outputs/CustomActionAttachmentCriteria.cs new file mode 100644 index 0000000000..59bd99fb38 --- /dev/null +++ b/sdk/dotnet/Chatbot/Outputs/CustomActionAttachmentCriteria.cs @@ -0,0 +1,33 @@ +// *** 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.Chatbot.Outputs +{ + + [OutputType] + public sealed class CustomActionAttachmentCriteria + { + public readonly Pulumi.AwsNative.Chatbot.CustomActionAttachmentCriteriaOperator Operator; + public readonly string? Value; + public readonly string VariableName; + + [OutputConstructor] + private CustomActionAttachmentCriteria( + Pulumi.AwsNative.Chatbot.CustomActionAttachmentCriteriaOperator @operator, + + string? value, + + string variableName) + { + Operator = @operator; + Value = value; + VariableName = variableName; + } + } +} diff --git a/sdk/dotnet/Chatbot/Outputs/CustomActionDefinition.cs b/sdk/dotnet/Chatbot/Outputs/CustomActionDefinition.cs new file mode 100644 index 0000000000..a19acd3251 --- /dev/null +++ b/sdk/dotnet/Chatbot/Outputs/CustomActionDefinition.cs @@ -0,0 +1,24 @@ +// *** 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.Chatbot.Outputs +{ + + [OutputType] + public sealed class CustomActionDefinition + { + public readonly string CommandText; + + [OutputConstructor] + private CustomActionDefinition(string commandText) + { + CommandText = commandText; + } + } +} diff --git a/sdk/dotnet/Chatbot/SlackChannelConfiguration.cs b/sdk/dotnet/Chatbot/SlackChannelConfiguration.cs index 3c5b546d91..fc92fce0e6 100644 --- a/sdk/dotnet/Chatbot/SlackChannelConfiguration.cs +++ b/sdk/dotnet/Chatbot/SlackChannelConfiguration.cs @@ -27,6 +27,12 @@ public partial class SlackChannelConfiguration : global::Pulumi.CustomResource [Output("configurationName")] public Output ConfigurationName { get; private set; } = null!; + /// + /// ARNs of Custom Actions to associate with notifications in the provided chat channel. + /// + [Output("customizationResourceArns")] + public Output> CustomizationResourceArns { get; private set; } = null!; + /// /// The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. /// @@ -131,6 +137,18 @@ public sealed class SlackChannelConfigurationArgs : global::Pulumi.ResourceArgs [Input("configurationName")] public Input? ConfigurationName { get; set; } + [Input("customizationResourceArns")] + private InputList? _customizationResourceArns; + + /// + /// ARNs of Custom Actions to associate with notifications in the provided chat channel. + /// + public InputList CustomizationResourceArns + { + get => _customizationResourceArns ?? (_customizationResourceArns = new InputList()); + set => _customizationResourceArns = value; + } + [Input("guardrailPolicies")] private InputList? _guardrailPolicies; diff --git a/sdk/dotnet/CloudTrail/Dashboard.cs b/sdk/dotnet/CloudTrail/Dashboard.cs new file mode 100644 index 0000000000..f99928814c --- /dev/null +++ b/sdk/dotnet/CloudTrail/Dashboard.cs @@ -0,0 +1,163 @@ +// *** 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.CloudTrail +{ + /// + /// The Amazon CloudTrail dashboard resource allows customers to manage managed dashboards and create custom dashboards. You can manually refresh custom and managed dashboards. For custom dashboards, you can also set up an automatic refresh schedule and modify dashboard widgets. + /// + [AwsNativeResourceType("aws-native:cloudtrail:Dashboard")] + public partial class Dashboard : global::Pulumi.CustomResource + { + /// + /// The timestamp of the dashboard creation. + /// + [Output("createdTimestamp")] + public Output CreatedTimestamp { get; private set; } = null!; + + /// + /// The ARN of the dashboard. + /// + [Output("dashboardArn")] + public Output DashboardArn { get; private set; } = null!; + + /// + /// The name of the dashboard. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + /// + [Output("refreshSchedule")] + public Output RefreshSchedule { get; private set; } = null!; + + /// + /// The status of the dashboard. Values are CREATING, CREATED, UPDATING, UPDATED and DELETING. + /// + [Output("status")] + public Output Status { get; private set; } = null!; + + [Output("tags")] + public Output> Tags { get; private set; } = null!; + + /// + /// Indicates whether the dashboard is protected from termination. + /// + [Output("terminationProtectionEnabled")] + public Output TerminationProtectionEnabled { get; private set; } = null!; + + /// + /// The type of the dashboard. Values are CUSTOM and MANAGED. + /// + [Output("type")] + public Output Type { get; private set; } = null!; + + /// + /// The timestamp showing when the dashboard was updated, if applicable. UpdatedTimestamp is always either the same or newer than the time shown in CreatedTimestamp. + /// + [Output("updatedTimestamp")] + public Output UpdatedTimestamp { get; private set; } = null!; + + /// + /// List of widgets on the dashboard + /// + [Output("widgets")] + public Output> Widgets { get; private set; } = null!; + + + /// + /// Create a Dashboard 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 Dashboard(string name, DashboardArgs? args = null, CustomResourceOptions? options = null) + : base("aws-native:cloudtrail:Dashboard", name, args ?? new DashboardArgs(), MakeResourceOptions(options, "")) + { + } + + private Dashboard(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:cloudtrail:Dashboard", 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 Dashboard 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 Dashboard Get(string name, Input id, CustomResourceOptions? options = null) + { + return new Dashboard(name, id, options); + } + } + + public sealed class DashboardArgs : global::Pulumi.ResourceArgs + { + /// + /// The name of the dashboard. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + /// + [Input("refreshSchedule")] + public Input? RefreshSchedule { get; set; } + + [Input("tags")] + private InputList? _tags; + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + + /// + /// Indicates whether the dashboard is protected from termination. + /// + [Input("terminationProtectionEnabled")] + public Input? TerminationProtectionEnabled { get; set; } + + [Input("widgets")] + private InputList? _widgets; + + /// + /// List of widgets on the dashboard + /// + public InputList Widgets + { + get => _widgets ?? (_widgets = new InputList()); + set => _widgets = value; + } + + public DashboardArgs() + { + } + public static new DashboardArgs Empty => new DashboardArgs(); + } +} diff --git a/sdk/dotnet/CloudTrail/Enums.cs b/sdk/dotnet/CloudTrail/Enums.cs index f4547fe517..d62a80998a 100644 --- a/sdk/dotnet/CloudTrail/Enums.cs +++ b/sdk/dotnet/CloudTrail/Enums.cs @@ -37,6 +37,133 @@ private ChannelDestinationType(string value) public override string ToString() => _value; } + /// + /// The frequency unit. Supported values are HOURS and DAYS. + /// + [EnumType] + public readonly struct DashboardRefreshScheduleFrequencyPropertiesUnit : IEquatable + { + private readonly string _value; + + private DashboardRefreshScheduleFrequencyPropertiesUnit(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static DashboardRefreshScheduleFrequencyPropertiesUnit Hours { get; } = new DashboardRefreshScheduleFrequencyPropertiesUnit("HOURS"); + public static DashboardRefreshScheduleFrequencyPropertiesUnit Days { get; } = new DashboardRefreshScheduleFrequencyPropertiesUnit("DAYS"); + + public static bool operator ==(DashboardRefreshScheduleFrequencyPropertiesUnit left, DashboardRefreshScheduleFrequencyPropertiesUnit right) => left.Equals(right); + public static bool operator !=(DashboardRefreshScheduleFrequencyPropertiesUnit left, DashboardRefreshScheduleFrequencyPropertiesUnit right) => !left.Equals(right); + + public static explicit operator string(DashboardRefreshScheduleFrequencyPropertiesUnit value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is DashboardRefreshScheduleFrequencyPropertiesUnit other && Equals(other); + public bool Equals(DashboardRefreshScheduleFrequencyPropertiesUnit other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + + /// + /// The status of the schedule. Supported values are ENABLED and DISABLED. + /// + [EnumType] + public readonly struct DashboardRefreshScheduleStatus : IEquatable + { + private readonly string _value; + + private DashboardRefreshScheduleStatus(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static DashboardRefreshScheduleStatus Enabled { get; } = new DashboardRefreshScheduleStatus("ENABLED"); + public static DashboardRefreshScheduleStatus Disabled { get; } = new DashboardRefreshScheduleStatus("DISABLED"); + + public static bool operator ==(DashboardRefreshScheduleStatus left, DashboardRefreshScheduleStatus right) => left.Equals(right); + public static bool operator !=(DashboardRefreshScheduleStatus left, DashboardRefreshScheduleStatus right) => !left.Equals(right); + + public static explicit operator string(DashboardRefreshScheduleStatus value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is DashboardRefreshScheduleStatus other && Equals(other); + public bool Equals(DashboardRefreshScheduleStatus other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + + /// + /// The status of the dashboard. Values are CREATING, CREATED, UPDATING, UPDATED and DELETING. + /// + [EnumType] + public readonly struct DashboardStatus : IEquatable + { + private readonly string _value; + + private DashboardStatus(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static DashboardStatus Creating { get; } = new DashboardStatus("CREATING"); + public static DashboardStatus Created { get; } = new DashboardStatus("CREATED"); + public static DashboardStatus Updating { get; } = new DashboardStatus("UPDATING"); + public static DashboardStatus Updated { get; } = new DashboardStatus("UPDATED"); + public static DashboardStatus Deleting { get; } = new DashboardStatus("DELETING"); + + public static bool operator ==(DashboardStatus left, DashboardStatus right) => left.Equals(right); + public static bool operator !=(DashboardStatus left, DashboardStatus right) => !left.Equals(right); + + public static explicit operator string(DashboardStatus value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is DashboardStatus other && Equals(other); + public bool Equals(DashboardStatus other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + + /// + /// The type of the dashboard. Values are CUSTOM and MANAGED. + /// + [EnumType] + public readonly struct DashboardType : IEquatable + { + private readonly string _value; + + private DashboardType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static DashboardType Managed { get; } = new DashboardType("MANAGED"); + public static DashboardType Custom { get; } = new DashboardType("CUSTOM"); + + public static bool operator ==(DashboardType left, DashboardType right) => left.Equals(right); + public static bool operator !=(DashboardType left, DashboardType right) => !left.Equals(right); + + public static explicit operator string(DashboardType value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is DashboardType other && Equals(other); + public bool Equals(DashboardType other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + /// /// Specify if you want your trail to log read-only events, write-only events, or all. For example, the EC2 GetConsoleOutput is a read-only API operation and RunInstances is a write-only API operation. /// diff --git a/sdk/dotnet/CloudTrail/GetDashboard.cs b/sdk/dotnet/CloudTrail/GetDashboard.cs new file mode 100644 index 0000000000..fb25a560b7 --- /dev/null +++ b/sdk/dotnet/CloudTrail/GetDashboard.cs @@ -0,0 +1,132 @@ +// *** 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.CloudTrail +{ + public static class GetDashboard + { + /// + /// The Amazon CloudTrail dashboard resource allows customers to manage managed dashboards and create custom dashboards. You can manually refresh custom and managed dashboards. For custom dashboards, you can also set up an automatic refresh schedule and modify dashboard widgets. + /// + public static Task InvokeAsync(GetDashboardArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:cloudtrail:getDashboard", args ?? new GetDashboardArgs(), options.WithDefaults()); + + /// + /// The Amazon CloudTrail dashboard resource allows customers to manage managed dashboards and create custom dashboards. You can manually refresh custom and managed dashboards. For custom dashboards, you can also set up an automatic refresh schedule and modify dashboard widgets. + /// + public static Output Invoke(GetDashboardInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:cloudtrail:getDashboard", args ?? new GetDashboardInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetDashboardArgs : global::Pulumi.InvokeArgs + { + /// + /// The ARN of the dashboard. + /// + [Input("dashboardArn", required: true)] + public string DashboardArn { get; set; } = null!; + + public GetDashboardArgs() + { + } + public static new GetDashboardArgs Empty => new GetDashboardArgs(); + } + + public sealed class GetDashboardInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The ARN of the dashboard. + /// + [Input("dashboardArn", required: true)] + public Input DashboardArn { get; set; } = null!; + + public GetDashboardInvokeArgs() + { + } + public static new GetDashboardInvokeArgs Empty => new GetDashboardInvokeArgs(); + } + + + [OutputType] + public sealed class GetDashboardResult + { + /// + /// The timestamp of the dashboard creation. + /// + public readonly string? CreatedTimestamp; + /// + /// The ARN of the dashboard. + /// + public readonly string? DashboardArn; + /// + /// The name of the dashboard. + /// + public readonly string? Name; + /// + /// Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + /// + public readonly Outputs.DashboardRefreshSchedule? RefreshSchedule; + /// + /// The status of the dashboard. Values are CREATING, CREATED, UPDATING, UPDATED and DELETING. + /// + public readonly Pulumi.AwsNative.CloudTrail.DashboardStatus? Status; + public readonly ImmutableArray Tags; + /// + /// Indicates whether the dashboard is protected from termination. + /// + public readonly bool? TerminationProtectionEnabled; + /// + /// The type of the dashboard. Values are CUSTOM and MANAGED. + /// + public readonly Pulumi.AwsNative.CloudTrail.DashboardType? Type; + /// + /// The timestamp showing when the dashboard was updated, if applicable. UpdatedTimestamp is always either the same or newer than the time shown in CreatedTimestamp. + /// + public readonly string? UpdatedTimestamp; + /// + /// List of widgets on the dashboard + /// + public readonly ImmutableArray Widgets; + + [OutputConstructor] + private GetDashboardResult( + string? createdTimestamp, + + string? dashboardArn, + + string? name, + + Outputs.DashboardRefreshSchedule? refreshSchedule, + + Pulumi.AwsNative.CloudTrail.DashboardStatus? status, + + ImmutableArray tags, + + bool? terminationProtectionEnabled, + + Pulumi.AwsNative.CloudTrail.DashboardType? type, + + string? updatedTimestamp, + + ImmutableArray widgets) + { + CreatedTimestamp = createdTimestamp; + DashboardArn = dashboardArn; + Name = name; + RefreshSchedule = refreshSchedule; + Status = status; + Tags = tags; + TerminationProtectionEnabled = terminationProtectionEnabled; + Type = type; + UpdatedTimestamp = updatedTimestamp; + Widgets = widgets; + } + } +} diff --git a/sdk/dotnet/CloudTrail/Inputs/DashboardRefreshScheduleArgs.cs b/sdk/dotnet/CloudTrail/Inputs/DashboardRefreshScheduleArgs.cs new file mode 100644 index 0000000000..e4ba12c9e9 --- /dev/null +++ b/sdk/dotnet/CloudTrail/Inputs/DashboardRefreshScheduleArgs.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.CloudTrail.Inputs +{ + + /// + /// Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + /// + public sealed class DashboardRefreshScheduleArgs : global::Pulumi.ResourceArgs + { + [Input("frequency")] + public Input? Frequency { get; set; } + + /// + /// The status of the schedule. Supported values are ENABLED and DISABLED. + /// + [Input("status")] + public Input? Status { get; set; } + + /// + /// StartTime of the automatic schedule refresh. + /// + [Input("timeOfDay")] + public Input? TimeOfDay { get; set; } + + public DashboardRefreshScheduleArgs() + { + } + public static new DashboardRefreshScheduleArgs Empty => new DashboardRefreshScheduleArgs(); + } +} diff --git a/sdk/dotnet/CloudTrail/Inputs/DashboardRefreshScheduleFrequencyPropertiesArgs.cs b/sdk/dotnet/CloudTrail/Inputs/DashboardRefreshScheduleFrequencyPropertiesArgs.cs new file mode 100644 index 0000000000..f08db67a89 --- /dev/null +++ b/sdk/dotnet/CloudTrail/Inputs/DashboardRefreshScheduleFrequencyPropertiesArgs.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.CloudTrail.Inputs +{ + + public sealed class DashboardRefreshScheduleFrequencyPropertiesArgs : global::Pulumi.ResourceArgs + { + /// + /// The frequency unit. Supported values are HOURS and DAYS. + /// + [Input("unit", required: true)] + public Input Unit { get; set; } = null!; + + /// + /// The frequency value. + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public DashboardRefreshScheduleFrequencyPropertiesArgs() + { + } + public static new DashboardRefreshScheduleFrequencyPropertiesArgs Empty => new DashboardRefreshScheduleFrequencyPropertiesArgs(); + } +} diff --git a/sdk/dotnet/CloudTrail/Inputs/DashboardWidgetArgs.cs b/sdk/dotnet/CloudTrail/Inputs/DashboardWidgetArgs.cs new file mode 100644 index 0000000000..b62ed28b48 --- /dev/null +++ b/sdk/dotnet/CloudTrail/Inputs/DashboardWidgetArgs.cs @@ -0,0 +1,53 @@ +// *** 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.CloudTrail.Inputs +{ + + /// + /// The dashboard widget + /// + public sealed class DashboardWidgetArgs : global::Pulumi.ResourceArgs + { + [Input("queryParameters")] + private InputList? _queryParameters; + + /// + /// The placeholder keys in the QueryStatement. For example: $StartTime$, $EndTime$, $Period$. + /// + public InputList QueryParameters + { + get => _queryParameters ?? (_queryParameters = new InputList()); + set => _queryParameters = value; + } + + /// + /// The SQL query statement on one or more event data stores. + /// + [Input("queryStatement", required: true)] + public Input QueryStatement { get; set; } = null!; + + [Input("viewProperties")] + private InputMap? _viewProperties; + + /// + /// The view properties of the widget. + /// + public InputMap ViewProperties + { + get => _viewProperties ?? (_viewProperties = new InputMap()); + set => _viewProperties = value; + } + + public DashboardWidgetArgs() + { + } + public static new DashboardWidgetArgs Empty => new DashboardWidgetArgs(); + } +} diff --git a/sdk/dotnet/CloudTrail/Outputs/DashboardRefreshSchedule.cs b/sdk/dotnet/CloudTrail/Outputs/DashboardRefreshSchedule.cs new file mode 100644 index 0000000000..518f2e506f --- /dev/null +++ b/sdk/dotnet/CloudTrail/Outputs/DashboardRefreshSchedule.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.CloudTrail.Outputs +{ + + /// + /// Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + /// + [OutputType] + public sealed class DashboardRefreshSchedule + { + public readonly Outputs.DashboardRefreshScheduleFrequencyProperties? Frequency; + /// + /// The status of the schedule. Supported values are ENABLED and DISABLED. + /// + public readonly Pulumi.AwsNative.CloudTrail.DashboardRefreshScheduleStatus? Status; + /// + /// StartTime of the automatic schedule refresh. + /// + public readonly string? TimeOfDay; + + [OutputConstructor] + private DashboardRefreshSchedule( + Outputs.DashboardRefreshScheduleFrequencyProperties? frequency, + + Pulumi.AwsNative.CloudTrail.DashboardRefreshScheduleStatus? status, + + string? timeOfDay) + { + Frequency = frequency; + Status = status; + TimeOfDay = timeOfDay; + } + } +} diff --git a/sdk/dotnet/CloudTrail/Outputs/DashboardRefreshScheduleFrequencyProperties.cs b/sdk/dotnet/CloudTrail/Outputs/DashboardRefreshScheduleFrequencyProperties.cs new file mode 100644 index 0000000000..84640582d0 --- /dev/null +++ b/sdk/dotnet/CloudTrail/Outputs/DashboardRefreshScheduleFrequencyProperties.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.CloudTrail.Outputs +{ + + [OutputType] + public sealed class DashboardRefreshScheduleFrequencyProperties + { + /// + /// The frequency unit. Supported values are HOURS and DAYS. + /// + public readonly Pulumi.AwsNative.CloudTrail.DashboardRefreshScheduleFrequencyPropertiesUnit Unit; + /// + /// The frequency value. + /// + public readonly int Value; + + [OutputConstructor] + private DashboardRefreshScheduleFrequencyProperties( + Pulumi.AwsNative.CloudTrail.DashboardRefreshScheduleFrequencyPropertiesUnit unit, + + int value) + { + Unit = unit; + Value = value; + } + } +} diff --git a/sdk/dotnet/CloudTrail/Outputs/DashboardWidget.cs b/sdk/dotnet/CloudTrail/Outputs/DashboardWidget.cs new file mode 100644 index 0000000000..e03a1e2fe9 --- /dev/null +++ b/sdk/dotnet/CloudTrail/Outputs/DashboardWidget.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.CloudTrail.Outputs +{ + + /// + /// The dashboard widget + /// + [OutputType] + public sealed class DashboardWidget + { + /// + /// The placeholder keys in the QueryStatement. For example: $StartTime$, $EndTime$, $Period$. + /// + public readonly ImmutableArray QueryParameters; + /// + /// The SQL query statement on one or more event data stores. + /// + public readonly string QueryStatement; + /// + /// The view properties of the widget. + /// + public readonly ImmutableDictionary? ViewProperties; + + [OutputConstructor] + private DashboardWidget( + ImmutableArray queryParameters, + + string queryStatement, + + ImmutableDictionary? viewProperties) + { + QueryParameters = queryParameters; + QueryStatement = queryStatement; + ViewProperties = viewProperties; + } + } +} diff --git a/sdk/dotnet/CustomerProfiles/Inputs/SegmentDefinitionGroupArgs.cs b/sdk/dotnet/CustomerProfiles/Inputs/SegmentDefinitionGroupArgs.cs index 7cf36d97bd..bfb77053ba 100644 --- a/sdk/dotnet/CustomerProfiles/Inputs/SegmentDefinitionGroupArgs.cs +++ b/sdk/dotnet/CustomerProfiles/Inputs/SegmentDefinitionGroupArgs.cs @@ -17,6 +17,10 @@ public sealed class SegmentDefinitionGroupArgs : global::Pulumi.ResourceArgs { [Input("dimensions")] private InputList>? _dimensions; + + /// + /// Defines the attributes to segment on. + /// public InputList> Dimensions { get => _dimensions ?? (_dimensions = new InputList>()); @@ -25,15 +29,25 @@ public sealed class SegmentDefinitionGroupArgs : global::Pulumi.ResourceArgs [Input("sourceSegments")] private InputList? _sourceSegments; + + /// + /// Defines the starting source of data. + /// public InputList SourceSegments { get => _sourceSegments ?? (_sourceSegments = new InputList()); set => _sourceSegments = value; } + /// + /// Defines how to interact with the source data. + /// [Input("sourceType")] public Input? SourceType { get; set; } + /// + /// Defines how to interact with the profiles found in the current filtering. + /// [Input("type")] public Input? Type { get; set; } diff --git a/sdk/dotnet/CustomerProfiles/Inputs/SegmentDefinitionSegmentGroupArgs.cs b/sdk/dotnet/CustomerProfiles/Inputs/SegmentDefinitionSegmentGroupArgs.cs index 865a4035bd..6e1f70e1af 100644 --- a/sdk/dotnet/CustomerProfiles/Inputs/SegmentDefinitionSegmentGroupArgs.cs +++ b/sdk/dotnet/CustomerProfiles/Inputs/SegmentDefinitionSegmentGroupArgs.cs @@ -14,12 +14,19 @@ public sealed class SegmentDefinitionSegmentGroupArgs : global::Pulumi.ResourceA { [Input("groups")] private InputList? _groups; + + /// + /// Holds the list of groups within the segment definition. + /// public InputList Groups { get => _groups ?? (_groups = new InputList()); set => _groups = value; } + /// + /// Defines whether to include or exclude the profiles that fit the segment criteria. + /// [Input("include")] public Input? Include { get; set; } diff --git a/sdk/dotnet/CustomerProfiles/Inputs/SegmentDefinitionSourceSegmentArgs.cs b/sdk/dotnet/CustomerProfiles/Inputs/SegmentDefinitionSourceSegmentArgs.cs index 35e3a0e993..52994fdf69 100644 --- a/sdk/dotnet/CustomerProfiles/Inputs/SegmentDefinitionSourceSegmentArgs.cs +++ b/sdk/dotnet/CustomerProfiles/Inputs/SegmentDefinitionSourceSegmentArgs.cs @@ -15,6 +15,9 @@ namespace Pulumi.AwsNative.CustomerProfiles.Inputs /// public sealed class SegmentDefinitionSourceSegmentArgs : global::Pulumi.ResourceArgs { + /// + /// The name of the source segment. + /// [Input("segmentDefinitionName")] public Input? SegmentDefinitionName { get; set; } diff --git a/sdk/dotnet/CustomerProfiles/Outputs/SegmentDefinitionGroup.cs b/sdk/dotnet/CustomerProfiles/Outputs/SegmentDefinitionGroup.cs index 20d76b2886..91b63fea99 100644 --- a/sdk/dotnet/CustomerProfiles/Outputs/SegmentDefinitionGroup.cs +++ b/sdk/dotnet/CustomerProfiles/Outputs/SegmentDefinitionGroup.cs @@ -16,9 +16,21 @@ namespace Pulumi.AwsNative.CustomerProfiles.Outputs [OutputType] public sealed class SegmentDefinitionGroup { + /// + /// Defines the attributes to segment on. + /// public readonly ImmutableArray> Dimensions; + /// + /// Defines the starting source of data. + /// public readonly ImmutableArray SourceSegments; + /// + /// Defines how to interact with the source data. + /// public readonly Pulumi.AwsNative.CustomerProfiles.SegmentDefinitionIncludeOptions? SourceType; + /// + /// Defines how to interact with the profiles found in the current filtering. + /// public readonly Pulumi.AwsNative.CustomerProfiles.SegmentDefinitionIncludeOptions? Type; [OutputConstructor] diff --git a/sdk/dotnet/CustomerProfiles/Outputs/SegmentDefinitionSegmentGroup.cs b/sdk/dotnet/CustomerProfiles/Outputs/SegmentDefinitionSegmentGroup.cs index 324a4bae22..6f98dfc6ff 100644 --- a/sdk/dotnet/CustomerProfiles/Outputs/SegmentDefinitionSegmentGroup.cs +++ b/sdk/dotnet/CustomerProfiles/Outputs/SegmentDefinitionSegmentGroup.cs @@ -13,7 +13,13 @@ namespace Pulumi.AwsNative.CustomerProfiles.Outputs [OutputType] public sealed class SegmentDefinitionSegmentGroup { + /// + /// Holds the list of groups within the segment definition. + /// public readonly ImmutableArray Groups; + /// + /// Defines whether to include or exclude the profiles that fit the segment criteria. + /// public readonly Pulumi.AwsNative.CustomerProfiles.SegmentDefinitionIncludeOptions? Include; [OutputConstructor] diff --git a/sdk/dotnet/CustomerProfiles/Outputs/SegmentDefinitionSourceSegment.cs b/sdk/dotnet/CustomerProfiles/Outputs/SegmentDefinitionSourceSegment.cs index 9cad2a2ca9..ddb9d75396 100644 --- a/sdk/dotnet/CustomerProfiles/Outputs/SegmentDefinitionSourceSegment.cs +++ b/sdk/dotnet/CustomerProfiles/Outputs/SegmentDefinitionSourceSegment.cs @@ -16,6 +16,9 @@ namespace Pulumi.AwsNative.CustomerProfiles.Outputs [OutputType] public sealed class SegmentDefinitionSourceSegment { + /// + /// The name of the source segment. + /// public readonly string? SegmentDefinitionName; [OutputConstructor] diff --git a/sdk/dotnet/Ecs/Enums.cs b/sdk/dotnet/Ecs/Enums.cs index 8ffefcee33..01cfc6c062 100644 --- a/sdk/dotnet/Ecs/Enums.cs +++ b/sdk/dotnet/Ecs/Enums.cs @@ -168,6 +168,11 @@ private ClusterCapacityProviderAssociationsCapacityProvider0(string value) public override string ToString() => _value; } + /// + /// Indicates whether to use Availability Zone rebalancing for the service. + /// + /// For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* . + /// [EnumType] public readonly struct ServiceAvailabilityZoneRebalancing : IEquatable { diff --git a/sdk/dotnet/Ecs/GetService.cs b/sdk/dotnet/Ecs/GetService.cs index b0e6632a25..b8b271e841 100644 --- a/sdk/dotnet/Ecs/GetService.cs +++ b/sdk/dotnet/Ecs/GetService.cs @@ -73,6 +73,11 @@ public GetServiceInvokeArgs() [OutputType] public sealed class GetServiceResult { + /// + /// Indicates whether to use Availability Zone rebalancing for the service. + /// + /// For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* . + /// public readonly Pulumi.AwsNative.Ecs.ServiceAvailabilityZoneRebalancing? AvailabilityZoneRebalancing; /// /// The capacity provider strategy to use for the service. diff --git a/sdk/dotnet/Ecs/Inputs/TaskDefinitionHealthCheckArgs.cs b/sdk/dotnet/Ecs/Inputs/TaskDefinitionHealthCheckArgs.cs index a2f91d5480..42ebd2956e 100644 --- a/sdk/dotnet/Ecs/Inputs/TaskDefinitionHealthCheckArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/TaskDefinitionHealthCheckArgs.cs @@ -30,7 +30,7 @@ public sealed class TaskDefinitionHealthCheckArgs : global::Pulumi.ResourceArgs /// ``[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]`` /// You don't include the double quotes and brackets when you use the AWS Management Console. /// ``CMD-SHELL, curl -f http://localhost/ || exit 1`` - /// An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command + /// An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command. /// public InputList Command { diff --git a/sdk/dotnet/Ecs/Inputs/TaskDefinitionPortMappingArgs.cs b/sdk/dotnet/Ecs/Inputs/TaskDefinitionPortMappingArgs.cs index 8742fffeab..7909d04f0b 100644 --- a/sdk/dotnet/Ecs/Inputs/TaskDefinitionPortMappingArgs.cs +++ b/sdk/dotnet/Ecs/Inputs/TaskDefinitionPortMappingArgs.cs @@ -74,8 +74,7 @@ public sealed class TaskDefinitionPortMappingArgs : global::Pulumi.ResourceArgs public Input? HostPort { get; set; } /// - /// The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. - /// For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. + /// The name that's used for the port mapping. This parameter is the name that you use in the ``serviceConnectConfiguration`` and the ``vpcLatticeConfigurations`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. /// [Input("name")] public Input? Name { get; set; } diff --git a/sdk/dotnet/Ecs/Outputs/TaskDefinitionHealthCheck.cs b/sdk/dotnet/Ecs/Outputs/TaskDefinitionHealthCheck.cs index cc988af0f1..21f4691d32 100644 --- a/sdk/dotnet/Ecs/Outputs/TaskDefinitionHealthCheck.cs +++ b/sdk/dotnet/Ecs/Outputs/TaskDefinitionHealthCheck.cs @@ -28,7 +28,7 @@ public sealed class TaskDefinitionHealthCheck /// ``[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]`` /// You don't include the double quotes and brackets when you use the AWS Management Console. /// ``CMD-SHELL, curl -f http://localhost/ || exit 1`` - /// An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command + /// An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command. /// public readonly ImmutableArray Command; /// diff --git a/sdk/dotnet/Ecs/Outputs/TaskDefinitionPortMapping.cs b/sdk/dotnet/Ecs/Outputs/TaskDefinitionPortMapping.cs index 981b890ea4..adeee9c568 100644 --- a/sdk/dotnet/Ecs/Outputs/TaskDefinitionPortMapping.cs +++ b/sdk/dotnet/Ecs/Outputs/TaskDefinitionPortMapping.cs @@ -67,8 +67,7 @@ public sealed class TaskDefinitionPortMapping /// public readonly int? HostPort; /// - /// The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. - /// For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. + /// The name that's used for the port mapping. This parameter is the name that you use in the ``serviceConnectConfiguration`` and the ``vpcLatticeConfigurations`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. /// public readonly string? Name; /// diff --git a/sdk/dotnet/Ecs/Service.cs b/sdk/dotnet/Ecs/Service.cs index 6a8347cf96..7592d643e9 100644 --- a/sdk/dotnet/Ecs/Service.cs +++ b/sdk/dotnet/Ecs/Service.cs @@ -17,6 +17,11 @@ namespace Pulumi.AwsNative.Ecs [AwsNativeResourceType("aws-native:ecs:Service")] public partial class Service : global::Pulumi.CustomResource { + /// + /// Indicates whether to use Availability Zone rebalancing for the service. + /// + /// For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* . + /// [Output("availabilityZoneRebalancing")] public Output AvailabilityZoneRebalancing { get; private set; } = null!; @@ -258,6 +263,11 @@ public static Service Get(string name, Input id, CustomResourceOptions? public sealed class ServiceArgs : global::Pulumi.ResourceArgs { + /// + /// Indicates whether to use Availability Zone rebalancing for the service. + /// + /// For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* . + /// [Input("availabilityZoneRebalancing")] public Input? AvailabilityZoneRebalancing { get; set; } diff --git a/sdk/dotnet/ElasticLoadBalancingV2/GetListener.cs b/sdk/dotnet/ElasticLoadBalancingV2/GetListener.cs index 833afe3474..ec2394c870 100644 --- a/sdk/dotnet/ElasticLoadBalancingV2/GetListener.cs +++ b/sdk/dotnet/ElasticLoadBalancingV2/GetListener.cs @@ -84,11 +84,11 @@ public sealed class GetListenerResult /// public readonly Outputs.ListenerMutualAuthentication? MutualAuthentication; /// - /// The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer. + /// The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer. /// public readonly int? Port; /// - /// The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer. + /// The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer. /// public readonly string? Protocol; /// diff --git a/sdk/dotnet/ElasticLoadBalancingV2/GetLoadBalancer.cs b/sdk/dotnet/ElasticLoadBalancingV2/GetLoadBalancer.cs index 9d91574086..1fcbf18ef2 100644 --- a/sdk/dotnet/ElasticLoadBalancingV2/GetLoadBalancer.cs +++ b/sdk/dotnet/ElasticLoadBalancingV2/GetLoadBalancer.cs @@ -66,7 +66,7 @@ public sealed class GetLoadBalancerResult /// public readonly string? DnsName; /// - /// [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + /// [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``. /// public readonly string? EnablePrefixForIpv6SourceNat; /// @@ -74,11 +74,10 @@ public sealed class GetLoadBalancerResult /// public readonly string? EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic; /// - /// Note: Internal load balancers must use the ``ipv4`` IP address type. - /// [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses). - /// Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors. - /// [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener. - /// [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). + /// The IP address type. Internal load balancers must use ``ipv4``. + /// [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). + /// Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. + /// [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses). /// public readonly string? IpAddressType; /// @@ -97,17 +96,18 @@ public sealed class GetLoadBalancerResult /// The name of the load balancer. For example, `my-load-balancer` . /// public readonly string? LoadBalancerName; + public readonly Outputs.LoadBalancerMinimumLoadBalancerCapacity? MinimumLoadBalancerCapacity; /// /// [Application Load Balancers and Network Load Balancers] The IDs of the security groups for the load balancer. /// public readonly ImmutableArray SecurityGroups; /// /// The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. - /// [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets. + /// [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets. /// [Application Load Balancers on Outposts] You must specify one Outpost subnet. /// [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. /// [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet. - /// [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets. + /// [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets. /// public readonly ImmutableArray SubnetMappings; /// @@ -115,8 +115,7 @@ public sealed class GetLoadBalancerResult /// [Application Load Balancers] You must specify subnets from at least two Availability Zones. /// [Application Load Balancers on Outposts] You must specify one Outpost subnet. /// [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. - /// [Network Load Balancers] You can specify subnets from one or more Availability Zones. - /// [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. + /// [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones. /// public readonly ImmutableArray Subnets; /// @@ -144,6 +143,8 @@ private GetLoadBalancerResult( string? loadBalancerName, + Outputs.LoadBalancerMinimumLoadBalancerCapacity? minimumLoadBalancerCapacity, + ImmutableArray securityGroups, ImmutableArray subnetMappings, @@ -161,6 +162,7 @@ private GetLoadBalancerResult( LoadBalancerAttributes = loadBalancerAttributes; LoadBalancerFullName = loadBalancerFullName; LoadBalancerName = loadBalancerName; + MinimumLoadBalancerCapacity = minimumLoadBalancerCapacity; SecurityGroups = securityGroups; SubnetMappings = subnetMappings; Subnets = subnets; diff --git a/sdk/dotnet/ElasticLoadBalancingV2/Inputs/ListenerRedirectConfigArgs.cs b/sdk/dotnet/ElasticLoadBalancingV2/Inputs/ListenerRedirectConfigArgs.cs index daf104729b..5ce7a005f7 100644 --- a/sdk/dotnet/ElasticLoadBalancingV2/Inputs/ListenerRedirectConfigArgs.cs +++ b/sdk/dotnet/ElasticLoadBalancingV2/Inputs/ListenerRedirectConfigArgs.cs @@ -43,7 +43,7 @@ public sealed class ListenerRedirectConfigArgs : global::Pulumi.ResourceArgs public Input? Port { get; set; } /// - /// The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. + /// The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. /// [Input("protocol")] public Input? Protocol { get; set; } diff --git a/sdk/dotnet/ElasticLoadBalancingV2/Inputs/ListenerRuleRedirectConfigArgs.cs b/sdk/dotnet/ElasticLoadBalancingV2/Inputs/ListenerRuleRedirectConfigArgs.cs index fdb7beb4ef..489b13b940 100644 --- a/sdk/dotnet/ElasticLoadBalancingV2/Inputs/ListenerRuleRedirectConfigArgs.cs +++ b/sdk/dotnet/ElasticLoadBalancingV2/Inputs/ListenerRuleRedirectConfigArgs.cs @@ -43,7 +43,7 @@ public sealed class ListenerRuleRedirectConfigArgs : global::Pulumi.ResourceArgs public Input? Port { get; set; } /// - /// The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. + /// The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. /// [Input("protocol")] public Input? Protocol { get; set; } diff --git a/sdk/dotnet/ElasticLoadBalancingV2/Inputs/LoadBalancerAttributeArgs.cs b/sdk/dotnet/ElasticLoadBalancingV2/Inputs/LoadBalancerAttributeArgs.cs index eac479ead0..b4c2da7aaf 100644 --- a/sdk/dotnet/ElasticLoadBalancingV2/Inputs/LoadBalancerAttributeArgs.cs +++ b/sdk/dotnet/ElasticLoadBalancingV2/Inputs/LoadBalancerAttributeArgs.cs @@ -19,7 +19,7 @@ public sealed class LoadBalancerAttributeArgs : global::Pulumi.ResourceArgs /// The name of the attribute. /// The following attributes are supported by all load balancers: /// + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``. - /// + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and cannot be changed. + /// + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and can't be changed. /// /// The following attributes are supported by both Application Load Balancers and Network Load Balancers: /// + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``. diff --git a/sdk/dotnet/ElasticLoadBalancingV2/Inputs/LoadBalancerMinimumLoadBalancerCapacityArgs.cs b/sdk/dotnet/ElasticLoadBalancingV2/Inputs/LoadBalancerMinimumLoadBalancerCapacityArgs.cs new file mode 100644 index 0000000000..c4cc0f8ea2 --- /dev/null +++ b/sdk/dotnet/ElasticLoadBalancingV2/Inputs/LoadBalancerMinimumLoadBalancerCapacityArgs.cs @@ -0,0 +1,23 @@ +// *** 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.ElasticLoadBalancingV2.Inputs +{ + + public sealed class LoadBalancerMinimumLoadBalancerCapacityArgs : global::Pulumi.ResourceArgs + { + [Input("capacityUnits", required: true)] + public Input CapacityUnits { get; set; } = null!; + + public LoadBalancerMinimumLoadBalancerCapacityArgs() + { + } + public static new LoadBalancerMinimumLoadBalancerCapacityArgs Empty => new LoadBalancerMinimumLoadBalancerCapacityArgs(); + } +} diff --git a/sdk/dotnet/ElasticLoadBalancingV2/Inputs/LoadBalancerSubnetMappingArgs.cs b/sdk/dotnet/ElasticLoadBalancingV2/Inputs/LoadBalancerSubnetMappingArgs.cs index 63b1747d52..dac87e91d5 100644 --- a/sdk/dotnet/ElasticLoadBalancingV2/Inputs/LoadBalancerSubnetMappingArgs.cs +++ b/sdk/dotnet/ElasticLoadBalancingV2/Inputs/LoadBalancerSubnetMappingArgs.cs @@ -34,7 +34,7 @@ public sealed class LoadBalancerSubnetMappingArgs : global::Pulumi.ResourceArgs public Input? PrivateIPv4Address { get; set; } /// - /// [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. + /// [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or ``auto_assigned`` to use an IPv6 prefix selected at random from the subnet CIDR block. /// [Input("sourceNatIpv6Prefix")] public Input? SourceNatIpv6Prefix { get; set; } diff --git a/sdk/dotnet/ElasticLoadBalancingV2/Listener.cs b/sdk/dotnet/ElasticLoadBalancingV2/Listener.cs index f886c3f573..7c6e328b23 100644 --- a/sdk/dotnet/ElasticLoadBalancingV2/Listener.cs +++ b/sdk/dotnet/ElasticLoadBalancingV2/Listener.cs @@ -60,13 +60,13 @@ public partial class Listener : global::Pulumi.CustomResource public Output MutualAuthentication { get; private set; } = null!; /// - /// The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer. + /// The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer. /// [Output("port")] public Output Port { get; private set; } = null!; /// - /// The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer. + /// The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer. /// [Output("protocol")] public Output Protocol { get; private set; } = null!; @@ -191,13 +191,13 @@ public InputList ListenerAttributes public Input? MutualAuthentication { get; set; } /// - /// The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer. + /// The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer. /// [Input("port")] public Input? Port { get; set; } /// - /// The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer. + /// The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer. /// [Input("protocol")] public Input? Protocol { get; set; } diff --git a/sdk/dotnet/ElasticLoadBalancingV2/LoadBalancer.cs b/sdk/dotnet/ElasticLoadBalancingV2/LoadBalancer.cs index c12981247c..f5722c4c47 100644 --- a/sdk/dotnet/ElasticLoadBalancingV2/LoadBalancer.cs +++ b/sdk/dotnet/ElasticLoadBalancingV2/LoadBalancer.cs @@ -28,7 +28,7 @@ public partial class LoadBalancer : global::Pulumi.CustomResource public Output DnsName { get; private set; } = null!; /// - /// [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + /// [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``. /// [Output("enablePrefixForIpv6SourceNat")] public Output EnablePrefixForIpv6SourceNat { get; private set; } = null!; @@ -40,11 +40,10 @@ public partial class LoadBalancer : global::Pulumi.CustomResource public Output EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic { get; private set; } = null!; /// - /// Note: Internal load balancers must use the ``ipv4`` IP address type. - /// [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses). - /// Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors. - /// [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener. - /// [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). + /// The IP address type. Internal load balancers must use ``ipv4``. + /// [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). + /// Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. + /// [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses). /// [Output("ipAddressType")] public Output IpAddressType { get; private set; } = null!; @@ -73,6 +72,9 @@ public partial class LoadBalancer : global::Pulumi.CustomResource [Output("loadBalancerName")] public Output LoadBalancerName { get; private set; } = null!; + [Output("minimumLoadBalancerCapacity")] + public Output MinimumLoadBalancerCapacity { get; private set; } = null!; + /// /// The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with "internal-". /// If you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates. To replace the resource, specify a new name. @@ -84,7 +86,7 @@ public partial class LoadBalancer : global::Pulumi.CustomResource /// The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet. /// The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer. /// The default is an Internet-facing load balancer. - /// You cannot specify a scheme for a Gateway Load Balancer. + /// You can't specify a scheme for a Gateway Load Balancer. /// [Output("scheme")] public Output Scheme { get; private set; } = null!; @@ -97,11 +99,11 @@ public partial class LoadBalancer : global::Pulumi.CustomResource /// /// The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. - /// [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets. + /// [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets. /// [Application Load Balancers on Outposts] You must specify one Outpost subnet. /// [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. /// [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet. - /// [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets. + /// [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets. /// [Output("subnetMappings")] public Output> SubnetMappings { get; private set; } = null!; @@ -111,8 +113,7 @@ public partial class LoadBalancer : global::Pulumi.CustomResource /// [Application Load Balancers] You must specify subnets from at least two Availability Zones. /// [Application Load Balancers on Outposts] You must specify one Outpost subnet. /// [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. - /// [Network Load Balancers] You can specify subnets from one or more Availability Zones. - /// [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. + /// [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones. /// [Output("subnets")] public Output> Subnets { get; private set; } = null!; @@ -181,7 +182,7 @@ public static LoadBalancer Get(string name, Input id, CustomResourceOpti public sealed class LoadBalancerArgs : global::Pulumi.ResourceArgs { /// - /// [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + /// [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``. /// [Input("enablePrefixForIpv6SourceNat")] public Input? EnablePrefixForIpv6SourceNat { get; set; } @@ -193,11 +194,10 @@ public sealed class LoadBalancerArgs : global::Pulumi.ResourceArgs public Input? EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic { get; set; } /// - /// Note: Internal load balancers must use the ``ipv4`` IP address type. - /// [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses). - /// Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors. - /// [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener. - /// [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). + /// The IP address type. Internal load balancers must use ``ipv4``. + /// [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). + /// Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. + /// [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses). /// [Input("ipAddressType")] public Input? IpAddressType { get; set; } @@ -214,6 +214,9 @@ public InputList LoadBalancerAttributes set => _loadBalancerAttributes = value; } + [Input("minimumLoadBalancerCapacity")] + public Input? MinimumLoadBalancerCapacity { get; set; } + /// /// The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with "internal-". /// If you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates. To replace the resource, specify a new name. @@ -225,7 +228,7 @@ public InputList LoadBalancerAttributes /// The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet. /// The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer. /// The default is an Internet-facing load balancer. - /// You cannot specify a scheme for a Gateway Load Balancer. + /// You can't specify a scheme for a Gateway Load Balancer. /// [Input("scheme")] public Input? Scheme { get; set; } @@ -247,11 +250,11 @@ public InputList SecurityGroups /// /// The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. - /// [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets. + /// [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets. /// [Application Load Balancers on Outposts] You must specify one Outpost subnet. /// [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. /// [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet. - /// [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets. + /// [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets. /// public InputList SubnetMappings { @@ -267,8 +270,7 @@ public InputList SubnetMappings /// [Application Load Balancers] You must specify subnets from at least two Availability Zones. /// [Application Load Balancers on Outposts] You must specify one Outpost subnet. /// [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. - /// [Network Load Balancers] You can specify subnets from one or more Availability Zones. - /// [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. + /// [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones. /// public InputList Subnets { diff --git a/sdk/dotnet/ElasticLoadBalancingV2/Outputs/ListenerRedirectConfig.cs b/sdk/dotnet/ElasticLoadBalancingV2/Outputs/ListenerRedirectConfig.cs index 485d8ec024..7942305d10 100644 --- a/sdk/dotnet/ElasticLoadBalancingV2/Outputs/ListenerRedirectConfig.cs +++ b/sdk/dotnet/ElasticLoadBalancingV2/Outputs/ListenerRedirectConfig.cs @@ -38,7 +38,7 @@ public sealed class ListenerRedirectConfig /// public readonly string? Port; /// - /// The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. + /// The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. /// public readonly string? Protocol; /// diff --git a/sdk/dotnet/ElasticLoadBalancingV2/Outputs/ListenerRuleRedirectConfig.cs b/sdk/dotnet/ElasticLoadBalancingV2/Outputs/ListenerRuleRedirectConfig.cs index f6baab1ef2..c94211f85c 100644 --- a/sdk/dotnet/ElasticLoadBalancingV2/Outputs/ListenerRuleRedirectConfig.cs +++ b/sdk/dotnet/ElasticLoadBalancingV2/Outputs/ListenerRuleRedirectConfig.cs @@ -38,7 +38,7 @@ public sealed class ListenerRuleRedirectConfig /// public readonly string? Port; /// - /// The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. + /// The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. /// public readonly string? Protocol; /// diff --git a/sdk/dotnet/ElasticLoadBalancingV2/Outputs/LoadBalancerAttribute.cs b/sdk/dotnet/ElasticLoadBalancingV2/Outputs/LoadBalancerAttribute.cs index 0a284cec52..1f413f84d0 100644 --- a/sdk/dotnet/ElasticLoadBalancingV2/Outputs/LoadBalancerAttribute.cs +++ b/sdk/dotnet/ElasticLoadBalancingV2/Outputs/LoadBalancerAttribute.cs @@ -20,7 +20,7 @@ public sealed class LoadBalancerAttribute /// The name of the attribute. /// The following attributes are supported by all load balancers: /// + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``. - /// + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and cannot be changed. + /// + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and can't be changed. /// /// The following attributes are supported by both Application Load Balancers and Network Load Balancers: /// + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``. diff --git a/sdk/dotnet/ElasticLoadBalancingV2/Outputs/LoadBalancerMinimumLoadBalancerCapacity.cs b/sdk/dotnet/ElasticLoadBalancingV2/Outputs/LoadBalancerMinimumLoadBalancerCapacity.cs new file mode 100644 index 0000000000..9248a7a5fb --- /dev/null +++ b/sdk/dotnet/ElasticLoadBalancingV2/Outputs/LoadBalancerMinimumLoadBalancerCapacity.cs @@ -0,0 +1,24 @@ +// *** 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.ElasticLoadBalancingV2.Outputs +{ + + [OutputType] + public sealed class LoadBalancerMinimumLoadBalancerCapacity + { + public readonly int CapacityUnits; + + [OutputConstructor] + private LoadBalancerMinimumLoadBalancerCapacity(int capacityUnits) + { + CapacityUnits = capacityUnits; + } + } +} diff --git a/sdk/dotnet/ElasticLoadBalancingV2/Outputs/LoadBalancerSubnetMapping.cs b/sdk/dotnet/ElasticLoadBalancingV2/Outputs/LoadBalancerSubnetMapping.cs index 10f99be4e9..6feebb6085 100644 --- a/sdk/dotnet/ElasticLoadBalancingV2/Outputs/LoadBalancerSubnetMapping.cs +++ b/sdk/dotnet/ElasticLoadBalancingV2/Outputs/LoadBalancerSubnetMapping.cs @@ -29,7 +29,7 @@ public sealed class LoadBalancerSubnetMapping /// public readonly string? PrivateIPv4Address; /// - /// [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. + /// [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or ``auto_assigned`` to use an IPv6 prefix selected at random from the subnet CIDR block. /// public readonly string? SourceNatIpv6Prefix; /// diff --git a/sdk/dotnet/Lambda/EventInvokeConfig.cs b/sdk/dotnet/Lambda/EventInvokeConfig.cs index 9939038287..be0c13c2f8 100644 --- a/sdk/dotnet/Lambda/EventInvokeConfig.cs +++ b/sdk/dotnet/Lambda/EventInvokeConfig.cs @@ -20,8 +20,11 @@ public partial class EventInvokeConfig : global::Pulumi.CustomResource /// /// **Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function. /// - *Queue* - The ARN of a standard SQS queue. + /// - *Bucket* - The ARN of an Amazon S3 bucket. /// - *Topic* - The ARN of a standard SNS topic. /// - *Event Bus* - The ARN of an Amazon EventBridge event bus. + /// + /// > S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. /// [Output("destinationConfig")] public Output DestinationConfig { get; private set; } = null!; @@ -105,8 +108,11 @@ public sealed class EventInvokeConfigArgs : global::Pulumi.ResourceArgs /// /// **Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function. /// - *Queue* - The ARN of a standard SQS queue. + /// - *Bucket* - The ARN of an Amazon S3 bucket. /// - *Topic* - The ARN of a standard SNS topic. /// - *Event Bus* - The ARN of an Amazon EventBridge event bus. + /// + /// > S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. /// [Input("destinationConfig")] public Input? DestinationConfig { get; set; } diff --git a/sdk/dotnet/Lambda/GetEventInvokeConfig.cs b/sdk/dotnet/Lambda/GetEventInvokeConfig.cs index 3de32be36c..02c6534a88 100644 --- a/sdk/dotnet/Lambda/GetEventInvokeConfig.cs +++ b/sdk/dotnet/Lambda/GetEventInvokeConfig.cs @@ -74,8 +74,11 @@ public sealed class GetEventInvokeConfigResult /// /// **Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function. /// - *Queue* - The ARN of a standard SQS queue. + /// - *Bucket* - The ARN of an Amazon S3 bucket. /// - *Topic* - The ARN of a standard SNS topic. /// - *Event Bus* - The ARN of an Amazon EventBridge event bus. + /// + /// > S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. /// public readonly Outputs.EventInvokeConfigDestinationConfig? DestinationConfig; /// diff --git a/sdk/dotnet/Rds/GetGlobalCluster.cs b/sdk/dotnet/Rds/GetGlobalCluster.cs index ccfa403f43..de086550a7 100644 --- a/sdk/dotnet/Rds/GetGlobalCluster.cs +++ b/sdk/dotnet/Rds/GetGlobalCluster.cs @@ -69,6 +69,9 @@ public sealed class GetGlobalClusterResult /// The version number of the database engine to use. If you specify the SourceDBClusterIdentifier property, don't specify this property. The value is inherited from the cluster. /// public readonly string? EngineVersion; + /// + /// The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster. + /// public readonly Outputs.GlobalClusterGlobalEndpoint? GlobalEndpoint; /// /// An array of key-value pairs to apply to this resource. diff --git a/sdk/dotnet/Rds/GlobalCluster.cs b/sdk/dotnet/Rds/GlobalCluster.cs index 5b6e0de314..93eeaec66d 100644 --- a/sdk/dotnet/Rds/GlobalCluster.cs +++ b/sdk/dotnet/Rds/GlobalCluster.cs @@ -46,6 +46,9 @@ public partial class GlobalCluster : global::Pulumi.CustomResource [Output("globalClusterIdentifier")] public Output GlobalClusterIdentifier { get; private set; } = null!; + /// + /// The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster. + /// [Output("globalEndpoint")] public Output GlobalEndpoint { get; private set; } = null!; @@ -151,6 +154,9 @@ public sealed class GlobalClusterArgs : global::Pulumi.ResourceArgs [Input("globalClusterIdentifier")] public Input? GlobalClusterIdentifier { get; set; } + /// + /// The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster. + /// [Input("globalEndpoint")] public Input? GlobalEndpoint { get; set; } diff --git a/sdk/dotnet/ResourceGroups/Enums.cs b/sdk/dotnet/ResourceGroups/Enums.cs index 5c1508f6f3..3f042f5400 100644 --- a/sdk/dotnet/ResourceGroups/Enums.cs +++ b/sdk/dotnet/ResourceGroups/Enums.cs @@ -40,4 +40,35 @@ private GroupResourceQueryType(string value) public override string ToString() => _value; } + + /// + /// The status of the TagSyncTask + /// + [EnumType] + public readonly struct TagSyncTaskStatus : IEquatable + { + private readonly string _value; + + private TagSyncTaskStatus(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static TagSyncTaskStatus Active { get; } = new TagSyncTaskStatus("ACTIVE"); + public static TagSyncTaskStatus Error { get; } = new TagSyncTaskStatus("ERROR"); + + public static bool operator ==(TagSyncTaskStatus left, TagSyncTaskStatus right) => left.Equals(right); + public static bool operator !=(TagSyncTaskStatus left, TagSyncTaskStatus right) => !left.Equals(right); + + public static explicit operator string(TagSyncTaskStatus value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is TagSyncTaskStatus other && Equals(other); + public bool Equals(TagSyncTaskStatus 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/ResourceGroups/GetTagSyncTask.cs b/sdk/dotnet/ResourceGroups/GetTagSyncTask.cs new file mode 100644 index 0000000000..b880239e79 --- /dev/null +++ b/sdk/dotnet/ResourceGroups/GetTagSyncTask.cs @@ -0,0 +1,93 @@ +// *** 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.ResourceGroups +{ + public static class GetTagSyncTask + { + /// + /// Schema for ResourceGroups::TagSyncTask + /// + public static Task InvokeAsync(GetTagSyncTaskArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:resourcegroups:getTagSyncTask", args ?? new GetTagSyncTaskArgs(), options.WithDefaults()); + + /// + /// Schema for ResourceGroups::TagSyncTask + /// + public static Output Invoke(GetTagSyncTaskInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:resourcegroups:getTagSyncTask", args ?? new GetTagSyncTaskInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetTagSyncTaskArgs : global::Pulumi.InvokeArgs + { + /// + /// The ARN of the TagSyncTask resource + /// + [Input("taskArn", required: true)] + public string TaskArn { get; set; } = null!; + + public GetTagSyncTaskArgs() + { + } + public static new GetTagSyncTaskArgs Empty => new GetTagSyncTaskArgs(); + } + + public sealed class GetTagSyncTaskInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The ARN of the TagSyncTask resource + /// + [Input("taskArn", required: true)] + public Input TaskArn { get; set; } = null!; + + public GetTagSyncTaskInvokeArgs() + { + } + public static new GetTagSyncTaskInvokeArgs Empty => new GetTagSyncTaskInvokeArgs(); + } + + + [OutputType] + public sealed class GetTagSyncTaskResult + { + /// + /// The Amazon resource name (ARN) of the ApplicationGroup for which the TagSyncTask is created + /// + public readonly string? GroupArn; + /// + /// The Name of the application group for which the TagSyncTask is created + /// + public readonly string? GroupName; + /// + /// The status of the TagSyncTask + /// + public readonly Pulumi.AwsNative.ResourceGroups.TagSyncTaskStatus? Status; + /// + /// The ARN of the TagSyncTask resource + /// + public readonly string? TaskArn; + + [OutputConstructor] + private GetTagSyncTaskResult( + string? groupArn, + + string? groupName, + + Pulumi.AwsNative.ResourceGroups.TagSyncTaskStatus? status, + + string? taskArn) + { + GroupArn = groupArn; + GroupName = groupName; + Status = status; + TaskArn = taskArn; + } + } +} diff --git a/sdk/dotnet/ResourceGroups/TagSyncTask.cs b/sdk/dotnet/ResourceGroups/TagSyncTask.cs new file mode 100644 index 0000000000..a00337d1d7 --- /dev/null +++ b/sdk/dotnet/ResourceGroups/TagSyncTask.cs @@ -0,0 +1,147 @@ +// *** 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.ResourceGroups +{ + /// + /// Schema for ResourceGroups::TagSyncTask + /// + [AwsNativeResourceType("aws-native:resourcegroups:TagSyncTask")] + public partial class TagSyncTask : global::Pulumi.CustomResource + { + /// + /// The Amazon resource name (ARN) or name of the application group for which you want to create a tag-sync task + /// + [Output("group")] + public Output Group { get; private set; } = null!; + + /// + /// The Amazon resource name (ARN) of the ApplicationGroup for which the TagSyncTask is created + /// + [Output("groupArn")] + public Output GroupArn { get; private set; } = null!; + + /// + /// The Name of the application group for which the TagSyncTask is created + /// + [Output("groupName")] + public Output GroupName { get; private set; } = null!; + + /// + /// The Amazon resource name (ARN) of the role assumed by the service to tag and untag resources on your behalf. + /// + [Output("roleArn")] + public Output RoleArn { get; private set; } = null!; + + /// + /// The status of the TagSyncTask + /// + [Output("status")] + public Output Status { get; private set; } = null!; + + /// + /// The tag key. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. + /// + [Output("tagKey")] + public Output TagKey { get; private set; } = null!; + + /// + /// The tag value. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. + /// + [Output("tagValue")] + public Output TagValue { get; private set; } = null!; + + /// + /// The ARN of the TagSyncTask resource + /// + [Output("taskArn")] + public Output TaskArn { get; private set; } = null!; + + + /// + /// Create a TagSyncTask 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 TagSyncTask(string name, TagSyncTaskArgs args, CustomResourceOptions? options = null) + : base("aws-native:resourcegroups:TagSyncTask", name, args ?? new TagSyncTaskArgs(), MakeResourceOptions(options, "")) + { + } + + private TagSyncTask(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:resourcegroups:TagSyncTask", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "group", + "roleArn", + "tagKey", + "tagValue", + }, + }; + 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 TagSyncTask 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 TagSyncTask Get(string name, Input id, CustomResourceOptions? options = null) + { + return new TagSyncTask(name, id, options); + } + } + + public sealed class TagSyncTaskArgs : global::Pulumi.ResourceArgs + { + /// + /// The Amazon resource name (ARN) or name of the application group for which you want to create a tag-sync task + /// + [Input("group", required: true)] + public Input Group { get; set; } = null!; + + /// + /// The Amazon resource name (ARN) of the role assumed by the service to tag and untag resources on your behalf. + /// + [Input("roleArn", required: true)] + public Input RoleArn { get; set; } = null!; + + /// + /// The tag key. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. + /// + [Input("tagKey", required: true)] + public Input TagKey { get; set; } = null!; + + /// + /// The tag value. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. + /// + [Input("tagValue", required: true)] + public Input TagValue { get; set; } = null!; + + public TagSyncTaskArgs() + { + } + public static new TagSyncTaskArgs Empty => new TagSyncTaskArgs(); + } +} diff --git a/sdk/dotnet/S3Express/Enums.cs b/sdk/dotnet/S3Express/Enums.cs index ac11416487..37ec5b0b90 100644 --- a/sdk/dotnet/S3Express/Enums.cs +++ b/sdk/dotnet/S3Express/Enums.cs @@ -37,6 +37,9 @@ private DirectoryBucketDataRedundancy(string value) public override string ToString() => _value; } + /// + /// If `Enabled` , the rule is currently being applied. If `Disabled` , the rule is not currently being applied. + /// [EnumType] public readonly struct DirectoryBucketRuleStatus : IEquatable { diff --git a/sdk/dotnet/S3Express/Inputs/DirectoryBucketRuleArgs.cs b/sdk/dotnet/S3Express/Inputs/DirectoryBucketRuleArgs.cs index ca5868cbcb..531d13b2f7 100644 --- a/sdk/dotnet/S3Express/Inputs/DirectoryBucketRuleArgs.cs +++ b/sdk/dotnet/S3Express/Inputs/DirectoryBucketRuleArgs.cs @@ -21,6 +21,9 @@ public sealed class DirectoryBucketRuleArgs : global::Pulumi.ResourceArgs [Input("expirationInDays")] public Input? ExpirationInDays { get; set; } + /// + /// Unique identifier for the rule. The value can't be longer than 255 characters. + /// [Input("id")] public Input? Id { get; set; } @@ -30,9 +33,17 @@ public sealed class DirectoryBucketRuleArgs : global::Pulumi.ResourceArgs [Input("objectSizeLessThan")] public Input? ObjectSizeLessThan { get; set; } + /// + /// Object key prefix that identifies one or more objects to which this rule applies. + /// + /// > Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) . + /// [Input("prefix")] public Input? Prefix { get; set; } + /// + /// If `Enabled` , the rule is currently being applied. If `Disabled` , the rule is not currently being applied. + /// [Input("status", required: true)] public Input Status { get; set; } = null!; diff --git a/sdk/dotnet/S3Express/Outputs/DirectoryBucketRule.cs b/sdk/dotnet/S3Express/Outputs/DirectoryBucketRule.cs index a32eeb842a..92d2fe1e5a 100644 --- a/sdk/dotnet/S3Express/Outputs/DirectoryBucketRule.cs +++ b/sdk/dotnet/S3Express/Outputs/DirectoryBucketRule.cs @@ -18,10 +18,21 @@ public sealed class DirectoryBucketRule { public readonly Outputs.DirectoryBucketAbortIncompleteMultipartUpload? AbortIncompleteMultipartUpload; public readonly int? ExpirationInDays; + /// + /// Unique identifier for the rule. The value can't be longer than 255 characters. + /// public readonly string? Id; public readonly string? ObjectSizeGreaterThan; public readonly string? ObjectSizeLessThan; + /// + /// Object key prefix that identifies one or more objects to which this rule applies. + /// + /// > Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) . + /// public readonly string? Prefix; + /// + /// If `Enabled` , the rule is currently being applied. If `Disabled` , the rule is not currently being applied. + /// public readonly Pulumi.AwsNative.S3Express.DirectoryBucketRuleStatus Status; [OutputConstructor] diff --git a/sdk/dotnet/Wisdom/Enums.cs b/sdk/dotnet/Wisdom/Enums.cs index 9de82af007..106bcc0d64 100644 --- a/sdk/dotnet/Wisdom/Enums.cs +++ b/sdk/dotnet/Wisdom/Enums.cs @@ -256,4 +256,35 @@ private KnowledgeBaseType(string value) public override string ToString() => _value; } + + /// + /// The channel subtype this message template applies to. + /// + [EnumType] + public readonly struct MessageTemplateChannelSubtype : IEquatable + { + private readonly string _value; + + private MessageTemplateChannelSubtype(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static MessageTemplateChannelSubtype Email { get; } = new MessageTemplateChannelSubtype("EMAIL"); + public static MessageTemplateChannelSubtype Sms { get; } = new MessageTemplateChannelSubtype("SMS"); + + public static bool operator ==(MessageTemplateChannelSubtype left, MessageTemplateChannelSubtype right) => left.Equals(right); + public static bool operator !=(MessageTemplateChannelSubtype left, MessageTemplateChannelSubtype right) => !left.Equals(right); + + public static explicit operator string(MessageTemplateChannelSubtype value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is MessageTemplateChannelSubtype other && Equals(other); + public bool Equals(MessageTemplateChannelSubtype 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/Wisdom/GetMessageTemplate.cs b/sdk/dotnet/Wisdom/GetMessageTemplate.cs new file mode 100644 index 0000000000..866d479bbf --- /dev/null +++ b/sdk/dotnet/Wisdom/GetMessageTemplate.cs @@ -0,0 +1,126 @@ +// *** 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 GetMessageTemplate + { + /// + /// Definition of AWS::Wisdom::MessageTemplate Resource Type + /// + public static Task InvokeAsync(GetMessageTemplateArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:wisdom:getMessageTemplate", args ?? new GetMessageTemplateArgs(), options.WithDefaults()); + + /// + /// Definition of AWS::Wisdom::MessageTemplate Resource Type + /// + public static Output Invoke(GetMessageTemplateInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:wisdom:getMessageTemplate", args ?? new GetMessageTemplateInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetMessageTemplateArgs : global::Pulumi.InvokeArgs + { + /// + /// The Amazon Resource Name (ARN) of the message template. + /// + [Input("messageTemplateArn", required: true)] + public string MessageTemplateArn { get; set; } = null!; + + public GetMessageTemplateArgs() + { + } + public static new GetMessageTemplateArgs Empty => new GetMessageTemplateArgs(); + } + + public sealed class GetMessageTemplateInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The Amazon Resource Name (ARN) of the message template. + /// + [Input("messageTemplateArn", required: true)] + public Input MessageTemplateArn { get; set; } = null!; + + public GetMessageTemplateInvokeArgs() + { + } + public static new GetMessageTemplateInvokeArgs Empty => new GetMessageTemplateInvokeArgs(); + } + + + [OutputType] + public sealed class GetMessageTemplateResult + { + public readonly Outputs.MessageTemplateContent? Content; + public readonly Outputs.MessageTemplateAttributes? DefaultAttributes; + /// + /// The description of the message template. + /// + public readonly string? Description; + public readonly Outputs.MessageTemplateGroupingConfiguration? GroupingConfiguration; + /// + /// The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW + /// + public readonly string? Language; + /// + /// The Amazon Resource Name (ARN) of the message template. + /// + public readonly string? MessageTemplateArn; + /// + /// The content SHA256 of the message template. + /// + public readonly string? MessageTemplateContentSha256; + /// + /// The unique identifier of the message template. + /// + public readonly string? MessageTemplateId; + /// + /// The name of the message template. + /// + public readonly string? Name; + /// + /// The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }. + /// + public readonly ImmutableArray Tags; + + [OutputConstructor] + private GetMessageTemplateResult( + Outputs.MessageTemplateContent? content, + + Outputs.MessageTemplateAttributes? defaultAttributes, + + string? description, + + Outputs.MessageTemplateGroupingConfiguration? groupingConfiguration, + + string? language, + + string? messageTemplateArn, + + string? messageTemplateContentSha256, + + string? messageTemplateId, + + string? name, + + ImmutableArray tags) + { + Content = content; + DefaultAttributes = defaultAttributes; + Description = description; + GroupingConfiguration = groupingConfiguration; + Language = language; + MessageTemplateArn = messageTemplateArn; + MessageTemplateContentSha256 = messageTemplateContentSha256; + MessageTemplateId = messageTemplateId; + Name = name; + Tags = tags; + } + } +} diff --git a/sdk/dotnet/Wisdom/GetMessageTemplateVersion.cs b/sdk/dotnet/Wisdom/GetMessageTemplateVersion.cs new file mode 100644 index 0000000000..f1eb66b65b --- /dev/null +++ b/sdk/dotnet/Wisdom/GetMessageTemplateVersion.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.Wisdom +{ + public static class GetMessageTemplateVersion + { + /// + /// A version for the specified customer-managed message template within the specified knowledge base. + /// + public static Task InvokeAsync(GetMessageTemplateVersionArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:wisdom:getMessageTemplateVersion", args ?? new GetMessageTemplateVersionArgs(), options.WithDefaults()); + + /// + /// A version for the specified customer-managed message template within the specified knowledge base. + /// + public static Output Invoke(GetMessageTemplateVersionInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:wisdom:getMessageTemplateVersion", args ?? new GetMessageTemplateVersionInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetMessageTemplateVersionArgs : global::Pulumi.InvokeArgs + { + /// + /// The unqualified Amazon Resource Name (ARN) of the message template version. + /// + [Input("messageTemplateVersionArn", required: true)] + public string MessageTemplateVersionArn { get; set; } = null!; + + public GetMessageTemplateVersionArgs() + { + } + public static new GetMessageTemplateVersionArgs Empty => new GetMessageTemplateVersionArgs(); + } + + public sealed class GetMessageTemplateVersionInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The unqualified Amazon Resource Name (ARN) of the message template version. + /// + [Input("messageTemplateVersionArn", required: true)] + public Input MessageTemplateVersionArn { get; set; } = null!; + + public GetMessageTemplateVersionInvokeArgs() + { + } + public static new GetMessageTemplateVersionInvokeArgs Empty => new GetMessageTemplateVersionInvokeArgs(); + } + + + [OutputType] + public sealed class GetMessageTemplateVersionResult + { + /// + /// The content SHA256 of the message template. + /// + public readonly string? MessageTemplateContentSha256; + /// + /// The unqualified Amazon Resource Name (ARN) of the message template version. + /// + public readonly string? MessageTemplateVersionArn; + /// + /// Current version number of the message template. + /// + public readonly double? MessageTemplateVersionNumber; + + [OutputConstructor] + private GetMessageTemplateVersionResult( + string? messageTemplateContentSha256, + + string? messageTemplateVersionArn, + + double? messageTemplateVersionNumber) + { + MessageTemplateContentSha256 = messageTemplateContentSha256; + MessageTemplateVersionArn = messageTemplateVersionArn; + MessageTemplateVersionNumber = messageTemplateVersionNumber; + } + } +} diff --git a/sdk/dotnet/Wisdom/Inputs/MessageTemplateAgentAttributesArgs.cs b/sdk/dotnet/Wisdom/Inputs/MessageTemplateAgentAttributesArgs.cs new file mode 100644 index 0000000000..1ad9c59a80 --- /dev/null +++ b/sdk/dotnet/Wisdom/Inputs/MessageTemplateAgentAttributesArgs.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.Wisdom.Inputs +{ + + /// + /// The agent attributes that are used with the message template. + /// + public sealed class MessageTemplateAgentAttributesArgs : global::Pulumi.ResourceArgs + { + /// + /// The agent’s first name as entered in their Amazon Connect user account. + /// + [Input("firstName")] + public Input? FirstName { get; set; } + + /// + /// The agent’s last name as entered in their Amazon Connect user account. + /// + [Input("lastName")] + public Input? LastName { get; set; } + + public MessageTemplateAgentAttributesArgs() + { + } + public static new MessageTemplateAgentAttributesArgs Empty => new MessageTemplateAgentAttributesArgs(); + } +} diff --git a/sdk/dotnet/Wisdom/Inputs/MessageTemplateAttributesArgs.cs b/sdk/dotnet/Wisdom/Inputs/MessageTemplateAttributesArgs.cs new file mode 100644 index 0000000000..c294f8b065 --- /dev/null +++ b/sdk/dotnet/Wisdom/Inputs/MessageTemplateAttributesArgs.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.Wisdom.Inputs +{ + + /// + /// An object that specifies the default values to use for variables in the message template. This object contains different categories of key-value pairs. Each key defines a variable or placeholder in the message template. The corresponding value defines the default value for that variable. + /// + public sealed class MessageTemplateAttributesArgs : global::Pulumi.ResourceArgs + { + [Input("agentAttributes")] + public Input? AgentAttributes { get; set; } + + [Input("customAttributes")] + private InputMap? _customAttributes; + public InputMap CustomAttributes + { + get => _customAttributes ?? (_customAttributes = new InputMap()); + set => _customAttributes = value; + } + + [Input("customerProfileAttributes")] + public Input? CustomerProfileAttributes { get; set; } + + [Input("systemAttributes")] + public Input? SystemAttributes { get; set; } + + public MessageTemplateAttributesArgs() + { + } + public static new MessageTemplateAttributesArgs Empty => new MessageTemplateAttributesArgs(); + } +} diff --git a/sdk/dotnet/Wisdom/Inputs/MessageTemplateBodyContentProviderArgs.cs b/sdk/dotnet/Wisdom/Inputs/MessageTemplateBodyContentProviderArgs.cs new file mode 100644 index 0000000000..74a327f690 --- /dev/null +++ b/sdk/dotnet/Wisdom/Inputs/MessageTemplateBodyContentProviderArgs.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.Wisdom.Inputs +{ + + /// + /// The container of message template body. + /// + public sealed class MessageTemplateBodyContentProviderArgs : global::Pulumi.ResourceArgs + { + [Input("content")] + public Input? Content { get; set; } + + public MessageTemplateBodyContentProviderArgs() + { + } + public static new MessageTemplateBodyContentProviderArgs Empty => new MessageTemplateBodyContentProviderArgs(); + } +} diff --git a/sdk/dotnet/Wisdom/Inputs/MessageTemplateContentArgs.cs b/sdk/dotnet/Wisdom/Inputs/MessageTemplateContentArgs.cs new file mode 100644 index 0000000000..1202ea2381 --- /dev/null +++ b/sdk/dotnet/Wisdom/Inputs/MessageTemplateContentArgs.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.Wisdom.Inputs +{ + + /// + /// The content of the message template. + /// + public sealed class MessageTemplateContentArgs : global::Pulumi.ResourceArgs + { + [Input("emailMessageTemplateContent")] + public Input? EmailMessageTemplateContent { get; set; } + + [Input("smsMessageTemplateContent")] + public Input? SmsMessageTemplateContent { get; set; } + + public MessageTemplateContentArgs() + { + } + public static new MessageTemplateContentArgs Empty => new MessageTemplateContentArgs(); + } +} diff --git a/sdk/dotnet/Wisdom/Inputs/MessageTemplateCustomerProfileAttributesArgs.cs b/sdk/dotnet/Wisdom/Inputs/MessageTemplateCustomerProfileAttributesArgs.cs new file mode 100644 index 0000000000..42e8a82c4a --- /dev/null +++ b/sdk/dotnet/Wisdom/Inputs/MessageTemplateCustomerProfileAttributesArgs.cs @@ -0,0 +1,373 @@ +// *** 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.Inputs +{ + + /// + /// The customer profile attributes that are used with the message template. + /// + public sealed class MessageTemplateCustomerProfileAttributesArgs : global::Pulumi.ResourceArgs + { + /// + /// A unique account number that you have given to the customer. + /// + [Input("accountNumber")] + public Input? AccountNumber { get; set; } + + /// + /// Any additional information relevant to the customer's profile. + /// + [Input("additionalInformation")] + public Input? AdditionalInformation { get; set; } + + /// + /// The first line of a customer address. + /// + [Input("address1")] + public Input? Address1 { get; set; } + + /// + /// The second line of a customer address. + /// + [Input("address2")] + public Input? Address2 { get; set; } + + /// + /// The third line of a customer address. + /// + [Input("address3")] + public Input? Address3 { get; set; } + + /// + /// The fourth line of a customer address. + /// + [Input("address4")] + public Input? Address4 { get; set; } + + /// + /// The first line of a customer’s billing address. + /// + [Input("billingAddress1")] + public Input? BillingAddress1 { get; set; } + + /// + /// The second line of a customer’s billing address. + /// + [Input("billingAddress2")] + public Input? BillingAddress2 { get; set; } + + /// + /// The third line of a customer’s billing address. + /// + [Input("billingAddress3")] + public Input? BillingAddress3 { get; set; } + + /// + /// The fourth line of a customer’s billing address. + /// + [Input("billingAddress4")] + public Input? BillingAddress4 { get; set; } + + /// + /// The city of a customer’s billing address. + /// + [Input("billingCity")] + public Input? BillingCity { get; set; } + + /// + /// The country of a customer’s billing address. + /// + [Input("billingCountry")] + public Input? BillingCountry { get; set; } + + /// + /// The county of a customer’s billing address. + /// + [Input("billingCounty")] + public Input? BillingCounty { get; set; } + + /// + /// The postal code of a customer’s billing address. + /// + [Input("billingPostalCode")] + public Input? BillingPostalCode { get; set; } + + /// + /// The province of a customer’s billing address. + /// + [Input("billingProvince")] + public Input? BillingProvince { get; set; } + + /// + /// The state of a customer’s billing address. + /// + [Input("billingState")] + public Input? BillingState { get; set; } + + /// + /// The customer's birth date. + /// + [Input("birthDate")] + public Input? BirthDate { get; set; } + + /// + /// The customer's business email address. + /// + [Input("businessEmailAddress")] + public Input? BusinessEmailAddress { get; set; } + + /// + /// The name of the customer's business. + /// + [Input("businessName")] + public Input? BusinessName { get; set; } + + /// + /// The customer's business phone number. + /// + [Input("businessPhoneNumber")] + public Input? BusinessPhoneNumber { get; set; } + + /// + /// The city in which a customer lives. + /// + [Input("city")] + public Input? City { get; set; } + + /// + /// The country in which a customer lives. + /// + [Input("country")] + public Input? Country { get; set; } + + /// + /// The county in which a customer lives. + /// + [Input("county")] + public Input? County { get; set; } + + [Input("custom")] + private InputMap? _custom; + public InputMap Custom + { + get => _custom ?? (_custom = new InputMap()); + set => _custom = value; + } + + /// + /// The customer's email address, which has not been specified as a personal or business address. + /// + [Input("emailAddress")] + public Input? EmailAddress { get; set; } + + /// + /// The customer's first name. + /// + [Input("firstName")] + public Input? FirstName { get; set; } + + /// + /// The customer's gender. + /// + [Input("gender")] + public Input? Gender { get; set; } + + /// + /// The customer's home phone number. + /// + [Input("homePhoneNumber")] + public Input? HomePhoneNumber { get; set; } + + /// + /// The customer's last name. + /// + [Input("lastName")] + public Input? LastName { get; set; } + + /// + /// The first line of a customer’s mailing address. + /// + [Input("mailingAddress1")] + public Input? MailingAddress1 { get; set; } + + /// + /// The second line of a customer’s mailing address. + /// + [Input("mailingAddress2")] + public Input? MailingAddress2 { get; set; } + + /// + /// The third line of a customer’s mailing address. + /// + [Input("mailingAddress3")] + public Input? MailingAddress3 { get; set; } + + /// + /// The fourth line of a customer’s mailing address. + /// + [Input("mailingAddress4")] + public Input? MailingAddress4 { get; set; } + + /// + /// The city of a customer’s mailing address. + /// + [Input("mailingCity")] + public Input? MailingCity { get; set; } + + /// + /// The country of a customer’s mailing address. + /// + [Input("mailingCountry")] + public Input? MailingCountry { get; set; } + + /// + /// The county of a customer’s mailing address. + /// + [Input("mailingCounty")] + public Input? MailingCounty { get; set; } + + /// + /// The postal code of a customer’s mailing address + /// + [Input("mailingPostalCode")] + public Input? MailingPostalCode { get; set; } + + /// + /// The province of a customer’s mailing address. + /// + [Input("mailingProvince")] + public Input? MailingProvince { get; set; } + + /// + /// The state of a customer’s mailing address. + /// + [Input("mailingState")] + public Input? MailingState { get; set; } + + /// + /// The customer's middle name. + /// + [Input("middleName")] + public Input? MiddleName { get; set; } + + /// + /// The customer's mobile phone number. + /// + [Input("mobilePhoneNumber")] + public Input? MobilePhoneNumber { get; set; } + + /// + /// The customer's party type. + /// + [Input("partyType")] + public Input? PartyType { get; set; } + + /// + /// The customer's phone number, which has not been specified as a mobile, home, or business number. + /// + [Input("phoneNumber")] + public Input? PhoneNumber { get; set; } + + /// + /// The postal code of a customer address. + /// + [Input("postalCode")] + public Input? PostalCode { get; set; } + + /// + /// The ARN of a customer profile. + /// + [Input("profileArn")] + public Input? ProfileArn { get; set; } + + /// + /// The unique identifier of a customer profile. + /// + [Input("profileId")] + public Input? ProfileId { get; set; } + + /// + /// The province in which a customer lives. + /// + [Input("province")] + public Input? Province { get; set; } + + /// + /// The first line of a customer’s shipping address. + /// + [Input("shippingAddress1")] + public Input? ShippingAddress1 { get; set; } + + /// + /// The second line of a customer’s shipping address. + /// + [Input("shippingAddress2")] + public Input? ShippingAddress2 { get; set; } + + /// + /// The third line of a customer’s shipping address. + /// + [Input("shippingAddress3")] + public Input? ShippingAddress3 { get; set; } + + /// + /// The fourth line of a customer’s shipping address + /// + [Input("shippingAddress4")] + public Input? ShippingAddress4 { get; set; } + + /// + /// The city of a customer’s shipping address. + /// + [Input("shippingCity")] + public Input? ShippingCity { get; set; } + + /// + /// The country of a customer’s shipping address. + /// + [Input("shippingCountry")] + public Input? ShippingCountry { get; set; } + + /// + /// The county of a customer’s shipping address. + /// + [Input("shippingCounty")] + public Input? ShippingCounty { get; set; } + + /// + /// The postal code of a customer’s shipping address. + /// + [Input("shippingPostalCode")] + public Input? ShippingPostalCode { get; set; } + + /// + /// The province of a customer’s shipping address. + /// + [Input("shippingProvince")] + public Input? ShippingProvince { get; set; } + + /// + /// The state of a customer’s shipping address. + /// + [Input("shippingState")] + public Input? ShippingState { get; set; } + + /// + /// The state in which a customer lives. + /// + [Input("state")] + public Input? State { get; set; } + + public MessageTemplateCustomerProfileAttributesArgs() + { + } + public static new MessageTemplateCustomerProfileAttributesArgs Empty => new MessageTemplateCustomerProfileAttributesArgs(); + } +} diff --git a/sdk/dotnet/Wisdom/Inputs/MessageTemplateEmailMessageTemplateContentArgs.cs b/sdk/dotnet/Wisdom/Inputs/MessageTemplateEmailMessageTemplateContentArgs.cs new file mode 100644 index 0000000000..4f10a58e24 --- /dev/null +++ b/sdk/dotnet/Wisdom/Inputs/MessageTemplateEmailMessageTemplateContentArgs.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.Wisdom.Inputs +{ + + /// + /// The content of message template that applies to email channel subtype. + /// + public sealed class MessageTemplateEmailMessageTemplateContentArgs : global::Pulumi.ResourceArgs + { + [Input("body", required: true)] + public Input Body { get; set; } = null!; + + [Input("headers", required: true)] + private InputList? _headers; + + /// + /// The email headers to include in email messages. + /// + public InputList Headers + { + get => _headers ?? (_headers = new InputList()); + set => _headers = value; + } + + /// + /// The subject line, or title, to use in email messages. + /// + [Input("subject", required: true)] + public Input Subject { get; set; } = null!; + + public MessageTemplateEmailMessageTemplateContentArgs() + { + } + public static new MessageTemplateEmailMessageTemplateContentArgs Empty => new MessageTemplateEmailMessageTemplateContentArgs(); + } +} diff --git a/sdk/dotnet/Wisdom/Inputs/MessageTemplateEmailMessageTemplateContentBodyArgs.cs b/sdk/dotnet/Wisdom/Inputs/MessageTemplateEmailMessageTemplateContentBodyArgs.cs new file mode 100644 index 0000000000..c4847c1069 --- /dev/null +++ b/sdk/dotnet/Wisdom/Inputs/MessageTemplateEmailMessageTemplateContentBodyArgs.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.Wisdom.Inputs +{ + + /// + /// The body to use in email messages. + /// + public sealed class MessageTemplateEmailMessageTemplateContentBodyArgs : global::Pulumi.ResourceArgs + { + /// + /// The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + /// + [Input("html")] + public Input? Html { get; set; } + + /// + /// The message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + /// + [Input("plainText")] + public Input? PlainText { get; set; } + + public MessageTemplateEmailMessageTemplateContentBodyArgs() + { + } + public static new MessageTemplateEmailMessageTemplateContentBodyArgs Empty => new MessageTemplateEmailMessageTemplateContentBodyArgs(); + } +} diff --git a/sdk/dotnet/Wisdom/Inputs/MessageTemplateEmailMessageTemplateHeaderArgs.cs b/sdk/dotnet/Wisdom/Inputs/MessageTemplateEmailMessageTemplateHeaderArgs.cs new file mode 100644 index 0000000000..c6e9878394 --- /dev/null +++ b/sdk/dotnet/Wisdom/Inputs/MessageTemplateEmailMessageTemplateHeaderArgs.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.Wisdom.Inputs +{ + + /// + /// The email header to include in email messages. + /// + public sealed class MessageTemplateEmailMessageTemplateHeaderArgs : global::Pulumi.ResourceArgs + { + /// + /// The name of the email header. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The value of the email header. + /// + [Input("value")] + public Input? Value { get; set; } + + public MessageTemplateEmailMessageTemplateHeaderArgs() + { + } + public static new MessageTemplateEmailMessageTemplateHeaderArgs Empty => new MessageTemplateEmailMessageTemplateHeaderArgs(); + } +} diff --git a/sdk/dotnet/Wisdom/Inputs/MessageTemplateGroupingConfigurationArgs.cs b/sdk/dotnet/Wisdom/Inputs/MessageTemplateGroupingConfigurationArgs.cs new file mode 100644 index 0000000000..6253f113d2 --- /dev/null +++ b/sdk/dotnet/Wisdom/Inputs/MessageTemplateGroupingConfigurationArgs.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.Wisdom.Inputs +{ + + /// + /// The configuration information of the user groups that the message template is accessible to. + /// + public sealed class MessageTemplateGroupingConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The criteria used for grouping Amazon Q in Connect users. + /// + [Input("criteria", required: true)] + public Input Criteria { get; set; } = null!; + + [Input("values", required: true)] + private InputList? _values; + + /// + /// The list of values that define different groups of Amazon Q in Connect users. + /// + public InputList Values + { + get => _values ?? (_values = new InputList()); + set => _values = value; + } + + public MessageTemplateGroupingConfigurationArgs() + { + } + public static new MessageTemplateGroupingConfigurationArgs Empty => new MessageTemplateGroupingConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Wisdom/Inputs/MessageTemplateSmsMessageTemplateContentArgs.cs b/sdk/dotnet/Wisdom/Inputs/MessageTemplateSmsMessageTemplateContentArgs.cs new file mode 100644 index 0000000000..fb96ca0211 --- /dev/null +++ b/sdk/dotnet/Wisdom/Inputs/MessageTemplateSmsMessageTemplateContentArgs.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.Wisdom.Inputs +{ + + /// + /// The content of message template that applies to SMS channel subtype. + /// + public sealed class MessageTemplateSmsMessageTemplateContentArgs : global::Pulumi.ResourceArgs + { + [Input("body", required: true)] + public Input Body { get; set; } = null!; + + public MessageTemplateSmsMessageTemplateContentArgs() + { + } + public static new MessageTemplateSmsMessageTemplateContentArgs Empty => new MessageTemplateSmsMessageTemplateContentArgs(); + } +} diff --git a/sdk/dotnet/Wisdom/Inputs/MessageTemplateSmsMessageTemplateContentBodyArgs.cs b/sdk/dotnet/Wisdom/Inputs/MessageTemplateSmsMessageTemplateContentBodyArgs.cs new file mode 100644 index 0000000000..e7c47b7817 --- /dev/null +++ b/sdk/dotnet/Wisdom/Inputs/MessageTemplateSmsMessageTemplateContentBodyArgs.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.Wisdom.Inputs +{ + + /// + /// The body to use in SMS messages. + /// + public sealed class MessageTemplateSmsMessageTemplateContentBodyArgs : global::Pulumi.ResourceArgs + { + [Input("plainText")] + public Input? PlainText { get; set; } + + public MessageTemplateSmsMessageTemplateContentBodyArgs() + { + } + public static new MessageTemplateSmsMessageTemplateContentBodyArgs Empty => new MessageTemplateSmsMessageTemplateContentBodyArgs(); + } +} diff --git a/sdk/dotnet/Wisdom/Inputs/MessageTemplateSystemAttributesArgs.cs b/sdk/dotnet/Wisdom/Inputs/MessageTemplateSystemAttributesArgs.cs new file mode 100644 index 0000000000..45ec0011c4 --- /dev/null +++ b/sdk/dotnet/Wisdom/Inputs/MessageTemplateSystemAttributesArgs.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.Wisdom.Inputs +{ + + /// + /// The system attributes that are used with the message template. + /// + public sealed class MessageTemplateSystemAttributesArgs : global::Pulumi.ResourceArgs + { + /// + /// The CustomerEndpoint attribute. + /// + [Input("customerEndpoint")] + public Input? CustomerEndpoint { get; set; } + + /// + /// The name of the task. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The SystemEndpoint attribute. + /// + [Input("systemEndpoint")] + public Input? SystemEndpoint { get; set; } + + public MessageTemplateSystemAttributesArgs() + { + } + public static new MessageTemplateSystemAttributesArgs Empty => new MessageTemplateSystemAttributesArgs(); + } +} diff --git a/sdk/dotnet/Wisdom/Inputs/MessageTemplateSystemEndpointAttributesArgs.cs b/sdk/dotnet/Wisdom/Inputs/MessageTemplateSystemEndpointAttributesArgs.cs new file mode 100644 index 0000000000..0f38b0f91b --- /dev/null +++ b/sdk/dotnet/Wisdom/Inputs/MessageTemplateSystemEndpointAttributesArgs.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.Wisdom.Inputs +{ + + /// + /// The system endpoint attributes that are used with the message template. + /// + public sealed class MessageTemplateSystemEndpointAttributesArgs : global::Pulumi.ResourceArgs + { + /// + /// The customer's phone number if used with customerEndpoint, or the number the customer dialed to call your contact center if used with systemEndpoint. + /// + [Input("address")] + public Input? Address { get; set; } + + public MessageTemplateSystemEndpointAttributesArgs() + { + } + public static new MessageTemplateSystemEndpointAttributesArgs Empty => new MessageTemplateSystemEndpointAttributesArgs(); + } +} diff --git a/sdk/dotnet/Wisdom/MessageTemplate.cs b/sdk/dotnet/Wisdom/MessageTemplate.cs new file mode 100644 index 0000000000..23689a2873 --- /dev/null +++ b/sdk/dotnet/Wisdom/MessageTemplate.cs @@ -0,0 +1,181 @@ +// *** 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::MessageTemplate Resource Type + /// + [AwsNativeResourceType("aws-native:wisdom:MessageTemplate")] + public partial class MessageTemplate : global::Pulumi.CustomResource + { + [Output("channelSubtype")] + public Output ChannelSubtype { get; private set; } = null!; + + [Output("content")] + public Output Content { get; private set; } = null!; + + [Output("defaultAttributes")] + public Output DefaultAttributes { get; private set; } = null!; + + /// + /// The description of the message template. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + [Output("groupingConfiguration")] + public Output GroupingConfiguration { get; private set; } = null!; + + /// + /// The Amazon Resource Name (ARN) of the knowledge base to which the message template belongs. + /// + [Output("knowledgeBaseArn")] + public Output KnowledgeBaseArn { get; private set; } = null!; + + /// + /// The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW + /// + [Output("language")] + public Output Language { get; private set; } = null!; + + /// + /// The Amazon Resource Name (ARN) of the message template. + /// + [Output("messageTemplateArn")] + public Output MessageTemplateArn { get; private set; } = null!; + + /// + /// The content SHA256 of the message template. + /// + [Output("messageTemplateContentSha256")] + public Output MessageTemplateContentSha256 { get; private set; } = null!; + + /// + /// The unique identifier of the message template. + /// + [Output("messageTemplateId")] + public Output MessageTemplateId { get; private set; } = null!; + + /// + /// The name of the message template. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }. + /// + [Output("tags")] + public Output> Tags { get; private set; } = null!; + + + /// + /// Create a MessageTemplate 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 MessageTemplate(string name, MessageTemplateArgs args, CustomResourceOptions? options = null) + : base("aws-native:wisdom:MessageTemplate", name, args ?? new MessageTemplateArgs(), MakeResourceOptions(options, "")) + { + } + + private MessageTemplate(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:wisdom:MessageTemplate", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "channelSubtype", + "knowledgeBaseArn", + }, + }; + 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 MessageTemplate 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 MessageTemplate Get(string name, Input id, CustomResourceOptions? options = null) + { + return new MessageTemplate(name, id, options); + } + } + + public sealed class MessageTemplateArgs : global::Pulumi.ResourceArgs + { + [Input("channelSubtype", required: true)] + public Input ChannelSubtype { get; set; } = null!; + + [Input("content", required: true)] + public Input Content { get; set; } = null!; + + [Input("defaultAttributes")] + public Input? DefaultAttributes { get; set; } + + /// + /// The description of the message template. + /// + [Input("description")] + public Input? Description { get; set; } + + [Input("groupingConfiguration")] + public Input? GroupingConfiguration { get; set; } + + /// + /// The Amazon Resource Name (ARN) of the knowledge base to which the message template belongs. + /// + [Input("knowledgeBaseArn", required: true)] + public Input KnowledgeBaseArn { get; set; } = null!; + + /// + /// The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW + /// + [Input("language")] + public Input? Language { get; set; } + + /// + /// The name of the message template. + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("tags")] + private InputList? _tags; + + /// + /// The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }. + /// + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + + public MessageTemplateArgs() + { + } + public static new MessageTemplateArgs Empty => new MessageTemplateArgs(); + } +} diff --git a/sdk/dotnet/Wisdom/MessageTemplateVersion.cs b/sdk/dotnet/Wisdom/MessageTemplateVersion.cs new file mode 100644 index 0000000000..a8abd548f4 --- /dev/null +++ b/sdk/dotnet/Wisdom/MessageTemplateVersion.cs @@ -0,0 +1,108 @@ +// *** 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 +{ + /// + /// A version for the specified customer-managed message template within the specified knowledge base. + /// + [AwsNativeResourceType("aws-native:wisdom:MessageTemplateVersion")] + public partial class MessageTemplateVersion : global::Pulumi.CustomResource + { + /// + /// The unqualified Amazon Resource Name (ARN) of the message template. + /// + [Output("messageTemplateArn")] + public Output MessageTemplateArn { get; private set; } = null!; + + /// + /// The content SHA256 of the message template. + /// + [Output("messageTemplateContentSha256")] + public Output MessageTemplateContentSha256 { get; private set; } = null!; + + /// + /// The unqualified Amazon Resource Name (ARN) of the message template version. + /// + [Output("messageTemplateVersionArn")] + public Output MessageTemplateVersionArn { get; private set; } = null!; + + /// + /// Current version number of the message template. + /// + [Output("messageTemplateVersionNumber")] + public Output MessageTemplateVersionNumber { get; private set; } = null!; + + + /// + /// Create a MessageTemplateVersion 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 MessageTemplateVersion(string name, MessageTemplateVersionArgs args, CustomResourceOptions? options = null) + : base("aws-native:wisdom:MessageTemplateVersion", name, args ?? new MessageTemplateVersionArgs(), MakeResourceOptions(options, "")) + { + } + + private MessageTemplateVersion(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:wisdom:MessageTemplateVersion", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "messageTemplateArn", + }, + }; + 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 MessageTemplateVersion 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 MessageTemplateVersion Get(string name, Input id, CustomResourceOptions? options = null) + { + return new MessageTemplateVersion(name, id, options); + } + } + + public sealed class MessageTemplateVersionArgs : global::Pulumi.ResourceArgs + { + /// + /// The unqualified Amazon Resource Name (ARN) of the message template. + /// + [Input("messageTemplateArn", required: true)] + public Input MessageTemplateArn { get; set; } = null!; + + /// + /// The content SHA256 of the message template. + /// + [Input("messageTemplateContentSha256")] + public Input? MessageTemplateContentSha256 { get; set; } + + public MessageTemplateVersionArgs() + { + } + public static new MessageTemplateVersionArgs Empty => new MessageTemplateVersionArgs(); + } +} diff --git a/sdk/dotnet/Wisdom/Outputs/MessageTemplateAgentAttributes.cs b/sdk/dotnet/Wisdom/Outputs/MessageTemplateAgentAttributes.cs new file mode 100644 index 0000000000..8ab7af06a9 --- /dev/null +++ b/sdk/dotnet/Wisdom/Outputs/MessageTemplateAgentAttributes.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.Wisdom.Outputs +{ + + /// + /// The agent attributes that are used with the message template. + /// + [OutputType] + public sealed class MessageTemplateAgentAttributes + { + /// + /// The agent’s first name as entered in their Amazon Connect user account. + /// + public readonly string? FirstName; + /// + /// The agent’s last name as entered in their Amazon Connect user account. + /// + public readonly string? LastName; + + [OutputConstructor] + private MessageTemplateAgentAttributes( + string? firstName, + + string? lastName) + { + FirstName = firstName; + LastName = lastName; + } + } +} diff --git a/sdk/dotnet/Wisdom/Outputs/MessageTemplateAttributes.cs b/sdk/dotnet/Wisdom/Outputs/MessageTemplateAttributes.cs new file mode 100644 index 0000000000..c4fde48aa2 --- /dev/null +++ b/sdk/dotnet/Wisdom/Outputs/MessageTemplateAttributes.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.Wisdom.Outputs +{ + + /// + /// An object that specifies the default values to use for variables in the message template. This object contains different categories of key-value pairs. Each key defines a variable or placeholder in the message template. The corresponding value defines the default value for that variable. + /// + [OutputType] + public sealed class MessageTemplateAttributes + { + public readonly Outputs.MessageTemplateAgentAttributes? AgentAttributes; + public readonly ImmutableDictionary? CustomAttributes; + public readonly Outputs.MessageTemplateCustomerProfileAttributes? CustomerProfileAttributes; + public readonly Outputs.MessageTemplateSystemAttributes? SystemAttributes; + + [OutputConstructor] + private MessageTemplateAttributes( + Outputs.MessageTemplateAgentAttributes? agentAttributes, + + ImmutableDictionary? customAttributes, + + Outputs.MessageTemplateCustomerProfileAttributes? customerProfileAttributes, + + Outputs.MessageTemplateSystemAttributes? systemAttributes) + { + AgentAttributes = agentAttributes; + CustomAttributes = customAttributes; + CustomerProfileAttributes = customerProfileAttributes; + SystemAttributes = systemAttributes; + } + } +} diff --git a/sdk/dotnet/Wisdom/Outputs/MessageTemplateBodyContentProvider.cs b/sdk/dotnet/Wisdom/Outputs/MessageTemplateBodyContentProvider.cs new file mode 100644 index 0000000000..3a8a9f806a --- /dev/null +++ b/sdk/dotnet/Wisdom/Outputs/MessageTemplateBodyContentProvider.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.Wisdom.Outputs +{ + + /// + /// The container of message template body. + /// + [OutputType] + public sealed class MessageTemplateBodyContentProvider + { + public readonly string? Content; + + [OutputConstructor] + private MessageTemplateBodyContentProvider(string? content) + { + Content = content; + } + } +} diff --git a/sdk/dotnet/Wisdom/Outputs/MessageTemplateContent.cs b/sdk/dotnet/Wisdom/Outputs/MessageTemplateContent.cs new file mode 100644 index 0000000000..54e6dca5f2 --- /dev/null +++ b/sdk/dotnet/Wisdom/Outputs/MessageTemplateContent.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.Wisdom.Outputs +{ + + /// + /// The content of the message template. + /// + [OutputType] + public sealed class MessageTemplateContent + { + public readonly Outputs.MessageTemplateEmailMessageTemplateContent? EmailMessageTemplateContent; + public readonly Outputs.MessageTemplateSmsMessageTemplateContent? SmsMessageTemplateContent; + + [OutputConstructor] + private MessageTemplateContent( + Outputs.MessageTemplateEmailMessageTemplateContent? emailMessageTemplateContent, + + Outputs.MessageTemplateSmsMessageTemplateContent? smsMessageTemplateContent) + { + EmailMessageTemplateContent = emailMessageTemplateContent; + SmsMessageTemplateContent = smsMessageTemplateContent; + } + } +} diff --git a/sdk/dotnet/Wisdom/Outputs/MessageTemplateCustomerProfileAttributes.cs b/sdk/dotnet/Wisdom/Outputs/MessageTemplateCustomerProfileAttributes.cs new file mode 100644 index 0000000000..4816a71675 --- /dev/null +++ b/sdk/dotnet/Wisdom/Outputs/MessageTemplateCustomerProfileAttributes.cs @@ -0,0 +1,427 @@ +// *** 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.Outputs +{ + + /// + /// The customer profile attributes that are used with the message template. + /// + [OutputType] + public sealed class MessageTemplateCustomerProfileAttributes + { + /// + /// A unique account number that you have given to the customer. + /// + public readonly string? AccountNumber; + /// + /// Any additional information relevant to the customer's profile. + /// + public readonly string? AdditionalInformation; + /// + /// The first line of a customer address. + /// + public readonly string? Address1; + /// + /// The second line of a customer address. + /// + public readonly string? Address2; + /// + /// The third line of a customer address. + /// + public readonly string? Address3; + /// + /// The fourth line of a customer address. + /// + public readonly string? Address4; + /// + /// The first line of a customer’s billing address. + /// + public readonly string? BillingAddress1; + /// + /// The second line of a customer’s billing address. + /// + public readonly string? BillingAddress2; + /// + /// The third line of a customer’s billing address. + /// + public readonly string? BillingAddress3; + /// + /// The fourth line of a customer’s billing address. + /// + public readonly string? BillingAddress4; + /// + /// The city of a customer’s billing address. + /// + public readonly string? BillingCity; + /// + /// The country of a customer’s billing address. + /// + public readonly string? BillingCountry; + /// + /// The county of a customer’s billing address. + /// + public readonly string? BillingCounty; + /// + /// The postal code of a customer’s billing address. + /// + public readonly string? BillingPostalCode; + /// + /// The province of a customer’s billing address. + /// + public readonly string? BillingProvince; + /// + /// The state of a customer’s billing address. + /// + public readonly string? BillingState; + /// + /// The customer's birth date. + /// + public readonly string? BirthDate; + /// + /// The customer's business email address. + /// + public readonly string? BusinessEmailAddress; + /// + /// The name of the customer's business. + /// + public readonly string? BusinessName; + /// + /// The customer's business phone number. + /// + public readonly string? BusinessPhoneNumber; + /// + /// The city in which a customer lives. + /// + public readonly string? City; + /// + /// The country in which a customer lives. + /// + public readonly string? Country; + /// + /// The county in which a customer lives. + /// + public readonly string? County; + public readonly ImmutableDictionary? Custom; + /// + /// The customer's email address, which has not been specified as a personal or business address. + /// + public readonly string? EmailAddress; + /// + /// The customer's first name. + /// + public readonly string? FirstName; + /// + /// The customer's gender. + /// + public readonly string? Gender; + /// + /// The customer's home phone number. + /// + public readonly string? HomePhoneNumber; + /// + /// The customer's last name. + /// + public readonly string? LastName; + /// + /// The first line of a customer’s mailing address. + /// + public readonly string? MailingAddress1; + /// + /// The second line of a customer’s mailing address. + /// + public readonly string? MailingAddress2; + /// + /// The third line of a customer’s mailing address. + /// + public readonly string? MailingAddress3; + /// + /// The fourth line of a customer’s mailing address. + /// + public readonly string? MailingAddress4; + /// + /// The city of a customer’s mailing address. + /// + public readonly string? MailingCity; + /// + /// The country of a customer’s mailing address. + /// + public readonly string? MailingCountry; + /// + /// The county of a customer’s mailing address. + /// + public readonly string? MailingCounty; + /// + /// The postal code of a customer’s mailing address + /// + public readonly string? MailingPostalCode; + /// + /// The province of a customer’s mailing address. + /// + public readonly string? MailingProvince; + /// + /// The state of a customer’s mailing address. + /// + public readonly string? MailingState; + /// + /// The customer's middle name. + /// + public readonly string? MiddleName; + /// + /// The customer's mobile phone number. + /// + public readonly string? MobilePhoneNumber; + /// + /// The customer's party type. + /// + public readonly string? PartyType; + /// + /// The customer's phone number, which has not been specified as a mobile, home, or business number. + /// + public readonly string? PhoneNumber; + /// + /// The postal code of a customer address. + /// + public readonly string? PostalCode; + /// + /// The ARN of a customer profile. + /// + public readonly string? ProfileArn; + /// + /// The unique identifier of a customer profile. + /// + public readonly string? ProfileId; + /// + /// The province in which a customer lives. + /// + public readonly string? Province; + /// + /// The first line of a customer’s shipping address. + /// + public readonly string? ShippingAddress1; + /// + /// The second line of a customer’s shipping address. + /// + public readonly string? ShippingAddress2; + /// + /// The third line of a customer’s shipping address. + /// + public readonly string? ShippingAddress3; + /// + /// The fourth line of a customer’s shipping address + /// + public readonly string? ShippingAddress4; + /// + /// The city of a customer’s shipping address. + /// + public readonly string? ShippingCity; + /// + /// The country of a customer’s shipping address. + /// + public readonly string? ShippingCountry; + /// + /// The county of a customer’s shipping address. + /// + public readonly string? ShippingCounty; + /// + /// The postal code of a customer’s shipping address. + /// + public readonly string? ShippingPostalCode; + /// + /// The province of a customer’s shipping address. + /// + public readonly string? ShippingProvince; + /// + /// The state of a customer’s shipping address. + /// + public readonly string? ShippingState; + /// + /// The state in which a customer lives. + /// + public readonly string? State; + + [OutputConstructor] + private MessageTemplateCustomerProfileAttributes( + string? accountNumber, + + string? additionalInformation, + + string? address1, + + string? address2, + + string? address3, + + string? address4, + + string? billingAddress1, + + string? billingAddress2, + + string? billingAddress3, + + string? billingAddress4, + + string? billingCity, + + string? billingCountry, + + string? billingCounty, + + string? billingPostalCode, + + string? billingProvince, + + string? billingState, + + string? birthDate, + + string? businessEmailAddress, + + string? businessName, + + string? businessPhoneNumber, + + string? city, + + string? country, + + string? county, + + ImmutableDictionary? custom, + + string? emailAddress, + + string? firstName, + + string? gender, + + string? homePhoneNumber, + + string? lastName, + + string? mailingAddress1, + + string? mailingAddress2, + + string? mailingAddress3, + + string? mailingAddress4, + + string? mailingCity, + + string? mailingCountry, + + string? mailingCounty, + + string? mailingPostalCode, + + string? mailingProvince, + + string? mailingState, + + string? middleName, + + string? mobilePhoneNumber, + + string? partyType, + + string? phoneNumber, + + string? postalCode, + + string? profileArn, + + string? profileId, + + string? province, + + string? shippingAddress1, + + string? shippingAddress2, + + string? shippingAddress3, + + string? shippingAddress4, + + string? shippingCity, + + string? shippingCountry, + + string? shippingCounty, + + string? shippingPostalCode, + + string? shippingProvince, + + string? shippingState, + + string? state) + { + AccountNumber = accountNumber; + AdditionalInformation = additionalInformation; + Address1 = address1; + Address2 = address2; + Address3 = address3; + Address4 = address4; + BillingAddress1 = billingAddress1; + BillingAddress2 = billingAddress2; + BillingAddress3 = billingAddress3; + BillingAddress4 = billingAddress4; + BillingCity = billingCity; + BillingCountry = billingCountry; + BillingCounty = billingCounty; + BillingPostalCode = billingPostalCode; + BillingProvince = billingProvince; + BillingState = billingState; + BirthDate = birthDate; + BusinessEmailAddress = businessEmailAddress; + BusinessName = businessName; + BusinessPhoneNumber = businessPhoneNumber; + City = city; + Country = country; + County = county; + Custom = custom; + EmailAddress = emailAddress; + FirstName = firstName; + Gender = gender; + HomePhoneNumber = homePhoneNumber; + LastName = lastName; + MailingAddress1 = mailingAddress1; + MailingAddress2 = mailingAddress2; + MailingAddress3 = mailingAddress3; + MailingAddress4 = mailingAddress4; + MailingCity = mailingCity; + MailingCountry = mailingCountry; + MailingCounty = mailingCounty; + MailingPostalCode = mailingPostalCode; + MailingProvince = mailingProvince; + MailingState = mailingState; + MiddleName = middleName; + MobilePhoneNumber = mobilePhoneNumber; + PartyType = partyType; + PhoneNumber = phoneNumber; + PostalCode = postalCode; + ProfileArn = profileArn; + ProfileId = profileId; + Province = province; + ShippingAddress1 = shippingAddress1; + ShippingAddress2 = shippingAddress2; + ShippingAddress3 = shippingAddress3; + ShippingAddress4 = shippingAddress4; + ShippingCity = shippingCity; + ShippingCountry = shippingCountry; + ShippingCounty = shippingCounty; + ShippingPostalCode = shippingPostalCode; + ShippingProvince = shippingProvince; + ShippingState = shippingState; + State = state; + } + } +} diff --git a/sdk/dotnet/Wisdom/Outputs/MessageTemplateEmailMessageTemplateContent.cs b/sdk/dotnet/Wisdom/Outputs/MessageTemplateEmailMessageTemplateContent.cs new file mode 100644 index 0000000000..8e56a7442a --- /dev/null +++ b/sdk/dotnet/Wisdom/Outputs/MessageTemplateEmailMessageTemplateContent.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.Wisdom.Outputs +{ + + /// + /// The content of message template that applies to email channel subtype. + /// + [OutputType] + public sealed class MessageTemplateEmailMessageTemplateContent + { + public readonly Outputs.MessageTemplateEmailMessageTemplateContentBody Body; + /// + /// The email headers to include in email messages. + /// + public readonly ImmutableArray Headers; + /// + /// The subject line, or title, to use in email messages. + /// + public readonly string Subject; + + [OutputConstructor] + private MessageTemplateEmailMessageTemplateContent( + Outputs.MessageTemplateEmailMessageTemplateContentBody body, + + ImmutableArray headers, + + string subject) + { + Body = body; + Headers = headers; + Subject = subject; + } + } +} diff --git a/sdk/dotnet/Wisdom/Outputs/MessageTemplateEmailMessageTemplateContentBody.cs b/sdk/dotnet/Wisdom/Outputs/MessageTemplateEmailMessageTemplateContentBody.cs new file mode 100644 index 0000000000..a9b74a8408 --- /dev/null +++ b/sdk/dotnet/Wisdom/Outputs/MessageTemplateEmailMessageTemplateContentBody.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.Wisdom.Outputs +{ + + /// + /// The body to use in email messages. + /// + [OutputType] + public sealed class MessageTemplateEmailMessageTemplateContentBody + { + /// + /// The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + /// + public readonly Outputs.MessageTemplateBodyContentProvider? Html; + /// + /// The message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + /// + public readonly Outputs.MessageTemplateBodyContentProvider? PlainText; + + [OutputConstructor] + private MessageTemplateEmailMessageTemplateContentBody( + Outputs.MessageTemplateBodyContentProvider? html, + + Outputs.MessageTemplateBodyContentProvider? plainText) + { + Html = html; + PlainText = plainText; + } + } +} diff --git a/sdk/dotnet/Wisdom/Outputs/MessageTemplateEmailMessageTemplateHeader.cs b/sdk/dotnet/Wisdom/Outputs/MessageTemplateEmailMessageTemplateHeader.cs new file mode 100644 index 0000000000..0ae1ae3f63 --- /dev/null +++ b/sdk/dotnet/Wisdom/Outputs/MessageTemplateEmailMessageTemplateHeader.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.Wisdom.Outputs +{ + + /// + /// The email header to include in email messages. + /// + [OutputType] + public sealed class MessageTemplateEmailMessageTemplateHeader + { + /// + /// The name of the email header. + /// + public readonly string? Name; + /// + /// The value of the email header. + /// + public readonly string? Value; + + [OutputConstructor] + private MessageTemplateEmailMessageTemplateHeader( + string? name, + + string? value) + { + Name = name; + Value = value; + } + } +} diff --git a/sdk/dotnet/Wisdom/Outputs/MessageTemplateGroupingConfiguration.cs b/sdk/dotnet/Wisdom/Outputs/MessageTemplateGroupingConfiguration.cs new file mode 100644 index 0000000000..7577224818 --- /dev/null +++ b/sdk/dotnet/Wisdom/Outputs/MessageTemplateGroupingConfiguration.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.Wisdom.Outputs +{ + + /// + /// The configuration information of the user groups that the message template is accessible to. + /// + [OutputType] + public sealed class MessageTemplateGroupingConfiguration + { + /// + /// The criteria used for grouping Amazon Q in Connect users. + /// + public readonly string Criteria; + /// + /// The list of values that define different groups of Amazon Q in Connect users. + /// + public readonly ImmutableArray Values; + + [OutputConstructor] + private MessageTemplateGroupingConfiguration( + string criteria, + + ImmutableArray values) + { + Criteria = criteria; + Values = values; + } + } +} diff --git a/sdk/dotnet/Wisdom/Outputs/MessageTemplateSmsMessageTemplateContent.cs b/sdk/dotnet/Wisdom/Outputs/MessageTemplateSmsMessageTemplateContent.cs new file mode 100644 index 0000000000..9597f6455e --- /dev/null +++ b/sdk/dotnet/Wisdom/Outputs/MessageTemplateSmsMessageTemplateContent.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.Wisdom.Outputs +{ + + /// + /// The content of message template that applies to SMS channel subtype. + /// + [OutputType] + public sealed class MessageTemplateSmsMessageTemplateContent + { + public readonly Outputs.MessageTemplateSmsMessageTemplateContentBody Body; + + [OutputConstructor] + private MessageTemplateSmsMessageTemplateContent(Outputs.MessageTemplateSmsMessageTemplateContentBody body) + { + Body = body; + } + } +} diff --git a/sdk/dotnet/Wisdom/Outputs/MessageTemplateSmsMessageTemplateContentBody.cs b/sdk/dotnet/Wisdom/Outputs/MessageTemplateSmsMessageTemplateContentBody.cs new file mode 100644 index 0000000000..9ce164d706 --- /dev/null +++ b/sdk/dotnet/Wisdom/Outputs/MessageTemplateSmsMessageTemplateContentBody.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.Wisdom.Outputs +{ + + /// + /// The body to use in SMS messages. + /// + [OutputType] + public sealed class MessageTemplateSmsMessageTemplateContentBody + { + public readonly Outputs.MessageTemplateBodyContentProvider? PlainText; + + [OutputConstructor] + private MessageTemplateSmsMessageTemplateContentBody(Outputs.MessageTemplateBodyContentProvider? plainText) + { + PlainText = plainText; + } + } +} diff --git a/sdk/dotnet/Wisdom/Outputs/MessageTemplateSystemAttributes.cs b/sdk/dotnet/Wisdom/Outputs/MessageTemplateSystemAttributes.cs new file mode 100644 index 0000000000..0d2a39f332 --- /dev/null +++ b/sdk/dotnet/Wisdom/Outputs/MessageTemplateSystemAttributes.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.Wisdom.Outputs +{ + + /// + /// The system attributes that are used with the message template. + /// + [OutputType] + public sealed class MessageTemplateSystemAttributes + { + /// + /// The CustomerEndpoint attribute. + /// + public readonly Outputs.MessageTemplateSystemEndpointAttributes? CustomerEndpoint; + /// + /// The name of the task. + /// + public readonly string? Name; + /// + /// The SystemEndpoint attribute. + /// + public readonly Outputs.MessageTemplateSystemEndpointAttributes? SystemEndpoint; + + [OutputConstructor] + private MessageTemplateSystemAttributes( + Outputs.MessageTemplateSystemEndpointAttributes? customerEndpoint, + + string? name, + + Outputs.MessageTemplateSystemEndpointAttributes? systemEndpoint) + { + CustomerEndpoint = customerEndpoint; + Name = name; + SystemEndpoint = systemEndpoint; + } + } +} diff --git a/sdk/dotnet/Wisdom/Outputs/MessageTemplateSystemEndpointAttributes.cs b/sdk/dotnet/Wisdom/Outputs/MessageTemplateSystemEndpointAttributes.cs new file mode 100644 index 0000000000..7fe172b2f6 --- /dev/null +++ b/sdk/dotnet/Wisdom/Outputs/MessageTemplateSystemEndpointAttributes.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.Wisdom.Outputs +{ + + /// + /// The system endpoint attributes that are used with the message template. + /// + [OutputType] + public sealed class MessageTemplateSystemEndpointAttributes + { + /// + /// The customer's phone number if used with customerEndpoint, or the number the customer dialed to call your contact center if used with systemEndpoint. + /// + public readonly string? Address; + + [OutputConstructor] + private MessageTemplateSystemEndpointAttributes(string? address) + { + Address = address; + } + } +} diff --git a/sdk/go/aws/autoscaling/autoScalingGroup.go b/sdk/go/aws/autoscaling/autoScalingGroup.go index 996deda97f..cf9668a8f8 100644 --- a/sdk/go/aws/autoscaling/autoScalingGroup.go +++ b/sdk/go/aws/autoscaling/autoScalingGroup.go @@ -31,7 +31,8 @@ type AutoScalingGroup struct { // A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the ``VPCZoneIdentifier`` property, or for attaching a network interface when an existing network interface ID is specified in a launch template. AvailabilityZones pulumi.StringArrayOutput `pulumi:"availabilityZones"` // Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see [Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the in the *Amazon EC2 Auto Scaling User Guide*. - CapacityRebalance pulumi.BoolPtrOutput `pulumi:"capacityRebalance"` + CapacityRebalance pulumi.BoolPtrOutput `pulumi:"capacityRebalance"` + // The capacity reservation specification. CapacityReservationSpecification AutoScalingGroupCapacityReservationSpecificationPtrOutput `pulumi:"capacityReservationSpecification"` // Reserved. Context pulumi.StringPtrOutput `pulumi:"context"` @@ -176,7 +177,8 @@ type autoScalingGroupArgs struct { // A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the ``VPCZoneIdentifier`` property, or for attaching a network interface when an existing network interface ID is specified in a launch template. AvailabilityZones []string `pulumi:"availabilityZones"` // Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see [Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the in the *Amazon EC2 Auto Scaling User Guide*. - CapacityRebalance *bool `pulumi:"capacityRebalance"` + CapacityRebalance *bool `pulumi:"capacityRebalance"` + // The capacity reservation specification. CapacityReservationSpecification *AutoScalingGroupCapacityReservationSpecification `pulumi:"capacityReservationSpecification"` // Reserved. Context *string `pulumi:"context"` @@ -272,7 +274,8 @@ type AutoScalingGroupArgs struct { // A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the ``VPCZoneIdentifier`` property, or for attaching a network interface when an existing network interface ID is specified in a launch template. AvailabilityZones pulumi.StringArrayInput // Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see [Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the in the *Amazon EC2 Auto Scaling User Guide*. - CapacityRebalance pulumi.BoolPtrInput + CapacityRebalance pulumi.BoolPtrInput + // The capacity reservation specification. CapacityReservationSpecification AutoScalingGroupCapacityReservationSpecificationPtrInput // Reserved. Context pulumi.StringPtrInput @@ -424,6 +427,7 @@ func (o AutoScalingGroupOutput) CapacityRebalance() pulumi.BoolPtrOutput { return o.ApplyT(func(v *AutoScalingGroup) pulumi.BoolPtrOutput { return v.CapacityRebalance }).(pulumi.BoolPtrOutput) } +// The capacity reservation specification. func (o AutoScalingGroupOutput) CapacityReservationSpecification() AutoScalingGroupCapacityReservationSpecificationPtrOutput { return o.ApplyT(func(v *AutoScalingGroup) AutoScalingGroupCapacityReservationSpecificationPtrOutput { return v.CapacityReservationSpecification diff --git a/sdk/go/aws/autoscaling/getAutoScalingGroup.go b/sdk/go/aws/autoscaling/getAutoScalingGroup.go index 3076841bda..2a77d1a6ed 100644 --- a/sdk/go/aws/autoscaling/getAutoScalingGroup.go +++ b/sdk/go/aws/autoscaling/getAutoScalingGroup.go @@ -41,7 +41,8 @@ type LookupAutoScalingGroupResult struct { // A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the ``VPCZoneIdentifier`` property, or for attaching a network interface when an existing network interface ID is specified in a launch template. AvailabilityZones []string `pulumi:"availabilityZones"` // Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see [Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the in the *Amazon EC2 Auto Scaling User Guide*. - CapacityRebalance *bool `pulumi:"capacityRebalance"` + CapacityRebalance *bool `pulumi:"capacityRebalance"` + // The capacity reservation specification. CapacityReservationSpecification *AutoScalingGroupCapacityReservationSpecification `pulumi:"capacityReservationSpecification"` // Reserved. Context *string `pulumi:"context"` @@ -188,6 +189,7 @@ func (o LookupAutoScalingGroupResultOutput) CapacityRebalance() pulumi.BoolPtrOu return o.ApplyT(func(v LookupAutoScalingGroupResult) *bool { return v.CapacityRebalance }).(pulumi.BoolPtrOutput) } +// The capacity reservation specification. func (o LookupAutoScalingGroupResultOutput) CapacityReservationSpecification() AutoScalingGroupCapacityReservationSpecificationPtrOutput { return o.ApplyT(func(v LookupAutoScalingGroupResult) *AutoScalingGroupCapacityReservationSpecification { return v.CapacityReservationSpecification diff --git a/sdk/go/aws/autoscaling/pulumiTypes.go b/sdk/go/aws/autoscaling/pulumiTypes.go index 87db17b6f7..8359835c9b 100644 --- a/sdk/go/aws/autoscaling/pulumiTypes.go +++ b/sdk/go/aws/autoscaling/pulumiTypes.go @@ -800,6 +800,7 @@ func (o AutoScalingGroupBaselineEbsBandwidthMbpsRequestPtrOutput) Min() pulumi.I } type AutoScalingGroupBaselinePerformanceFactorsRequest struct { + // The CPU performance to consider, using an instance family as the baseline reference. Cpu *AutoScalingGroupCpuPerformanceFactorRequest `pulumi:"cpu"` } @@ -815,6 +816,7 @@ type AutoScalingGroupBaselinePerformanceFactorsRequestInput interface { } type AutoScalingGroupBaselinePerformanceFactorsRequestArgs struct { + // The CPU performance to consider, using an instance family as the baseline reference. Cpu AutoScalingGroupCpuPerformanceFactorRequestPtrInput `pulumi:"cpu"` } @@ -895,6 +897,7 @@ func (o AutoScalingGroupBaselinePerformanceFactorsRequestOutput) ToAutoScalingGr }).(AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput) } +// The CPU performance to consider, using an instance family as the baseline reference. func (o AutoScalingGroupBaselinePerformanceFactorsRequestOutput) Cpu() AutoScalingGroupCpuPerformanceFactorRequestPtrOutput { return o.ApplyT(func(v AutoScalingGroupBaselinePerformanceFactorsRequest) *AutoScalingGroupCpuPerformanceFactorRequest { return v.Cpu @@ -925,6 +928,7 @@ func (o AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput) Elem() AutoS }).(AutoScalingGroupBaselinePerformanceFactorsRequestOutput) } +// The CPU performance to consider, using an instance family as the baseline reference. func (o AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput) Cpu() AutoScalingGroupCpuPerformanceFactorRequestPtrOutput { return o.ApplyT(func(v *AutoScalingGroupBaselinePerformanceFactorsRequest) *AutoScalingGroupCpuPerformanceFactorRequest { if v == nil { @@ -935,8 +939,15 @@ func (o AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput) Cpu() AutoSc } type AutoScalingGroupCapacityReservationSpecification struct { - CapacityReservationPreference string `pulumi:"capacityReservationPreference"` - CapacityReservationTarget *AutoScalingGroupCapacityReservationTarget `pulumi:"capacityReservationTarget"` + // The capacity reservation preference. The following options are available: + // + // - `capacity-reservations-only` - Auto Scaling will only launch instances into a Capacity Reservation or Capacity Reservation resource group. If capacity isn't available, instances will fail to launch. + // - `capacity-reservations-first` - Auto Scaling will try to launch instances into a Capacity Reservation or Capacity Reservation resource group first. If capacity isn't available, instances will run in On-Demand capacity. + // - `none` - Auto Scaling will not launch instances into a Capacity Reservation. Instances will run in On-Demand capacity. + // - `default` - Auto Scaling uses the Capacity Reservation preference from your launch template or an open Capacity Reservation. + CapacityReservationPreference string `pulumi:"capacityReservationPreference"` + // Describes a target Capacity Reservation or Capacity Reservation resource group. + CapacityReservationTarget *AutoScalingGroupCapacityReservationTarget `pulumi:"capacityReservationTarget"` } // AutoScalingGroupCapacityReservationSpecificationInput is an input type that accepts AutoScalingGroupCapacityReservationSpecificationArgs and AutoScalingGroupCapacityReservationSpecificationOutput values. @@ -951,8 +962,15 @@ type AutoScalingGroupCapacityReservationSpecificationInput interface { } type AutoScalingGroupCapacityReservationSpecificationArgs struct { - CapacityReservationPreference pulumi.StringInput `pulumi:"capacityReservationPreference"` - CapacityReservationTarget AutoScalingGroupCapacityReservationTargetPtrInput `pulumi:"capacityReservationTarget"` + // The capacity reservation preference. The following options are available: + // + // - `capacity-reservations-only` - Auto Scaling will only launch instances into a Capacity Reservation or Capacity Reservation resource group. If capacity isn't available, instances will fail to launch. + // - `capacity-reservations-first` - Auto Scaling will try to launch instances into a Capacity Reservation or Capacity Reservation resource group first. If capacity isn't available, instances will run in On-Demand capacity. + // - `none` - Auto Scaling will not launch instances into a Capacity Reservation. Instances will run in On-Demand capacity. + // - `default` - Auto Scaling uses the Capacity Reservation preference from your launch template or an open Capacity Reservation. + CapacityReservationPreference pulumi.StringInput `pulumi:"capacityReservationPreference"` + // Describes a target Capacity Reservation or Capacity Reservation resource group. + CapacityReservationTarget AutoScalingGroupCapacityReservationTargetPtrInput `pulumi:"capacityReservationTarget"` } func (AutoScalingGroupCapacityReservationSpecificationArgs) ElementType() reflect.Type { @@ -1032,12 +1050,19 @@ func (o AutoScalingGroupCapacityReservationSpecificationOutput) ToAutoScalingGro }).(AutoScalingGroupCapacityReservationSpecificationPtrOutput) } +// The capacity reservation preference. The following options are available: +// +// - `capacity-reservations-only` - Auto Scaling will only launch instances into a Capacity Reservation or Capacity Reservation resource group. If capacity isn't available, instances will fail to launch. +// - `capacity-reservations-first` - Auto Scaling will try to launch instances into a Capacity Reservation or Capacity Reservation resource group first. If capacity isn't available, instances will run in On-Demand capacity. +// - `none` - Auto Scaling will not launch instances into a Capacity Reservation. Instances will run in On-Demand capacity. +// - `default` - Auto Scaling uses the Capacity Reservation preference from your launch template or an open Capacity Reservation. func (o AutoScalingGroupCapacityReservationSpecificationOutput) CapacityReservationPreference() pulumi.StringOutput { return o.ApplyT(func(v AutoScalingGroupCapacityReservationSpecification) string { return v.CapacityReservationPreference }).(pulumi.StringOutput) } +// Describes a target Capacity Reservation or Capacity Reservation resource group. func (o AutoScalingGroupCapacityReservationSpecificationOutput) CapacityReservationTarget() AutoScalingGroupCapacityReservationTargetPtrOutput { return o.ApplyT(func(v AutoScalingGroupCapacityReservationSpecification) *AutoScalingGroupCapacityReservationTarget { return v.CapacityReservationTarget @@ -1068,6 +1093,12 @@ func (o AutoScalingGroupCapacityReservationSpecificationPtrOutput) Elem() AutoSc }).(AutoScalingGroupCapacityReservationSpecificationOutput) } +// The capacity reservation preference. The following options are available: +// +// - `capacity-reservations-only` - Auto Scaling will only launch instances into a Capacity Reservation or Capacity Reservation resource group. If capacity isn't available, instances will fail to launch. +// - `capacity-reservations-first` - Auto Scaling will try to launch instances into a Capacity Reservation or Capacity Reservation resource group first. If capacity isn't available, instances will run in On-Demand capacity. +// - `none` - Auto Scaling will not launch instances into a Capacity Reservation. Instances will run in On-Demand capacity. +// - `default` - Auto Scaling uses the Capacity Reservation preference from your launch template or an open Capacity Reservation. func (o AutoScalingGroupCapacityReservationSpecificationPtrOutput) CapacityReservationPreference() pulumi.StringPtrOutput { return o.ApplyT(func(v *AutoScalingGroupCapacityReservationSpecification) *string { if v == nil { @@ -1077,6 +1108,7 @@ func (o AutoScalingGroupCapacityReservationSpecificationPtrOutput) CapacityReser }).(pulumi.StringPtrOutput) } +// Describes a target Capacity Reservation or Capacity Reservation resource group. func (o AutoScalingGroupCapacityReservationSpecificationPtrOutput) CapacityReservationTarget() AutoScalingGroupCapacityReservationTargetPtrOutput { return o.ApplyT(func(v *AutoScalingGroupCapacityReservationSpecification) *AutoScalingGroupCapacityReservationTarget { if v == nil { @@ -1087,7 +1119,9 @@ func (o AutoScalingGroupCapacityReservationSpecificationPtrOutput) CapacityReser } type AutoScalingGroupCapacityReservationTarget struct { - CapacityReservationIds []string `pulumi:"capacityReservationIds"` + // The Capacity Reservation IDs to launch instances into. + CapacityReservationIds []string `pulumi:"capacityReservationIds"` + // The resource group ARNs of the Capacity Reservation to launch instances into. CapacityReservationResourceGroupArns []string `pulumi:"capacityReservationResourceGroupArns"` } @@ -1103,7 +1137,9 @@ type AutoScalingGroupCapacityReservationTargetInput interface { } type AutoScalingGroupCapacityReservationTargetArgs struct { - CapacityReservationIds pulumi.StringArrayInput `pulumi:"capacityReservationIds"` + // The Capacity Reservation IDs to launch instances into. + CapacityReservationIds pulumi.StringArrayInput `pulumi:"capacityReservationIds"` + // The resource group ARNs of the Capacity Reservation to launch instances into. CapacityReservationResourceGroupArns pulumi.StringArrayInput `pulumi:"capacityReservationResourceGroupArns"` } @@ -1184,10 +1220,12 @@ func (o AutoScalingGroupCapacityReservationTargetOutput) ToAutoScalingGroupCapac }).(AutoScalingGroupCapacityReservationTargetPtrOutput) } +// The Capacity Reservation IDs to launch instances into. func (o AutoScalingGroupCapacityReservationTargetOutput) CapacityReservationIds() pulumi.StringArrayOutput { return o.ApplyT(func(v AutoScalingGroupCapacityReservationTarget) []string { return v.CapacityReservationIds }).(pulumi.StringArrayOutput) } +// The resource group ARNs of the Capacity Reservation to launch instances into. func (o AutoScalingGroupCapacityReservationTargetOutput) CapacityReservationResourceGroupArns() pulumi.StringArrayOutput { return o.ApplyT(func(v AutoScalingGroupCapacityReservationTarget) []string { return v.CapacityReservationResourceGroupArns @@ -1218,6 +1256,7 @@ func (o AutoScalingGroupCapacityReservationTargetPtrOutput) Elem() AutoScalingGr }).(AutoScalingGroupCapacityReservationTargetOutput) } +// The Capacity Reservation IDs to launch instances into. func (o AutoScalingGroupCapacityReservationTargetPtrOutput) CapacityReservationIds() pulumi.StringArrayOutput { return o.ApplyT(func(v *AutoScalingGroupCapacityReservationTarget) []string { if v == nil { @@ -1227,6 +1266,7 @@ func (o AutoScalingGroupCapacityReservationTargetPtrOutput) CapacityReservationI }).(pulumi.StringArrayOutput) } +// The resource group ARNs of the Capacity Reservation to launch instances into. func (o AutoScalingGroupCapacityReservationTargetPtrOutput) CapacityReservationResourceGroupArns() pulumi.StringArrayOutput { return o.ApplyT(func(v *AutoScalingGroupCapacityReservationTarget) []string { if v == nil { @@ -1237,6 +1277,9 @@ func (o AutoScalingGroupCapacityReservationTargetPtrOutput) CapacityReservationR } type AutoScalingGroupCpuPerformanceFactorRequest struct { + // Specify an instance family to use as the baseline reference for CPU performance. All instance types that match your specified attributes will be compared against the CPU performance of the referenced instance family, regardless of CPU manufacturer or architecture differences. + // + // > Currently only one instance family can be specified in the list. References []AutoScalingGroupPerformanceFactorReferenceRequest `pulumi:"references"` } @@ -1252,6 +1295,9 @@ type AutoScalingGroupCpuPerformanceFactorRequestInput interface { } type AutoScalingGroupCpuPerformanceFactorRequestArgs struct { + // Specify an instance family to use as the baseline reference for CPU performance. All instance types that match your specified attributes will be compared against the CPU performance of the referenced instance family, regardless of CPU manufacturer or architecture differences. + // + // > Currently only one instance family can be specified in the list. References AutoScalingGroupPerformanceFactorReferenceRequestArrayInput `pulumi:"references"` } @@ -1332,6 +1378,9 @@ func (o AutoScalingGroupCpuPerformanceFactorRequestOutput) ToAutoScalingGroupCpu }).(AutoScalingGroupCpuPerformanceFactorRequestPtrOutput) } +// Specify an instance family to use as the baseline reference for CPU performance. All instance types that match your specified attributes will be compared against the CPU performance of the referenced instance family, regardless of CPU manufacturer or architecture differences. +// +// > Currently only one instance family can be specified in the list. func (o AutoScalingGroupCpuPerformanceFactorRequestOutput) References() AutoScalingGroupPerformanceFactorReferenceRequestArrayOutput { return o.ApplyT(func(v AutoScalingGroupCpuPerformanceFactorRequest) []AutoScalingGroupPerformanceFactorReferenceRequest { return v.References @@ -1362,6 +1411,9 @@ func (o AutoScalingGroupCpuPerformanceFactorRequestPtrOutput) Elem() AutoScaling }).(AutoScalingGroupCpuPerformanceFactorRequestOutput) } +// Specify an instance family to use as the baseline reference for CPU performance. All instance types that match your specified attributes will be compared against the CPU performance of the referenced instance family, regardless of CPU manufacturer or architecture differences. +// +// > Currently only one instance family can be specified in the list. func (o AutoScalingGroupCpuPerformanceFactorRequestPtrOutput) References() AutoScalingGroupPerformanceFactorReferenceRequestArrayOutput { return o.ApplyT(func(v *AutoScalingGroupCpuPerformanceFactorRequest) []AutoScalingGroupPerformanceFactorReferenceRequest { if v == nil { @@ -1598,7 +1650,8 @@ type AutoScalingGroupInstanceRequirements struct { BareMetal *string `pulumi:"bareMetal"` // The minimum and maximum baseline bandwidth performance for an instance type, in Mbps. For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide for Linux Instances*. // Default: No minimum or maximum limits - BaselineEbsBandwidthMbps *AutoScalingGroupBaselineEbsBandwidthMbpsRequest `pulumi:"baselineEbsBandwidthMbps"` + BaselineEbsBandwidthMbps *AutoScalingGroupBaselineEbsBandwidthMbpsRequest `pulumi:"baselineEbsBandwidthMbps"` + // The baseline performance factors for the instance requirements. BaselinePerformanceFactors *AutoScalingGroupBaselinePerformanceFactorsRequest `pulumi:"baselinePerformanceFactors"` // Indicates whether burstable performance instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*. // Default: ``excluded`` @@ -1735,7 +1788,8 @@ type AutoScalingGroupInstanceRequirementsArgs struct { BareMetal pulumi.StringPtrInput `pulumi:"bareMetal"` // The minimum and maximum baseline bandwidth performance for an instance type, in Mbps. For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide for Linux Instances*. // Default: No minimum or maximum limits - BaselineEbsBandwidthMbps AutoScalingGroupBaselineEbsBandwidthMbpsRequestPtrInput `pulumi:"baselineEbsBandwidthMbps"` + BaselineEbsBandwidthMbps AutoScalingGroupBaselineEbsBandwidthMbpsRequestPtrInput `pulumi:"baselineEbsBandwidthMbps"` + // The baseline performance factors for the instance requirements. BaselinePerformanceFactors AutoScalingGroupBaselinePerformanceFactorsRequestPtrInput `pulumi:"baselinePerformanceFactors"` // Indicates whether burstable performance instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*. // Default: ``excluded`` @@ -1987,6 +2041,7 @@ func (o AutoScalingGroupInstanceRequirementsOutput) BaselineEbsBandwidthMbps() A }).(AutoScalingGroupBaselineEbsBandwidthMbpsRequestPtrOutput) } +// The baseline performance factors for the instance requirements. func (o AutoScalingGroupInstanceRequirementsOutput) BaselinePerformanceFactors() AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput { return o.ApplyT(func(v AutoScalingGroupInstanceRequirements) *AutoScalingGroupBaselinePerformanceFactorsRequest { return v.BaselinePerformanceFactors @@ -2287,6 +2342,7 @@ func (o AutoScalingGroupInstanceRequirementsPtrOutput) BaselineEbsBandwidthMbps( }).(AutoScalingGroupBaselineEbsBandwidthMbpsRequestPtrOutput) } +// The baseline performance factors for the instance requirements. func (o AutoScalingGroupInstanceRequirementsPtrOutput) BaselinePerformanceFactors() AutoScalingGroupBaselinePerformanceFactorsRequestPtrOutput { return o.ApplyT(func(v *AutoScalingGroupInstanceRequirements) *AutoScalingGroupBaselinePerformanceFactorsRequest { if v == nil { diff --git a/sdk/go/aws/chatbot/customAction.go b/sdk/go/aws/chatbot/customAction.go new file mode 100644 index 0000000000..8c09c1d6c2 --- /dev/null +++ b/sdk/go/aws/chatbot/customAction.go @@ -0,0 +1,155 @@ +// 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 chatbot + +import ( + "context" + "reflect" + + "errors" + "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" +) + +// Definition of AWS::Chatbot::CustomAction Resource Type +type CustomAction struct { + pulumi.CustomResourceState + + ActionName pulumi.StringOutput `pulumi:"actionName"` + AliasName pulumi.StringPtrOutput `pulumi:"aliasName"` + Attachments CustomActionAttachmentArrayOutput `pulumi:"attachments"` + CustomActionArn pulumi.StringOutput `pulumi:"customActionArn"` + Definition CustomActionDefinitionOutput `pulumi:"definition"` + Tags aws.TagArrayOutput `pulumi:"tags"` +} + +// NewCustomAction registers a new resource with the given unique name, arguments, and options. +func NewCustomAction(ctx *pulumi.Context, + name string, args *CustomActionArgs, opts ...pulumi.ResourceOption) (*CustomAction, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Definition == nil { + return nil, errors.New("invalid value for required argument 'Definition'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "actionName", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource CustomAction + err := ctx.RegisterResource("aws-native:chatbot:CustomAction", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetCustomAction gets an existing CustomAction 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 GetCustomAction(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *CustomActionState, opts ...pulumi.ResourceOption) (*CustomAction, error) { + var resource CustomAction + err := ctx.ReadResource("aws-native:chatbot:CustomAction", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering CustomAction resources. +type customActionState struct { +} + +type CustomActionState struct { +} + +func (CustomActionState) ElementType() reflect.Type { + return reflect.TypeOf((*customActionState)(nil)).Elem() +} + +type customActionArgs struct { + ActionName *string `pulumi:"actionName"` + AliasName *string `pulumi:"aliasName"` + Attachments []CustomActionAttachment `pulumi:"attachments"` + Definition CustomActionDefinition `pulumi:"definition"` + Tags []aws.Tag `pulumi:"tags"` +} + +// The set of arguments for constructing a CustomAction resource. +type CustomActionArgs struct { + ActionName pulumi.StringPtrInput + AliasName pulumi.StringPtrInput + Attachments CustomActionAttachmentArrayInput + Definition CustomActionDefinitionInput + Tags aws.TagArrayInput +} + +func (CustomActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*customActionArgs)(nil)).Elem() +} + +type CustomActionInput interface { + pulumi.Input + + ToCustomActionOutput() CustomActionOutput + ToCustomActionOutputWithContext(ctx context.Context) CustomActionOutput +} + +func (*CustomAction) ElementType() reflect.Type { + return reflect.TypeOf((**CustomAction)(nil)).Elem() +} + +func (i *CustomAction) ToCustomActionOutput() CustomActionOutput { + return i.ToCustomActionOutputWithContext(context.Background()) +} + +func (i *CustomAction) ToCustomActionOutputWithContext(ctx context.Context) CustomActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomActionOutput) +} + +type CustomActionOutput struct{ *pulumi.OutputState } + +func (CustomActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CustomAction)(nil)).Elem() +} + +func (o CustomActionOutput) ToCustomActionOutput() CustomActionOutput { + return o +} + +func (o CustomActionOutput) ToCustomActionOutputWithContext(ctx context.Context) CustomActionOutput { + return o +} + +func (o CustomActionOutput) ActionName() pulumi.StringOutput { + return o.ApplyT(func(v *CustomAction) pulumi.StringOutput { return v.ActionName }).(pulumi.StringOutput) +} + +func (o CustomActionOutput) AliasName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CustomAction) pulumi.StringPtrOutput { return v.AliasName }).(pulumi.StringPtrOutput) +} + +func (o CustomActionOutput) Attachments() CustomActionAttachmentArrayOutput { + return o.ApplyT(func(v *CustomAction) CustomActionAttachmentArrayOutput { return v.Attachments }).(CustomActionAttachmentArrayOutput) +} + +func (o CustomActionOutput) CustomActionArn() pulumi.StringOutput { + return o.ApplyT(func(v *CustomAction) pulumi.StringOutput { return v.CustomActionArn }).(pulumi.StringOutput) +} + +func (o CustomActionOutput) Definition() CustomActionDefinitionOutput { + return o.ApplyT(func(v *CustomAction) CustomActionDefinitionOutput { return v.Definition }).(CustomActionDefinitionOutput) +} + +func (o CustomActionOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v *CustomAction) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*CustomActionInput)(nil)).Elem(), &CustomAction{}) + pulumi.RegisterOutputType(CustomActionOutput{}) +} diff --git a/sdk/go/aws/chatbot/getCustomAction.go b/sdk/go/aws/chatbot/getCustomAction.go new file mode 100644 index 0000000000..c696ffa18c --- /dev/null +++ b/sdk/go/aws/chatbot/getCustomAction.go @@ -0,0 +1,101 @@ +// 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 chatbot + +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" +) + +// Definition of AWS::Chatbot::CustomAction Resource Type +func LookupCustomAction(ctx *pulumi.Context, args *LookupCustomActionArgs, opts ...pulumi.InvokeOption) (*LookupCustomActionResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupCustomActionResult + err := ctx.Invoke("aws-native:chatbot:getCustomAction", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupCustomActionArgs struct { + CustomActionArn string `pulumi:"customActionArn"` +} + +type LookupCustomActionResult struct { + AliasName *string `pulumi:"aliasName"` + Attachments []CustomActionAttachment `pulumi:"attachments"` + CustomActionArn *string `pulumi:"customActionArn"` + Definition *CustomActionDefinition `pulumi:"definition"` + Tags []aws.Tag `pulumi:"tags"` +} + +func LookupCustomActionOutput(ctx *pulumi.Context, args LookupCustomActionOutputArgs, opts ...pulumi.InvokeOption) LookupCustomActionResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupCustomActionResultOutput, error) { + args := v.(LookupCustomActionArgs) + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupCustomActionResult + secret, err := ctx.InvokePackageRaw("aws-native:chatbot:getCustomAction", args, &rv, "", opts...) + if err != nil { + return LookupCustomActionResultOutput{}, err + } + + output := pulumi.ToOutput(rv).(LookupCustomActionResultOutput) + if secret { + return pulumi.ToSecret(output).(LookupCustomActionResultOutput), nil + } + return output, nil + }).(LookupCustomActionResultOutput) +} + +type LookupCustomActionOutputArgs struct { + CustomActionArn pulumi.StringInput `pulumi:"customActionArn"` +} + +func (LookupCustomActionOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupCustomActionArgs)(nil)).Elem() +} + +type LookupCustomActionResultOutput struct{ *pulumi.OutputState } + +func (LookupCustomActionResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupCustomActionResult)(nil)).Elem() +} + +func (o LookupCustomActionResultOutput) ToLookupCustomActionResultOutput() LookupCustomActionResultOutput { + return o +} + +func (o LookupCustomActionResultOutput) ToLookupCustomActionResultOutputWithContext(ctx context.Context) LookupCustomActionResultOutput { + return o +} + +func (o LookupCustomActionResultOutput) AliasName() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupCustomActionResult) *string { return v.AliasName }).(pulumi.StringPtrOutput) +} + +func (o LookupCustomActionResultOutput) Attachments() CustomActionAttachmentArrayOutput { + return o.ApplyT(func(v LookupCustomActionResult) []CustomActionAttachment { return v.Attachments }).(CustomActionAttachmentArrayOutput) +} + +func (o LookupCustomActionResultOutput) CustomActionArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupCustomActionResult) *string { return v.CustomActionArn }).(pulumi.StringPtrOutput) +} + +func (o LookupCustomActionResultOutput) Definition() CustomActionDefinitionPtrOutput { + return o.ApplyT(func(v LookupCustomActionResult) *CustomActionDefinition { return v.Definition }).(CustomActionDefinitionPtrOutput) +} + +func (o LookupCustomActionResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupCustomActionResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupCustomActionResultOutput{}) +} diff --git a/sdk/go/aws/chatbot/getMicrosoftTeamsChannelConfiguration.go b/sdk/go/aws/chatbot/getMicrosoftTeamsChannelConfiguration.go index 8c815dc5b5..ae15993207 100644 --- a/sdk/go/aws/chatbot/getMicrosoftTeamsChannelConfiguration.go +++ b/sdk/go/aws/chatbot/getMicrosoftTeamsChannelConfiguration.go @@ -31,6 +31,8 @@ type LookupMicrosoftTeamsChannelConfigurationArgs struct { type LookupMicrosoftTeamsChannelConfigurationResult struct { // Amazon Resource Name (ARN) of the configuration Arn *string `pulumi:"arn"` + // ARNs of Custom Actions to associate with notifications in the provided chat channel. + CustomizationResourceArns []string `pulumi:"customizationResourceArns"` // The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. GuardrailPolicies []string `pulumi:"guardrailPolicies"` // The ARN of the IAM role that defines the permissions for AWS Chatbot @@ -94,6 +96,11 @@ func (o LookupMicrosoftTeamsChannelConfigurationResultOutput) Arn() pulumi.Strin return o.ApplyT(func(v LookupMicrosoftTeamsChannelConfigurationResult) *string { return v.Arn }).(pulumi.StringPtrOutput) } +// ARNs of Custom Actions to associate with notifications in the provided chat channel. +func (o LookupMicrosoftTeamsChannelConfigurationResultOutput) CustomizationResourceArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupMicrosoftTeamsChannelConfigurationResult) []string { return v.CustomizationResourceArns }).(pulumi.StringArrayOutput) +} + // The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. func (o LookupMicrosoftTeamsChannelConfigurationResultOutput) GuardrailPolicies() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupMicrosoftTeamsChannelConfigurationResult) []string { return v.GuardrailPolicies }).(pulumi.StringArrayOutput) diff --git a/sdk/go/aws/chatbot/getSlackChannelConfiguration.go b/sdk/go/aws/chatbot/getSlackChannelConfiguration.go index 0fbfa953c6..d52583ad5c 100644 --- a/sdk/go/aws/chatbot/getSlackChannelConfiguration.go +++ b/sdk/go/aws/chatbot/getSlackChannelConfiguration.go @@ -31,6 +31,8 @@ type LookupSlackChannelConfigurationArgs struct { type LookupSlackChannelConfigurationResult struct { // Amazon Resource Name (ARN) of the configuration Arn *string `pulumi:"arn"` + // ARNs of Custom Actions to associate with notifications in the provided chat channel. + CustomizationResourceArns []string `pulumi:"customizationResourceArns"` // The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. GuardrailPolicies []string `pulumi:"guardrailPolicies"` // The ARN of the IAM role that defines the permissions for AWS Chatbot @@ -94,6 +96,11 @@ func (o LookupSlackChannelConfigurationResultOutput) Arn() pulumi.StringPtrOutpu return o.ApplyT(func(v LookupSlackChannelConfigurationResult) *string { return v.Arn }).(pulumi.StringPtrOutput) } +// ARNs of Custom Actions to associate with notifications in the provided chat channel. +func (o LookupSlackChannelConfigurationResultOutput) CustomizationResourceArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupSlackChannelConfigurationResult) []string { return v.CustomizationResourceArns }).(pulumi.StringArrayOutput) +} + // The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. func (o LookupSlackChannelConfigurationResultOutput) GuardrailPolicies() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupSlackChannelConfigurationResult) []string { return v.GuardrailPolicies }).(pulumi.StringArrayOutput) diff --git a/sdk/go/aws/chatbot/init.go b/sdk/go/aws/chatbot/init.go index 1a32ebdf40..3ce0305aa1 100644 --- a/sdk/go/aws/chatbot/init.go +++ b/sdk/go/aws/chatbot/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:chatbot:CustomAction": + r = &CustomAction{} case "aws-native:chatbot:MicrosoftTeamsChannelConfiguration": r = &MicrosoftTeamsChannelConfiguration{} case "aws-native:chatbot:SlackChannelConfiguration": diff --git a/sdk/go/aws/chatbot/microsoftTeamsChannelConfiguration.go b/sdk/go/aws/chatbot/microsoftTeamsChannelConfiguration.go index 0b1afd74e1..d0aeafe139 100644 --- a/sdk/go/aws/chatbot/microsoftTeamsChannelConfiguration.go +++ b/sdk/go/aws/chatbot/microsoftTeamsChannelConfiguration.go @@ -21,6 +21,8 @@ type MicrosoftTeamsChannelConfiguration struct { Arn pulumi.StringOutput `pulumi:"arn"` // The name of the configuration ConfigurationName pulumi.StringOutput `pulumi:"configurationName"` + // ARNs of Custom Actions to associate with notifications in the provided chat channel. + CustomizationResourceArns pulumi.StringArrayOutput `pulumi:"customizationResourceArns"` // The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. GuardrailPolicies pulumi.StringArrayOutput `pulumi:"guardrailPolicies"` // The ARN of the IAM role that defines the permissions for AWS Chatbot @@ -101,6 +103,8 @@ func (MicrosoftTeamsChannelConfigurationState) ElementType() reflect.Type { type microsoftTeamsChannelConfigurationArgs struct { // The name of the configuration ConfigurationName *string `pulumi:"configurationName"` + // ARNs of Custom Actions to associate with notifications in the provided chat channel. + CustomizationResourceArns []string `pulumi:"customizationResourceArns"` // The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. GuardrailPolicies []string `pulumi:"guardrailPolicies"` // The ARN of the IAM role that defines the permissions for AWS Chatbot @@ -125,6 +129,8 @@ type microsoftTeamsChannelConfigurationArgs struct { type MicrosoftTeamsChannelConfigurationArgs struct { // The name of the configuration ConfigurationName pulumi.StringPtrInput + // ARNs of Custom Actions to associate with notifications in the provided chat channel. + CustomizationResourceArns pulumi.StringArrayInput // The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. GuardrailPolicies pulumi.StringArrayInput // The ARN of the IAM role that defines the permissions for AWS Chatbot @@ -192,6 +198,13 @@ func (o MicrosoftTeamsChannelConfigurationOutput) ConfigurationName() pulumi.Str return o.ApplyT(func(v *MicrosoftTeamsChannelConfiguration) pulumi.StringOutput { return v.ConfigurationName }).(pulumi.StringOutput) } +// ARNs of Custom Actions to associate with notifications in the provided chat channel. +func (o MicrosoftTeamsChannelConfigurationOutput) CustomizationResourceArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v *MicrosoftTeamsChannelConfiguration) pulumi.StringArrayOutput { + return v.CustomizationResourceArns + }).(pulumi.StringArrayOutput) +} + // The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. func (o MicrosoftTeamsChannelConfigurationOutput) GuardrailPolicies() pulumi.StringArrayOutput { return o.ApplyT(func(v *MicrosoftTeamsChannelConfiguration) pulumi.StringArrayOutput { return v.GuardrailPolicies }).(pulumi.StringArrayOutput) diff --git a/sdk/go/aws/chatbot/pulumiEnums.go b/sdk/go/aws/chatbot/pulumiEnums.go new file mode 100644 index 0000000000..0cb54aae8f --- /dev/null +++ b/sdk/go/aws/chatbot/pulumiEnums.go @@ -0,0 +1,183 @@ +// 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 chatbot + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type CustomActionAttachmentCriteriaOperator string + +const ( + CustomActionAttachmentCriteriaOperatorHasValue = CustomActionAttachmentCriteriaOperator("HAS_VALUE") + CustomActionAttachmentCriteriaOperatorEquals = CustomActionAttachmentCriteriaOperator("EQUALS") +) + +func (CustomActionAttachmentCriteriaOperator) ElementType() reflect.Type { + return reflect.TypeOf((*CustomActionAttachmentCriteriaOperator)(nil)).Elem() +} + +func (e CustomActionAttachmentCriteriaOperator) ToCustomActionAttachmentCriteriaOperatorOutput() CustomActionAttachmentCriteriaOperatorOutput { + return pulumi.ToOutput(e).(CustomActionAttachmentCriteriaOperatorOutput) +} + +func (e CustomActionAttachmentCriteriaOperator) ToCustomActionAttachmentCriteriaOperatorOutputWithContext(ctx context.Context) CustomActionAttachmentCriteriaOperatorOutput { + return pulumi.ToOutputWithContext(ctx, e).(CustomActionAttachmentCriteriaOperatorOutput) +} + +func (e CustomActionAttachmentCriteriaOperator) ToCustomActionAttachmentCriteriaOperatorPtrOutput() CustomActionAttachmentCriteriaOperatorPtrOutput { + return e.ToCustomActionAttachmentCriteriaOperatorPtrOutputWithContext(context.Background()) +} + +func (e CustomActionAttachmentCriteriaOperator) ToCustomActionAttachmentCriteriaOperatorPtrOutputWithContext(ctx context.Context) CustomActionAttachmentCriteriaOperatorPtrOutput { + return CustomActionAttachmentCriteriaOperator(e).ToCustomActionAttachmentCriteriaOperatorOutputWithContext(ctx).ToCustomActionAttachmentCriteriaOperatorPtrOutputWithContext(ctx) +} + +func (e CustomActionAttachmentCriteriaOperator) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e CustomActionAttachmentCriteriaOperator) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e CustomActionAttachmentCriteriaOperator) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e CustomActionAttachmentCriteriaOperator) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type CustomActionAttachmentCriteriaOperatorOutput struct{ *pulumi.OutputState } + +func (CustomActionAttachmentCriteriaOperatorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CustomActionAttachmentCriteriaOperator)(nil)).Elem() +} + +func (o CustomActionAttachmentCriteriaOperatorOutput) ToCustomActionAttachmentCriteriaOperatorOutput() CustomActionAttachmentCriteriaOperatorOutput { + return o +} + +func (o CustomActionAttachmentCriteriaOperatorOutput) ToCustomActionAttachmentCriteriaOperatorOutputWithContext(ctx context.Context) CustomActionAttachmentCriteriaOperatorOutput { + return o +} + +func (o CustomActionAttachmentCriteriaOperatorOutput) ToCustomActionAttachmentCriteriaOperatorPtrOutput() CustomActionAttachmentCriteriaOperatorPtrOutput { + return o.ToCustomActionAttachmentCriteriaOperatorPtrOutputWithContext(context.Background()) +} + +func (o CustomActionAttachmentCriteriaOperatorOutput) ToCustomActionAttachmentCriteriaOperatorPtrOutputWithContext(ctx context.Context) CustomActionAttachmentCriteriaOperatorPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CustomActionAttachmentCriteriaOperator) *CustomActionAttachmentCriteriaOperator { + return &v + }).(CustomActionAttachmentCriteriaOperatorPtrOutput) +} + +func (o CustomActionAttachmentCriteriaOperatorOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o CustomActionAttachmentCriteriaOperatorOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e CustomActionAttachmentCriteriaOperator) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o CustomActionAttachmentCriteriaOperatorOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o CustomActionAttachmentCriteriaOperatorOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e CustomActionAttachmentCriteriaOperator) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type CustomActionAttachmentCriteriaOperatorPtrOutput struct{ *pulumi.OutputState } + +func (CustomActionAttachmentCriteriaOperatorPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CustomActionAttachmentCriteriaOperator)(nil)).Elem() +} + +func (o CustomActionAttachmentCriteriaOperatorPtrOutput) ToCustomActionAttachmentCriteriaOperatorPtrOutput() CustomActionAttachmentCriteriaOperatorPtrOutput { + return o +} + +func (o CustomActionAttachmentCriteriaOperatorPtrOutput) ToCustomActionAttachmentCriteriaOperatorPtrOutputWithContext(ctx context.Context) CustomActionAttachmentCriteriaOperatorPtrOutput { + return o +} + +func (o CustomActionAttachmentCriteriaOperatorPtrOutput) Elem() CustomActionAttachmentCriteriaOperatorOutput { + return o.ApplyT(func(v *CustomActionAttachmentCriteriaOperator) CustomActionAttachmentCriteriaOperator { + if v != nil { + return *v + } + var ret CustomActionAttachmentCriteriaOperator + return ret + }).(CustomActionAttachmentCriteriaOperatorOutput) +} + +func (o CustomActionAttachmentCriteriaOperatorPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o CustomActionAttachmentCriteriaOperatorPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *CustomActionAttachmentCriteriaOperator) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// CustomActionAttachmentCriteriaOperatorInput is an input type that accepts values of the CustomActionAttachmentCriteriaOperator enum +// A concrete instance of `CustomActionAttachmentCriteriaOperatorInput` can be one of the following: +// +// CustomActionAttachmentCriteriaOperatorHasValue +// CustomActionAttachmentCriteriaOperatorEquals +type CustomActionAttachmentCriteriaOperatorInput interface { + pulumi.Input + + ToCustomActionAttachmentCriteriaOperatorOutput() CustomActionAttachmentCriteriaOperatorOutput + ToCustomActionAttachmentCriteriaOperatorOutputWithContext(context.Context) CustomActionAttachmentCriteriaOperatorOutput +} + +var customActionAttachmentCriteriaOperatorPtrType = reflect.TypeOf((**CustomActionAttachmentCriteriaOperator)(nil)).Elem() + +type CustomActionAttachmentCriteriaOperatorPtrInput interface { + pulumi.Input + + ToCustomActionAttachmentCriteriaOperatorPtrOutput() CustomActionAttachmentCriteriaOperatorPtrOutput + ToCustomActionAttachmentCriteriaOperatorPtrOutputWithContext(context.Context) CustomActionAttachmentCriteriaOperatorPtrOutput +} + +type customActionAttachmentCriteriaOperatorPtr string + +func CustomActionAttachmentCriteriaOperatorPtr(v string) CustomActionAttachmentCriteriaOperatorPtrInput { + return (*customActionAttachmentCriteriaOperatorPtr)(&v) +} + +func (*customActionAttachmentCriteriaOperatorPtr) ElementType() reflect.Type { + return customActionAttachmentCriteriaOperatorPtrType +} + +func (in *customActionAttachmentCriteriaOperatorPtr) ToCustomActionAttachmentCriteriaOperatorPtrOutput() CustomActionAttachmentCriteriaOperatorPtrOutput { + return pulumi.ToOutput(in).(CustomActionAttachmentCriteriaOperatorPtrOutput) +} + +func (in *customActionAttachmentCriteriaOperatorPtr) ToCustomActionAttachmentCriteriaOperatorPtrOutputWithContext(ctx context.Context) CustomActionAttachmentCriteriaOperatorPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(CustomActionAttachmentCriteriaOperatorPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*CustomActionAttachmentCriteriaOperatorInput)(nil)).Elem(), CustomActionAttachmentCriteriaOperator("HAS_VALUE")) + pulumi.RegisterInputType(reflect.TypeOf((*CustomActionAttachmentCriteriaOperatorPtrInput)(nil)).Elem(), CustomActionAttachmentCriteriaOperator("HAS_VALUE")) + pulumi.RegisterOutputType(CustomActionAttachmentCriteriaOperatorOutput{}) + pulumi.RegisterOutputType(CustomActionAttachmentCriteriaOperatorPtrOutput{}) +} diff --git a/sdk/go/aws/chatbot/pulumiTypes.go b/sdk/go/aws/chatbot/pulumiTypes.go index 19e782ef8a..602e777809 100644 --- a/sdk/go/aws/chatbot/pulumiTypes.go +++ b/sdk/go/aws/chatbot/pulumiTypes.go @@ -4,11 +4,320 @@ package chatbot import ( + "context" + "reflect" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) var _ = internal.GetEnvOrDefault +type CustomActionAttachment struct { + ButtonText *string `pulumi:"buttonText"` + Criteria []CustomActionAttachmentCriteria `pulumi:"criteria"` + NotificationType *string `pulumi:"notificationType"` + Variables map[string]string `pulumi:"variables"` +} + +// CustomActionAttachmentInput is an input type that accepts CustomActionAttachmentArgs and CustomActionAttachmentOutput values. +// You can construct a concrete instance of `CustomActionAttachmentInput` via: +// +// CustomActionAttachmentArgs{...} +type CustomActionAttachmentInput interface { + pulumi.Input + + ToCustomActionAttachmentOutput() CustomActionAttachmentOutput + ToCustomActionAttachmentOutputWithContext(context.Context) CustomActionAttachmentOutput +} + +type CustomActionAttachmentArgs struct { + ButtonText pulumi.StringPtrInput `pulumi:"buttonText"` + Criteria CustomActionAttachmentCriteriaArrayInput `pulumi:"criteria"` + NotificationType pulumi.StringPtrInput `pulumi:"notificationType"` + Variables pulumi.StringMapInput `pulumi:"variables"` +} + +func (CustomActionAttachmentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CustomActionAttachment)(nil)).Elem() +} + +func (i CustomActionAttachmentArgs) ToCustomActionAttachmentOutput() CustomActionAttachmentOutput { + return i.ToCustomActionAttachmentOutputWithContext(context.Background()) +} + +func (i CustomActionAttachmentArgs) ToCustomActionAttachmentOutputWithContext(ctx context.Context) CustomActionAttachmentOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomActionAttachmentOutput) +} + +// CustomActionAttachmentArrayInput is an input type that accepts CustomActionAttachmentArray and CustomActionAttachmentArrayOutput values. +// You can construct a concrete instance of `CustomActionAttachmentArrayInput` via: +// +// CustomActionAttachmentArray{ CustomActionAttachmentArgs{...} } +type CustomActionAttachmentArrayInput interface { + pulumi.Input + + ToCustomActionAttachmentArrayOutput() CustomActionAttachmentArrayOutput + ToCustomActionAttachmentArrayOutputWithContext(context.Context) CustomActionAttachmentArrayOutput +} + +type CustomActionAttachmentArray []CustomActionAttachmentInput + +func (CustomActionAttachmentArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]CustomActionAttachment)(nil)).Elem() +} + +func (i CustomActionAttachmentArray) ToCustomActionAttachmentArrayOutput() CustomActionAttachmentArrayOutput { + return i.ToCustomActionAttachmentArrayOutputWithContext(context.Background()) +} + +func (i CustomActionAttachmentArray) ToCustomActionAttachmentArrayOutputWithContext(ctx context.Context) CustomActionAttachmentArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomActionAttachmentArrayOutput) +} + +type CustomActionAttachmentOutput struct{ *pulumi.OutputState } + +func (CustomActionAttachmentOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CustomActionAttachment)(nil)).Elem() +} + +func (o CustomActionAttachmentOutput) ToCustomActionAttachmentOutput() CustomActionAttachmentOutput { + return o +} + +func (o CustomActionAttachmentOutput) ToCustomActionAttachmentOutputWithContext(ctx context.Context) CustomActionAttachmentOutput { + return o +} + +func (o CustomActionAttachmentOutput) ButtonText() pulumi.StringPtrOutput { + return o.ApplyT(func(v CustomActionAttachment) *string { return v.ButtonText }).(pulumi.StringPtrOutput) +} + +func (o CustomActionAttachmentOutput) Criteria() CustomActionAttachmentCriteriaArrayOutput { + return o.ApplyT(func(v CustomActionAttachment) []CustomActionAttachmentCriteria { return v.Criteria }).(CustomActionAttachmentCriteriaArrayOutput) +} + +func (o CustomActionAttachmentOutput) NotificationType() pulumi.StringPtrOutput { + return o.ApplyT(func(v CustomActionAttachment) *string { return v.NotificationType }).(pulumi.StringPtrOutput) +} + +func (o CustomActionAttachmentOutput) Variables() pulumi.StringMapOutput { + return o.ApplyT(func(v CustomActionAttachment) map[string]string { return v.Variables }).(pulumi.StringMapOutput) +} + +type CustomActionAttachmentArrayOutput struct{ *pulumi.OutputState } + +func (CustomActionAttachmentArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]CustomActionAttachment)(nil)).Elem() +} + +func (o CustomActionAttachmentArrayOutput) ToCustomActionAttachmentArrayOutput() CustomActionAttachmentArrayOutput { + return o +} + +func (o CustomActionAttachmentArrayOutput) ToCustomActionAttachmentArrayOutputWithContext(ctx context.Context) CustomActionAttachmentArrayOutput { + return o +} + +func (o CustomActionAttachmentArrayOutput) Index(i pulumi.IntInput) CustomActionAttachmentOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) CustomActionAttachment { + return vs[0].([]CustomActionAttachment)[vs[1].(int)] + }).(CustomActionAttachmentOutput) +} + +type CustomActionAttachmentCriteria struct { + Operator CustomActionAttachmentCriteriaOperator `pulumi:"operator"` + Value *string `pulumi:"value"` + VariableName string `pulumi:"variableName"` +} + +// CustomActionAttachmentCriteriaInput is an input type that accepts CustomActionAttachmentCriteriaArgs and CustomActionAttachmentCriteriaOutput values. +// You can construct a concrete instance of `CustomActionAttachmentCriteriaInput` via: +// +// CustomActionAttachmentCriteriaArgs{...} +type CustomActionAttachmentCriteriaInput interface { + pulumi.Input + + ToCustomActionAttachmentCriteriaOutput() CustomActionAttachmentCriteriaOutput + ToCustomActionAttachmentCriteriaOutputWithContext(context.Context) CustomActionAttachmentCriteriaOutput +} + +type CustomActionAttachmentCriteriaArgs struct { + Operator CustomActionAttachmentCriteriaOperatorInput `pulumi:"operator"` + Value pulumi.StringPtrInput `pulumi:"value"` + VariableName pulumi.StringInput `pulumi:"variableName"` +} + +func (CustomActionAttachmentCriteriaArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CustomActionAttachmentCriteria)(nil)).Elem() +} + +func (i CustomActionAttachmentCriteriaArgs) ToCustomActionAttachmentCriteriaOutput() CustomActionAttachmentCriteriaOutput { + return i.ToCustomActionAttachmentCriteriaOutputWithContext(context.Background()) +} + +func (i CustomActionAttachmentCriteriaArgs) ToCustomActionAttachmentCriteriaOutputWithContext(ctx context.Context) CustomActionAttachmentCriteriaOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomActionAttachmentCriteriaOutput) +} + +// CustomActionAttachmentCriteriaArrayInput is an input type that accepts CustomActionAttachmentCriteriaArray and CustomActionAttachmentCriteriaArrayOutput values. +// You can construct a concrete instance of `CustomActionAttachmentCriteriaArrayInput` via: +// +// CustomActionAttachmentCriteriaArray{ CustomActionAttachmentCriteriaArgs{...} } +type CustomActionAttachmentCriteriaArrayInput interface { + pulumi.Input + + ToCustomActionAttachmentCriteriaArrayOutput() CustomActionAttachmentCriteriaArrayOutput + ToCustomActionAttachmentCriteriaArrayOutputWithContext(context.Context) CustomActionAttachmentCriteriaArrayOutput +} + +type CustomActionAttachmentCriteriaArray []CustomActionAttachmentCriteriaInput + +func (CustomActionAttachmentCriteriaArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]CustomActionAttachmentCriteria)(nil)).Elem() +} + +func (i CustomActionAttachmentCriteriaArray) ToCustomActionAttachmentCriteriaArrayOutput() CustomActionAttachmentCriteriaArrayOutput { + return i.ToCustomActionAttachmentCriteriaArrayOutputWithContext(context.Background()) +} + +func (i CustomActionAttachmentCriteriaArray) ToCustomActionAttachmentCriteriaArrayOutputWithContext(ctx context.Context) CustomActionAttachmentCriteriaArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomActionAttachmentCriteriaArrayOutput) +} + +type CustomActionAttachmentCriteriaOutput struct{ *pulumi.OutputState } + +func (CustomActionAttachmentCriteriaOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CustomActionAttachmentCriteria)(nil)).Elem() +} + +func (o CustomActionAttachmentCriteriaOutput) ToCustomActionAttachmentCriteriaOutput() CustomActionAttachmentCriteriaOutput { + return o +} + +func (o CustomActionAttachmentCriteriaOutput) ToCustomActionAttachmentCriteriaOutputWithContext(ctx context.Context) CustomActionAttachmentCriteriaOutput { + return o +} + +func (o CustomActionAttachmentCriteriaOutput) Operator() CustomActionAttachmentCriteriaOperatorOutput { + return o.ApplyT(func(v CustomActionAttachmentCriteria) CustomActionAttachmentCriteriaOperator { return v.Operator }).(CustomActionAttachmentCriteriaOperatorOutput) +} + +func (o CustomActionAttachmentCriteriaOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v CustomActionAttachmentCriteria) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +func (o CustomActionAttachmentCriteriaOutput) VariableName() pulumi.StringOutput { + return o.ApplyT(func(v CustomActionAttachmentCriteria) string { return v.VariableName }).(pulumi.StringOutput) +} + +type CustomActionAttachmentCriteriaArrayOutput struct{ *pulumi.OutputState } + +func (CustomActionAttachmentCriteriaArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]CustomActionAttachmentCriteria)(nil)).Elem() +} + +func (o CustomActionAttachmentCriteriaArrayOutput) ToCustomActionAttachmentCriteriaArrayOutput() CustomActionAttachmentCriteriaArrayOutput { + return o +} + +func (o CustomActionAttachmentCriteriaArrayOutput) ToCustomActionAttachmentCriteriaArrayOutputWithContext(ctx context.Context) CustomActionAttachmentCriteriaArrayOutput { + return o +} + +func (o CustomActionAttachmentCriteriaArrayOutput) Index(i pulumi.IntInput) CustomActionAttachmentCriteriaOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) CustomActionAttachmentCriteria { + return vs[0].([]CustomActionAttachmentCriteria)[vs[1].(int)] + }).(CustomActionAttachmentCriteriaOutput) +} + +type CustomActionDefinition struct { + CommandText string `pulumi:"commandText"` +} + +// CustomActionDefinitionInput is an input type that accepts CustomActionDefinitionArgs and CustomActionDefinitionOutput values. +// You can construct a concrete instance of `CustomActionDefinitionInput` via: +// +// CustomActionDefinitionArgs{...} +type CustomActionDefinitionInput interface { + pulumi.Input + + ToCustomActionDefinitionOutput() CustomActionDefinitionOutput + ToCustomActionDefinitionOutputWithContext(context.Context) CustomActionDefinitionOutput +} + +type CustomActionDefinitionArgs struct { + CommandText pulumi.StringInput `pulumi:"commandText"` +} + +func (CustomActionDefinitionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CustomActionDefinition)(nil)).Elem() +} + +func (i CustomActionDefinitionArgs) ToCustomActionDefinitionOutput() CustomActionDefinitionOutput { + return i.ToCustomActionDefinitionOutputWithContext(context.Background()) +} + +func (i CustomActionDefinitionArgs) ToCustomActionDefinitionOutputWithContext(ctx context.Context) CustomActionDefinitionOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomActionDefinitionOutput) +} + +type CustomActionDefinitionOutput struct{ *pulumi.OutputState } + +func (CustomActionDefinitionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CustomActionDefinition)(nil)).Elem() +} + +func (o CustomActionDefinitionOutput) ToCustomActionDefinitionOutput() CustomActionDefinitionOutput { + return o +} + +func (o CustomActionDefinitionOutput) ToCustomActionDefinitionOutputWithContext(ctx context.Context) CustomActionDefinitionOutput { + return o +} + +func (o CustomActionDefinitionOutput) CommandText() pulumi.StringOutput { + return o.ApplyT(func(v CustomActionDefinition) string { return v.CommandText }).(pulumi.StringOutput) +} + +type CustomActionDefinitionPtrOutput struct{ *pulumi.OutputState } + +func (CustomActionDefinitionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CustomActionDefinition)(nil)).Elem() +} + +func (o CustomActionDefinitionPtrOutput) ToCustomActionDefinitionPtrOutput() CustomActionDefinitionPtrOutput { + return o +} + +func (o CustomActionDefinitionPtrOutput) ToCustomActionDefinitionPtrOutputWithContext(ctx context.Context) CustomActionDefinitionPtrOutput { + return o +} + +func (o CustomActionDefinitionPtrOutput) Elem() CustomActionDefinitionOutput { + return o.ApplyT(func(v *CustomActionDefinition) CustomActionDefinition { + if v != nil { + return *v + } + var ret CustomActionDefinition + return ret + }).(CustomActionDefinitionOutput) +} + +func (o CustomActionDefinitionPtrOutput) CommandText() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CustomActionDefinition) *string { + if v == nil { + return nil + } + return &v.CommandText + }).(pulumi.StringPtrOutput) +} + +type CustomActionTag struct { + Key string `pulumi:"key"` + Value string `pulumi:"value"` +} + type MicrosoftTeamsChannelConfigurationTag struct { // A string used to identify this tag. You can specify a maximum of 128 characters for a tag key. Tags owned by Amazon Web Services (AWS) have the reserved prefix: `aws:` . Key string `pulumi:"key"` @@ -24,4 +333,15 @@ type SlackChannelConfigurationTag struct { } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*CustomActionAttachmentInput)(nil)).Elem(), CustomActionAttachmentArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CustomActionAttachmentArrayInput)(nil)).Elem(), CustomActionAttachmentArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*CustomActionAttachmentCriteriaInput)(nil)).Elem(), CustomActionAttachmentCriteriaArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CustomActionAttachmentCriteriaArrayInput)(nil)).Elem(), CustomActionAttachmentCriteriaArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*CustomActionDefinitionInput)(nil)).Elem(), CustomActionDefinitionArgs{}) + pulumi.RegisterOutputType(CustomActionAttachmentOutput{}) + pulumi.RegisterOutputType(CustomActionAttachmentArrayOutput{}) + pulumi.RegisterOutputType(CustomActionAttachmentCriteriaOutput{}) + pulumi.RegisterOutputType(CustomActionAttachmentCriteriaArrayOutput{}) + pulumi.RegisterOutputType(CustomActionDefinitionOutput{}) + pulumi.RegisterOutputType(CustomActionDefinitionPtrOutput{}) } diff --git a/sdk/go/aws/chatbot/slackChannelConfiguration.go b/sdk/go/aws/chatbot/slackChannelConfiguration.go index f9683eecbb..5f8d20996f 100644 --- a/sdk/go/aws/chatbot/slackChannelConfiguration.go +++ b/sdk/go/aws/chatbot/slackChannelConfiguration.go @@ -21,6 +21,8 @@ type SlackChannelConfiguration struct { Arn pulumi.StringOutput `pulumi:"arn"` // The name of the configuration ConfigurationName pulumi.StringOutput `pulumi:"configurationName"` + // ARNs of Custom Actions to associate with notifications in the provided chat channel. + CustomizationResourceArns pulumi.StringArrayOutput `pulumi:"customizationResourceArns"` // The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. GuardrailPolicies pulumi.StringArrayOutput `pulumi:"guardrailPolicies"` // The ARN of the IAM role that defines the permissions for AWS Chatbot @@ -95,6 +97,8 @@ func (SlackChannelConfigurationState) ElementType() reflect.Type { type slackChannelConfigurationArgs struct { // The name of the configuration ConfigurationName *string `pulumi:"configurationName"` + // ARNs of Custom Actions to associate with notifications in the provided chat channel. + CustomizationResourceArns []string `pulumi:"customizationResourceArns"` // The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. GuardrailPolicies []string `pulumi:"guardrailPolicies"` // The ARN of the IAM role that defines the permissions for AWS Chatbot @@ -117,6 +121,8 @@ type slackChannelConfigurationArgs struct { type SlackChannelConfigurationArgs struct { // The name of the configuration ConfigurationName pulumi.StringPtrInput + // ARNs of Custom Actions to associate with notifications in the provided chat channel. + CustomizationResourceArns pulumi.StringArrayInput // The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. GuardrailPolicies pulumi.StringArrayInput // The ARN of the IAM role that defines the permissions for AWS Chatbot @@ -182,6 +188,11 @@ func (o SlackChannelConfigurationOutput) ConfigurationName() pulumi.StringOutput return o.ApplyT(func(v *SlackChannelConfiguration) pulumi.StringOutput { return v.ConfigurationName }).(pulumi.StringOutput) } +// ARNs of Custom Actions to associate with notifications in the provided chat channel. +func (o SlackChannelConfigurationOutput) CustomizationResourceArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v *SlackChannelConfiguration) pulumi.StringArrayOutput { return v.CustomizationResourceArns }).(pulumi.StringArrayOutput) +} + // The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. func (o SlackChannelConfigurationOutput) GuardrailPolicies() pulumi.StringArrayOutput { return o.ApplyT(func(v *SlackChannelConfiguration) pulumi.StringArrayOutput { return v.GuardrailPolicies }).(pulumi.StringArrayOutput) diff --git a/sdk/go/aws/cloudtrail/dashboard.go b/sdk/go/aws/cloudtrail/dashboard.go new file mode 100644 index 0000000000..2b51ab72cf --- /dev/null +++ b/sdk/go/aws/cloudtrail/dashboard.go @@ -0,0 +1,193 @@ +// 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 cloudtrail + +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" +) + +// The Amazon CloudTrail dashboard resource allows customers to manage managed dashboards and create custom dashboards. You can manually refresh custom and managed dashboards. For custom dashboards, you can also set up an automatic refresh schedule and modify dashboard widgets. +type Dashboard struct { + pulumi.CustomResourceState + + // The timestamp of the dashboard creation. + CreatedTimestamp pulumi.StringOutput `pulumi:"createdTimestamp"` + // The ARN of the dashboard. + DashboardArn pulumi.StringOutput `pulumi:"dashboardArn"` + // The name of the dashboard. + Name pulumi.StringPtrOutput `pulumi:"name"` + // Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + RefreshSchedule DashboardRefreshSchedulePtrOutput `pulumi:"refreshSchedule"` + // The status of the dashboard. Values are CREATING, CREATED, UPDATING, UPDATED and DELETING. + Status DashboardStatusOutput `pulumi:"status"` + Tags aws.TagArrayOutput `pulumi:"tags"` + // Indicates whether the dashboard is protected from termination. + TerminationProtectionEnabled pulumi.BoolPtrOutput `pulumi:"terminationProtectionEnabled"` + // The type of the dashboard. Values are CUSTOM and MANAGED. + Type DashboardTypeOutput `pulumi:"type"` + // The timestamp showing when the dashboard was updated, if applicable. UpdatedTimestamp is always either the same or newer than the time shown in CreatedTimestamp. + UpdatedTimestamp pulumi.StringOutput `pulumi:"updatedTimestamp"` + // List of widgets on the dashboard + Widgets DashboardWidgetArrayOutput `pulumi:"widgets"` +} + +// NewDashboard registers a new resource with the given unique name, arguments, and options. +func NewDashboard(ctx *pulumi.Context, + name string, args *DashboardArgs, opts ...pulumi.ResourceOption) (*Dashboard, error) { + if args == nil { + args = &DashboardArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource Dashboard + err := ctx.RegisterResource("aws-native:cloudtrail:Dashboard", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDashboard gets an existing Dashboard 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 GetDashboard(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DashboardState, opts ...pulumi.ResourceOption) (*Dashboard, error) { + var resource Dashboard + err := ctx.ReadResource("aws-native:cloudtrail:Dashboard", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Dashboard resources. +type dashboardState struct { +} + +type DashboardState struct { +} + +func (DashboardState) ElementType() reflect.Type { + return reflect.TypeOf((*dashboardState)(nil)).Elem() +} + +type dashboardArgs struct { + // The name of the dashboard. + Name *string `pulumi:"name"` + // Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + RefreshSchedule *DashboardRefreshSchedule `pulumi:"refreshSchedule"` + Tags []aws.Tag `pulumi:"tags"` + // Indicates whether the dashboard is protected from termination. + TerminationProtectionEnabled *bool `pulumi:"terminationProtectionEnabled"` + // List of widgets on the dashboard + Widgets []DashboardWidget `pulumi:"widgets"` +} + +// The set of arguments for constructing a Dashboard resource. +type DashboardArgs struct { + // The name of the dashboard. + Name pulumi.StringPtrInput + // Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + RefreshSchedule DashboardRefreshSchedulePtrInput + Tags aws.TagArrayInput + // Indicates whether the dashboard is protected from termination. + TerminationProtectionEnabled pulumi.BoolPtrInput + // List of widgets on the dashboard + Widgets DashboardWidgetArrayInput +} + +func (DashboardArgs) ElementType() reflect.Type { + return reflect.TypeOf((*dashboardArgs)(nil)).Elem() +} + +type DashboardInput interface { + pulumi.Input + + ToDashboardOutput() DashboardOutput + ToDashboardOutputWithContext(ctx context.Context) DashboardOutput +} + +func (*Dashboard) ElementType() reflect.Type { + return reflect.TypeOf((**Dashboard)(nil)).Elem() +} + +func (i *Dashboard) ToDashboardOutput() DashboardOutput { + return i.ToDashboardOutputWithContext(context.Background()) +} + +func (i *Dashboard) ToDashboardOutputWithContext(ctx context.Context) DashboardOutput { + return pulumi.ToOutputWithContext(ctx, i).(DashboardOutput) +} + +type DashboardOutput struct{ *pulumi.OutputState } + +func (DashboardOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Dashboard)(nil)).Elem() +} + +func (o DashboardOutput) ToDashboardOutput() DashboardOutput { + return o +} + +func (o DashboardOutput) ToDashboardOutputWithContext(ctx context.Context) DashboardOutput { + return o +} + +// The timestamp of the dashboard creation. +func (o DashboardOutput) CreatedTimestamp() pulumi.StringOutput { + return o.ApplyT(func(v *Dashboard) pulumi.StringOutput { return v.CreatedTimestamp }).(pulumi.StringOutput) +} + +// The ARN of the dashboard. +func (o DashboardOutput) DashboardArn() pulumi.StringOutput { + return o.ApplyT(func(v *Dashboard) pulumi.StringOutput { return v.DashboardArn }).(pulumi.StringOutput) +} + +// The name of the dashboard. +func (o DashboardOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Dashboard) pulumi.StringPtrOutput { return v.Name }).(pulumi.StringPtrOutput) +} + +// Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. +func (o DashboardOutput) RefreshSchedule() DashboardRefreshSchedulePtrOutput { + return o.ApplyT(func(v *Dashboard) DashboardRefreshSchedulePtrOutput { return v.RefreshSchedule }).(DashboardRefreshSchedulePtrOutput) +} + +// The status of the dashboard. Values are CREATING, CREATED, UPDATING, UPDATED and DELETING. +func (o DashboardOutput) Status() DashboardStatusOutput { + return o.ApplyT(func(v *Dashboard) DashboardStatusOutput { return v.Status }).(DashboardStatusOutput) +} + +func (o DashboardOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v *Dashboard) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) +} + +// Indicates whether the dashboard is protected from termination. +func (o DashboardOutput) TerminationProtectionEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Dashboard) pulumi.BoolPtrOutput { return v.TerminationProtectionEnabled }).(pulumi.BoolPtrOutput) +} + +// The type of the dashboard. Values are CUSTOM and MANAGED. +func (o DashboardOutput) Type() DashboardTypeOutput { + return o.ApplyT(func(v *Dashboard) DashboardTypeOutput { return v.Type }).(DashboardTypeOutput) +} + +// The timestamp showing when the dashboard was updated, if applicable. UpdatedTimestamp is always either the same or newer than the time shown in CreatedTimestamp. +func (o DashboardOutput) UpdatedTimestamp() pulumi.StringOutput { + return o.ApplyT(func(v *Dashboard) pulumi.StringOutput { return v.UpdatedTimestamp }).(pulumi.StringOutput) +} + +// List of widgets on the dashboard +func (o DashboardOutput) Widgets() DashboardWidgetArrayOutput { + return o.ApplyT(func(v *Dashboard) DashboardWidgetArrayOutput { return v.Widgets }).(DashboardWidgetArrayOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DashboardInput)(nil)).Elem(), &Dashboard{}) + pulumi.RegisterOutputType(DashboardOutput{}) +} diff --git a/sdk/go/aws/cloudtrail/getDashboard.go b/sdk/go/aws/cloudtrail/getDashboard.go new file mode 100644 index 0000000000..1332874e5c --- /dev/null +++ b/sdk/go/aws/cloudtrail/getDashboard.go @@ -0,0 +1,146 @@ +// 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 cloudtrail + +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" +) + +// The Amazon CloudTrail dashboard resource allows customers to manage managed dashboards and create custom dashboards. You can manually refresh custom and managed dashboards. For custom dashboards, you can also set up an automatic refresh schedule and modify dashboard widgets. +func LookupDashboard(ctx *pulumi.Context, args *LookupDashboardArgs, opts ...pulumi.InvokeOption) (*LookupDashboardResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupDashboardResult + err := ctx.Invoke("aws-native:cloudtrail:getDashboard", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupDashboardArgs struct { + // The ARN of the dashboard. + DashboardArn string `pulumi:"dashboardArn"` +} + +type LookupDashboardResult struct { + // The timestamp of the dashboard creation. + CreatedTimestamp *string `pulumi:"createdTimestamp"` + // The ARN of the dashboard. + DashboardArn *string `pulumi:"dashboardArn"` + // The name of the dashboard. + Name *string `pulumi:"name"` + // Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + RefreshSchedule *DashboardRefreshSchedule `pulumi:"refreshSchedule"` + // The status of the dashboard. Values are CREATING, CREATED, UPDATING, UPDATED and DELETING. + Status *DashboardStatus `pulumi:"status"` + Tags []aws.Tag `pulumi:"tags"` + // Indicates whether the dashboard is protected from termination. + TerminationProtectionEnabled *bool `pulumi:"terminationProtectionEnabled"` + // The type of the dashboard. Values are CUSTOM and MANAGED. + Type *DashboardType `pulumi:"type"` + // The timestamp showing when the dashboard was updated, if applicable. UpdatedTimestamp is always either the same or newer than the time shown in CreatedTimestamp. + UpdatedTimestamp *string `pulumi:"updatedTimestamp"` + // List of widgets on the dashboard + Widgets []DashboardWidget `pulumi:"widgets"` +} + +func LookupDashboardOutput(ctx *pulumi.Context, args LookupDashboardOutputArgs, opts ...pulumi.InvokeOption) LookupDashboardResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupDashboardResultOutput, error) { + args := v.(LookupDashboardArgs) + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupDashboardResult + secret, err := ctx.InvokePackageRaw("aws-native:cloudtrail:getDashboard", args, &rv, "", opts...) + if err != nil { + return LookupDashboardResultOutput{}, err + } + + output := pulumi.ToOutput(rv).(LookupDashboardResultOutput) + if secret { + return pulumi.ToSecret(output).(LookupDashboardResultOutput), nil + } + return output, nil + }).(LookupDashboardResultOutput) +} + +type LookupDashboardOutputArgs struct { + // The ARN of the dashboard. + DashboardArn pulumi.StringInput `pulumi:"dashboardArn"` +} + +func (LookupDashboardOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupDashboardArgs)(nil)).Elem() +} + +type LookupDashboardResultOutput struct{ *pulumi.OutputState } + +func (LookupDashboardResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupDashboardResult)(nil)).Elem() +} + +func (o LookupDashboardResultOutput) ToLookupDashboardResultOutput() LookupDashboardResultOutput { + return o +} + +func (o LookupDashboardResultOutput) ToLookupDashboardResultOutputWithContext(ctx context.Context) LookupDashboardResultOutput { + return o +} + +// The timestamp of the dashboard creation. +func (o LookupDashboardResultOutput) CreatedTimestamp() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDashboardResult) *string { return v.CreatedTimestamp }).(pulumi.StringPtrOutput) +} + +// The ARN of the dashboard. +func (o LookupDashboardResultOutput) DashboardArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDashboardResult) *string { return v.DashboardArn }).(pulumi.StringPtrOutput) +} + +// The name of the dashboard. +func (o LookupDashboardResultOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDashboardResult) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. +func (o LookupDashboardResultOutput) RefreshSchedule() DashboardRefreshSchedulePtrOutput { + return o.ApplyT(func(v LookupDashboardResult) *DashboardRefreshSchedule { return v.RefreshSchedule }).(DashboardRefreshSchedulePtrOutput) +} + +// The status of the dashboard. Values are CREATING, CREATED, UPDATING, UPDATED and DELETING. +func (o LookupDashboardResultOutput) Status() DashboardStatusPtrOutput { + return o.ApplyT(func(v LookupDashboardResult) *DashboardStatus { return v.Status }).(DashboardStatusPtrOutput) +} + +func (o LookupDashboardResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupDashboardResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + +// Indicates whether the dashboard is protected from termination. +func (o LookupDashboardResultOutput) TerminationProtectionEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LookupDashboardResult) *bool { return v.TerminationProtectionEnabled }).(pulumi.BoolPtrOutput) +} + +// The type of the dashboard. Values are CUSTOM and MANAGED. +func (o LookupDashboardResultOutput) Type() DashboardTypePtrOutput { + return o.ApplyT(func(v LookupDashboardResult) *DashboardType { return v.Type }).(DashboardTypePtrOutput) +} + +// The timestamp showing when the dashboard was updated, if applicable. UpdatedTimestamp is always either the same or newer than the time shown in CreatedTimestamp. +func (o LookupDashboardResultOutput) UpdatedTimestamp() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDashboardResult) *string { return v.UpdatedTimestamp }).(pulumi.StringPtrOutput) +} + +// List of widgets on the dashboard +func (o LookupDashboardResultOutput) Widgets() DashboardWidgetArrayOutput { + return o.ApplyT(func(v LookupDashboardResult) []DashboardWidget { return v.Widgets }).(DashboardWidgetArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupDashboardResultOutput{}) +} diff --git a/sdk/go/aws/cloudtrail/init.go b/sdk/go/aws/cloudtrail/init.go index 7c6177ae97..5f5123174e 100644 --- a/sdk/go/aws/cloudtrail/init.go +++ b/sdk/go/aws/cloudtrail/init.go @@ -23,6 +23,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "aws-native:cloudtrail:Channel": r = &Channel{} + case "aws-native:cloudtrail:Dashboard": + r = &Dashboard{} case "aws-native:cloudtrail:EventDataStore": r = &EventDataStore{} case "aws-native:cloudtrail:ResourcePolicy": diff --git a/sdk/go/aws/cloudtrail/pulumiEnums.go b/sdk/go/aws/cloudtrail/pulumiEnums.go index 3c7e065c84..920112a35d 100644 --- a/sdk/go/aws/cloudtrail/pulumiEnums.go +++ b/sdk/go/aws/cloudtrail/pulumiEnums.go @@ -174,6 +174,523 @@ func (in *channelDestinationTypePtr) ToChannelDestinationTypePtrOutputWithContex return pulumi.ToOutputWithContext(ctx, in).(ChannelDestinationTypePtrOutput) } +// The frequency unit. Supported values are HOURS and DAYS. +type DashboardRefreshScheduleFrequencyPropertiesUnit string + +const ( + DashboardRefreshScheduleFrequencyPropertiesUnitHours = DashboardRefreshScheduleFrequencyPropertiesUnit("HOURS") + DashboardRefreshScheduleFrequencyPropertiesUnitDays = DashboardRefreshScheduleFrequencyPropertiesUnit("DAYS") +) + +func (DashboardRefreshScheduleFrequencyPropertiesUnit) ElementType() reflect.Type { + return reflect.TypeOf((*DashboardRefreshScheduleFrequencyPropertiesUnit)(nil)).Elem() +} + +func (e DashboardRefreshScheduleFrequencyPropertiesUnit) ToDashboardRefreshScheduleFrequencyPropertiesUnitOutput() DashboardRefreshScheduleFrequencyPropertiesUnitOutput { + return pulumi.ToOutput(e).(DashboardRefreshScheduleFrequencyPropertiesUnitOutput) +} + +func (e DashboardRefreshScheduleFrequencyPropertiesUnit) ToDashboardRefreshScheduleFrequencyPropertiesUnitOutputWithContext(ctx context.Context) DashboardRefreshScheduleFrequencyPropertiesUnitOutput { + return pulumi.ToOutputWithContext(ctx, e).(DashboardRefreshScheduleFrequencyPropertiesUnitOutput) +} + +func (e DashboardRefreshScheduleFrequencyPropertiesUnit) ToDashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput() DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput { + return e.ToDashboardRefreshScheduleFrequencyPropertiesUnitPtrOutputWithContext(context.Background()) +} + +func (e DashboardRefreshScheduleFrequencyPropertiesUnit) ToDashboardRefreshScheduleFrequencyPropertiesUnitPtrOutputWithContext(ctx context.Context) DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput { + return DashboardRefreshScheduleFrequencyPropertiesUnit(e).ToDashboardRefreshScheduleFrequencyPropertiesUnitOutputWithContext(ctx).ToDashboardRefreshScheduleFrequencyPropertiesUnitPtrOutputWithContext(ctx) +} + +func (e DashboardRefreshScheduleFrequencyPropertiesUnit) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e DashboardRefreshScheduleFrequencyPropertiesUnit) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e DashboardRefreshScheduleFrequencyPropertiesUnit) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e DashboardRefreshScheduleFrequencyPropertiesUnit) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type DashboardRefreshScheduleFrequencyPropertiesUnitOutput struct{ *pulumi.OutputState } + +func (DashboardRefreshScheduleFrequencyPropertiesUnitOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DashboardRefreshScheduleFrequencyPropertiesUnit)(nil)).Elem() +} + +func (o DashboardRefreshScheduleFrequencyPropertiesUnitOutput) ToDashboardRefreshScheduleFrequencyPropertiesUnitOutput() DashboardRefreshScheduleFrequencyPropertiesUnitOutput { + return o +} + +func (o DashboardRefreshScheduleFrequencyPropertiesUnitOutput) ToDashboardRefreshScheduleFrequencyPropertiesUnitOutputWithContext(ctx context.Context) DashboardRefreshScheduleFrequencyPropertiesUnitOutput { + return o +} + +func (o DashboardRefreshScheduleFrequencyPropertiesUnitOutput) ToDashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput() DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput { + return o.ToDashboardRefreshScheduleFrequencyPropertiesUnitPtrOutputWithContext(context.Background()) +} + +func (o DashboardRefreshScheduleFrequencyPropertiesUnitOutput) ToDashboardRefreshScheduleFrequencyPropertiesUnitPtrOutputWithContext(ctx context.Context) DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DashboardRefreshScheduleFrequencyPropertiesUnit) *DashboardRefreshScheduleFrequencyPropertiesUnit { + return &v + }).(DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput) +} + +func (o DashboardRefreshScheduleFrequencyPropertiesUnitOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o DashboardRefreshScheduleFrequencyPropertiesUnitOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e DashboardRefreshScheduleFrequencyPropertiesUnit) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o DashboardRefreshScheduleFrequencyPropertiesUnitOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o DashboardRefreshScheduleFrequencyPropertiesUnitOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e DashboardRefreshScheduleFrequencyPropertiesUnit) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput struct{ *pulumi.OutputState } + +func (DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DashboardRefreshScheduleFrequencyPropertiesUnit)(nil)).Elem() +} + +func (o DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput) ToDashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput() DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput { + return o +} + +func (o DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput) ToDashboardRefreshScheduleFrequencyPropertiesUnitPtrOutputWithContext(ctx context.Context) DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput { + return o +} + +func (o DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput) Elem() DashboardRefreshScheduleFrequencyPropertiesUnitOutput { + return o.ApplyT(func(v *DashboardRefreshScheduleFrequencyPropertiesUnit) DashboardRefreshScheduleFrequencyPropertiesUnit { + if v != nil { + return *v + } + var ret DashboardRefreshScheduleFrequencyPropertiesUnit + return ret + }).(DashboardRefreshScheduleFrequencyPropertiesUnitOutput) +} + +func (o DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *DashboardRefreshScheduleFrequencyPropertiesUnit) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// DashboardRefreshScheduleFrequencyPropertiesUnitInput is an input type that accepts values of the DashboardRefreshScheduleFrequencyPropertiesUnit enum +// A concrete instance of `DashboardRefreshScheduleFrequencyPropertiesUnitInput` can be one of the following: +// +// DashboardRefreshScheduleFrequencyPropertiesUnitHours +// DashboardRefreshScheduleFrequencyPropertiesUnitDays +type DashboardRefreshScheduleFrequencyPropertiesUnitInput interface { + pulumi.Input + + ToDashboardRefreshScheduleFrequencyPropertiesUnitOutput() DashboardRefreshScheduleFrequencyPropertiesUnitOutput + ToDashboardRefreshScheduleFrequencyPropertiesUnitOutputWithContext(context.Context) DashboardRefreshScheduleFrequencyPropertiesUnitOutput +} + +var dashboardRefreshScheduleFrequencyPropertiesUnitPtrType = reflect.TypeOf((**DashboardRefreshScheduleFrequencyPropertiesUnit)(nil)).Elem() + +type DashboardRefreshScheduleFrequencyPropertiesUnitPtrInput interface { + pulumi.Input + + ToDashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput() DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput + ToDashboardRefreshScheduleFrequencyPropertiesUnitPtrOutputWithContext(context.Context) DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput +} + +type dashboardRefreshScheduleFrequencyPropertiesUnitPtr string + +func DashboardRefreshScheduleFrequencyPropertiesUnitPtr(v string) DashboardRefreshScheduleFrequencyPropertiesUnitPtrInput { + return (*dashboardRefreshScheduleFrequencyPropertiesUnitPtr)(&v) +} + +func (*dashboardRefreshScheduleFrequencyPropertiesUnitPtr) ElementType() reflect.Type { + return dashboardRefreshScheduleFrequencyPropertiesUnitPtrType +} + +func (in *dashboardRefreshScheduleFrequencyPropertiesUnitPtr) ToDashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput() DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput { + return pulumi.ToOutput(in).(DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput) +} + +func (in *dashboardRefreshScheduleFrequencyPropertiesUnitPtr) ToDashboardRefreshScheduleFrequencyPropertiesUnitPtrOutputWithContext(ctx context.Context) DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput) +} + +// The status of the schedule. Supported values are ENABLED and DISABLED. +type DashboardRefreshScheduleStatus string + +const ( + DashboardRefreshScheduleStatusEnabled = DashboardRefreshScheduleStatus("ENABLED") + DashboardRefreshScheduleStatusDisabled = DashboardRefreshScheduleStatus("DISABLED") +) + +func (DashboardRefreshScheduleStatus) ElementType() reflect.Type { + return reflect.TypeOf((*DashboardRefreshScheduleStatus)(nil)).Elem() +} + +func (e DashboardRefreshScheduleStatus) ToDashboardRefreshScheduleStatusOutput() DashboardRefreshScheduleStatusOutput { + return pulumi.ToOutput(e).(DashboardRefreshScheduleStatusOutput) +} + +func (e DashboardRefreshScheduleStatus) ToDashboardRefreshScheduleStatusOutputWithContext(ctx context.Context) DashboardRefreshScheduleStatusOutput { + return pulumi.ToOutputWithContext(ctx, e).(DashboardRefreshScheduleStatusOutput) +} + +func (e DashboardRefreshScheduleStatus) ToDashboardRefreshScheduleStatusPtrOutput() DashboardRefreshScheduleStatusPtrOutput { + return e.ToDashboardRefreshScheduleStatusPtrOutputWithContext(context.Background()) +} + +func (e DashboardRefreshScheduleStatus) ToDashboardRefreshScheduleStatusPtrOutputWithContext(ctx context.Context) DashboardRefreshScheduleStatusPtrOutput { + return DashboardRefreshScheduleStatus(e).ToDashboardRefreshScheduleStatusOutputWithContext(ctx).ToDashboardRefreshScheduleStatusPtrOutputWithContext(ctx) +} + +func (e DashboardRefreshScheduleStatus) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e DashboardRefreshScheduleStatus) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e DashboardRefreshScheduleStatus) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e DashboardRefreshScheduleStatus) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type DashboardRefreshScheduleStatusOutput struct{ *pulumi.OutputState } + +func (DashboardRefreshScheduleStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DashboardRefreshScheduleStatus)(nil)).Elem() +} + +func (o DashboardRefreshScheduleStatusOutput) ToDashboardRefreshScheduleStatusOutput() DashboardRefreshScheduleStatusOutput { + return o +} + +func (o DashboardRefreshScheduleStatusOutput) ToDashboardRefreshScheduleStatusOutputWithContext(ctx context.Context) DashboardRefreshScheduleStatusOutput { + return o +} + +func (o DashboardRefreshScheduleStatusOutput) ToDashboardRefreshScheduleStatusPtrOutput() DashboardRefreshScheduleStatusPtrOutput { + return o.ToDashboardRefreshScheduleStatusPtrOutputWithContext(context.Background()) +} + +func (o DashboardRefreshScheduleStatusOutput) ToDashboardRefreshScheduleStatusPtrOutputWithContext(ctx context.Context) DashboardRefreshScheduleStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DashboardRefreshScheduleStatus) *DashboardRefreshScheduleStatus { + return &v + }).(DashboardRefreshScheduleStatusPtrOutput) +} + +func (o DashboardRefreshScheduleStatusOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o DashboardRefreshScheduleStatusOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e DashboardRefreshScheduleStatus) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o DashboardRefreshScheduleStatusOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o DashboardRefreshScheduleStatusOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e DashboardRefreshScheduleStatus) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type DashboardRefreshScheduleStatusPtrOutput struct{ *pulumi.OutputState } + +func (DashboardRefreshScheduleStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DashboardRefreshScheduleStatus)(nil)).Elem() +} + +func (o DashboardRefreshScheduleStatusPtrOutput) ToDashboardRefreshScheduleStatusPtrOutput() DashboardRefreshScheduleStatusPtrOutput { + return o +} + +func (o DashboardRefreshScheduleStatusPtrOutput) ToDashboardRefreshScheduleStatusPtrOutputWithContext(ctx context.Context) DashboardRefreshScheduleStatusPtrOutput { + return o +} + +func (o DashboardRefreshScheduleStatusPtrOutput) Elem() DashboardRefreshScheduleStatusOutput { + return o.ApplyT(func(v *DashboardRefreshScheduleStatus) DashboardRefreshScheduleStatus { + if v != nil { + return *v + } + var ret DashboardRefreshScheduleStatus + return ret + }).(DashboardRefreshScheduleStatusOutput) +} + +func (o DashboardRefreshScheduleStatusPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o DashboardRefreshScheduleStatusPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *DashboardRefreshScheduleStatus) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// DashboardRefreshScheduleStatusInput is an input type that accepts values of the DashboardRefreshScheduleStatus enum +// A concrete instance of `DashboardRefreshScheduleStatusInput` can be one of the following: +// +// DashboardRefreshScheduleStatusEnabled +// DashboardRefreshScheduleStatusDisabled +type DashboardRefreshScheduleStatusInput interface { + pulumi.Input + + ToDashboardRefreshScheduleStatusOutput() DashboardRefreshScheduleStatusOutput + ToDashboardRefreshScheduleStatusOutputWithContext(context.Context) DashboardRefreshScheduleStatusOutput +} + +var dashboardRefreshScheduleStatusPtrType = reflect.TypeOf((**DashboardRefreshScheduleStatus)(nil)).Elem() + +type DashboardRefreshScheduleStatusPtrInput interface { + pulumi.Input + + ToDashboardRefreshScheduleStatusPtrOutput() DashboardRefreshScheduleStatusPtrOutput + ToDashboardRefreshScheduleStatusPtrOutputWithContext(context.Context) DashboardRefreshScheduleStatusPtrOutput +} + +type dashboardRefreshScheduleStatusPtr string + +func DashboardRefreshScheduleStatusPtr(v string) DashboardRefreshScheduleStatusPtrInput { + return (*dashboardRefreshScheduleStatusPtr)(&v) +} + +func (*dashboardRefreshScheduleStatusPtr) ElementType() reflect.Type { + return dashboardRefreshScheduleStatusPtrType +} + +func (in *dashboardRefreshScheduleStatusPtr) ToDashboardRefreshScheduleStatusPtrOutput() DashboardRefreshScheduleStatusPtrOutput { + return pulumi.ToOutput(in).(DashboardRefreshScheduleStatusPtrOutput) +} + +func (in *dashboardRefreshScheduleStatusPtr) ToDashboardRefreshScheduleStatusPtrOutputWithContext(ctx context.Context) DashboardRefreshScheduleStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(DashboardRefreshScheduleStatusPtrOutput) +} + +// The status of the dashboard. Values are CREATING, CREATED, UPDATING, UPDATED and DELETING. +type DashboardStatus string + +const ( + DashboardStatusCreating = DashboardStatus("CREATING") + DashboardStatusCreated = DashboardStatus("CREATED") + DashboardStatusUpdating = DashboardStatus("UPDATING") + DashboardStatusUpdated = DashboardStatus("UPDATED") + DashboardStatusDeleting = DashboardStatus("DELETING") +) + +type DashboardStatusOutput struct{ *pulumi.OutputState } + +func (DashboardStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DashboardStatus)(nil)).Elem() +} + +func (o DashboardStatusOutput) ToDashboardStatusOutput() DashboardStatusOutput { + return o +} + +func (o DashboardStatusOutput) ToDashboardStatusOutputWithContext(ctx context.Context) DashboardStatusOutput { + return o +} + +func (o DashboardStatusOutput) ToDashboardStatusPtrOutput() DashboardStatusPtrOutput { + return o.ToDashboardStatusPtrOutputWithContext(context.Background()) +} + +func (o DashboardStatusOutput) ToDashboardStatusPtrOutputWithContext(ctx context.Context) DashboardStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DashboardStatus) *DashboardStatus { + return &v + }).(DashboardStatusPtrOutput) +} + +func (o DashboardStatusOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o DashboardStatusOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e DashboardStatus) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o DashboardStatusOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o DashboardStatusOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e DashboardStatus) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type DashboardStatusPtrOutput struct{ *pulumi.OutputState } + +func (DashboardStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DashboardStatus)(nil)).Elem() +} + +func (o DashboardStatusPtrOutput) ToDashboardStatusPtrOutput() DashboardStatusPtrOutput { + return o +} + +func (o DashboardStatusPtrOutput) ToDashboardStatusPtrOutputWithContext(ctx context.Context) DashboardStatusPtrOutput { + return o +} + +func (o DashboardStatusPtrOutput) Elem() DashboardStatusOutput { + return o.ApplyT(func(v *DashboardStatus) DashboardStatus { + if v != nil { + return *v + } + var ret DashboardStatus + return ret + }).(DashboardStatusOutput) +} + +func (o DashboardStatusPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o DashboardStatusPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *DashboardStatus) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// The type of the dashboard. Values are CUSTOM and MANAGED. +type DashboardType string + +const ( + DashboardTypeManaged = DashboardType("MANAGED") + DashboardTypeCustom = DashboardType("CUSTOM") +) + +type DashboardTypeOutput struct{ *pulumi.OutputState } + +func (DashboardTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DashboardType)(nil)).Elem() +} + +func (o DashboardTypeOutput) ToDashboardTypeOutput() DashboardTypeOutput { + return o +} + +func (o DashboardTypeOutput) ToDashboardTypeOutputWithContext(ctx context.Context) DashboardTypeOutput { + return o +} + +func (o DashboardTypeOutput) ToDashboardTypePtrOutput() DashboardTypePtrOutput { + return o.ToDashboardTypePtrOutputWithContext(context.Background()) +} + +func (o DashboardTypeOutput) ToDashboardTypePtrOutputWithContext(ctx context.Context) DashboardTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DashboardType) *DashboardType { + return &v + }).(DashboardTypePtrOutput) +} + +func (o DashboardTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o DashboardTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e DashboardType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o DashboardTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o DashboardTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e DashboardType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type DashboardTypePtrOutput struct{ *pulumi.OutputState } + +func (DashboardTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DashboardType)(nil)).Elem() +} + +func (o DashboardTypePtrOutput) ToDashboardTypePtrOutput() DashboardTypePtrOutput { + return o +} + +func (o DashboardTypePtrOutput) ToDashboardTypePtrOutputWithContext(ctx context.Context) DashboardTypePtrOutput { + return o +} + +func (o DashboardTypePtrOutput) Elem() DashboardTypeOutput { + return o.ApplyT(func(v *DashboardType) DashboardType { + if v != nil { + return *v + } + var ret DashboardType + return ret + }).(DashboardTypeOutput) +} + +func (o DashboardTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o DashboardTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *DashboardType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + // Specify if you want your trail to log read-only events, write-only events, or all. For example, the EC2 GetConsoleOutput is a read-only API operation and RunInstances is a write-only API operation. type TrailEventSelectorReadWriteType string @@ -345,10 +862,22 @@ func (in *trailEventSelectorReadWriteTypePtr) ToTrailEventSelectorReadWriteTypeP func init() { pulumi.RegisterInputType(reflect.TypeOf((*ChannelDestinationTypeInput)(nil)).Elem(), ChannelDestinationType("EVENT_DATA_STORE")) pulumi.RegisterInputType(reflect.TypeOf((*ChannelDestinationTypePtrInput)(nil)).Elem(), ChannelDestinationType("EVENT_DATA_STORE")) + pulumi.RegisterInputType(reflect.TypeOf((*DashboardRefreshScheduleFrequencyPropertiesUnitInput)(nil)).Elem(), DashboardRefreshScheduleFrequencyPropertiesUnit("HOURS")) + pulumi.RegisterInputType(reflect.TypeOf((*DashboardRefreshScheduleFrequencyPropertiesUnitPtrInput)(nil)).Elem(), DashboardRefreshScheduleFrequencyPropertiesUnit("HOURS")) + pulumi.RegisterInputType(reflect.TypeOf((*DashboardRefreshScheduleStatusInput)(nil)).Elem(), DashboardRefreshScheduleStatus("ENABLED")) + pulumi.RegisterInputType(reflect.TypeOf((*DashboardRefreshScheduleStatusPtrInput)(nil)).Elem(), DashboardRefreshScheduleStatus("ENABLED")) pulumi.RegisterInputType(reflect.TypeOf((*TrailEventSelectorReadWriteTypeInput)(nil)).Elem(), TrailEventSelectorReadWriteType("All")) pulumi.RegisterInputType(reflect.TypeOf((*TrailEventSelectorReadWriteTypePtrInput)(nil)).Elem(), TrailEventSelectorReadWriteType("All")) pulumi.RegisterOutputType(ChannelDestinationTypeOutput{}) pulumi.RegisterOutputType(ChannelDestinationTypePtrOutput{}) + pulumi.RegisterOutputType(DashboardRefreshScheduleFrequencyPropertiesUnitOutput{}) + pulumi.RegisterOutputType(DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput{}) + pulumi.RegisterOutputType(DashboardRefreshScheduleStatusOutput{}) + pulumi.RegisterOutputType(DashboardRefreshScheduleStatusPtrOutput{}) + pulumi.RegisterOutputType(DashboardStatusOutput{}) + pulumi.RegisterOutputType(DashboardStatusPtrOutput{}) + pulumi.RegisterOutputType(DashboardTypeOutput{}) + pulumi.RegisterOutputType(DashboardTypePtrOutput{}) pulumi.RegisterOutputType(TrailEventSelectorReadWriteTypeOutput{}) pulumi.RegisterOutputType(TrailEventSelectorReadWriteTypePtrOutput{}) } diff --git a/sdk/go/aws/cloudtrail/pulumiTypes.go b/sdk/go/aws/cloudtrail/pulumiTypes.go index 68549d1d80..3b85dd596f 100644 --- a/sdk/go/aws/cloudtrail/pulumiTypes.go +++ b/sdk/go/aws/cloudtrail/pulumiTypes.go @@ -130,6 +130,464 @@ type ChannelTag struct { Value string `pulumi:"value"` } +// Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. +type DashboardRefreshSchedule struct { + Frequency *DashboardRefreshScheduleFrequencyProperties `pulumi:"frequency"` + // The status of the schedule. Supported values are ENABLED and DISABLED. + Status *DashboardRefreshScheduleStatus `pulumi:"status"` + // StartTime of the automatic schedule refresh. + TimeOfDay *string `pulumi:"timeOfDay"` +} + +// DashboardRefreshScheduleInput is an input type that accepts DashboardRefreshScheduleArgs and DashboardRefreshScheduleOutput values. +// You can construct a concrete instance of `DashboardRefreshScheduleInput` via: +// +// DashboardRefreshScheduleArgs{...} +type DashboardRefreshScheduleInput interface { + pulumi.Input + + ToDashboardRefreshScheduleOutput() DashboardRefreshScheduleOutput + ToDashboardRefreshScheduleOutputWithContext(context.Context) DashboardRefreshScheduleOutput +} + +// Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. +type DashboardRefreshScheduleArgs struct { + Frequency DashboardRefreshScheduleFrequencyPropertiesPtrInput `pulumi:"frequency"` + // The status of the schedule. Supported values are ENABLED and DISABLED. + Status DashboardRefreshScheduleStatusPtrInput `pulumi:"status"` + // StartTime of the automatic schedule refresh. + TimeOfDay pulumi.StringPtrInput `pulumi:"timeOfDay"` +} + +func (DashboardRefreshScheduleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DashboardRefreshSchedule)(nil)).Elem() +} + +func (i DashboardRefreshScheduleArgs) ToDashboardRefreshScheduleOutput() DashboardRefreshScheduleOutput { + return i.ToDashboardRefreshScheduleOutputWithContext(context.Background()) +} + +func (i DashboardRefreshScheduleArgs) ToDashboardRefreshScheduleOutputWithContext(ctx context.Context) DashboardRefreshScheduleOutput { + return pulumi.ToOutputWithContext(ctx, i).(DashboardRefreshScheduleOutput) +} + +func (i DashboardRefreshScheduleArgs) ToDashboardRefreshSchedulePtrOutput() DashboardRefreshSchedulePtrOutput { + return i.ToDashboardRefreshSchedulePtrOutputWithContext(context.Background()) +} + +func (i DashboardRefreshScheduleArgs) ToDashboardRefreshSchedulePtrOutputWithContext(ctx context.Context) DashboardRefreshSchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DashboardRefreshScheduleOutput).ToDashboardRefreshSchedulePtrOutputWithContext(ctx) +} + +// DashboardRefreshSchedulePtrInput is an input type that accepts DashboardRefreshScheduleArgs, DashboardRefreshSchedulePtr and DashboardRefreshSchedulePtrOutput values. +// You can construct a concrete instance of `DashboardRefreshSchedulePtrInput` via: +// +// DashboardRefreshScheduleArgs{...} +// +// or: +// +// nil +type DashboardRefreshSchedulePtrInput interface { + pulumi.Input + + ToDashboardRefreshSchedulePtrOutput() DashboardRefreshSchedulePtrOutput + ToDashboardRefreshSchedulePtrOutputWithContext(context.Context) DashboardRefreshSchedulePtrOutput +} + +type dashboardRefreshSchedulePtrType DashboardRefreshScheduleArgs + +func DashboardRefreshSchedulePtr(v *DashboardRefreshScheduleArgs) DashboardRefreshSchedulePtrInput { + return (*dashboardRefreshSchedulePtrType)(v) +} + +func (*dashboardRefreshSchedulePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DashboardRefreshSchedule)(nil)).Elem() +} + +func (i *dashboardRefreshSchedulePtrType) ToDashboardRefreshSchedulePtrOutput() DashboardRefreshSchedulePtrOutput { + return i.ToDashboardRefreshSchedulePtrOutputWithContext(context.Background()) +} + +func (i *dashboardRefreshSchedulePtrType) ToDashboardRefreshSchedulePtrOutputWithContext(ctx context.Context) DashboardRefreshSchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DashboardRefreshSchedulePtrOutput) +} + +// Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. +type DashboardRefreshScheduleOutput struct{ *pulumi.OutputState } + +func (DashboardRefreshScheduleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DashboardRefreshSchedule)(nil)).Elem() +} + +func (o DashboardRefreshScheduleOutput) ToDashboardRefreshScheduleOutput() DashboardRefreshScheduleOutput { + return o +} + +func (o DashboardRefreshScheduleOutput) ToDashboardRefreshScheduleOutputWithContext(ctx context.Context) DashboardRefreshScheduleOutput { + return o +} + +func (o DashboardRefreshScheduleOutput) ToDashboardRefreshSchedulePtrOutput() DashboardRefreshSchedulePtrOutput { + return o.ToDashboardRefreshSchedulePtrOutputWithContext(context.Background()) +} + +func (o DashboardRefreshScheduleOutput) ToDashboardRefreshSchedulePtrOutputWithContext(ctx context.Context) DashboardRefreshSchedulePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DashboardRefreshSchedule) *DashboardRefreshSchedule { + return &v + }).(DashboardRefreshSchedulePtrOutput) +} + +func (o DashboardRefreshScheduleOutput) Frequency() DashboardRefreshScheduleFrequencyPropertiesPtrOutput { + return o.ApplyT(func(v DashboardRefreshSchedule) *DashboardRefreshScheduleFrequencyProperties { return v.Frequency }).(DashboardRefreshScheduleFrequencyPropertiesPtrOutput) +} + +// The status of the schedule. Supported values are ENABLED and DISABLED. +func (o DashboardRefreshScheduleOutput) Status() DashboardRefreshScheduleStatusPtrOutput { + return o.ApplyT(func(v DashboardRefreshSchedule) *DashboardRefreshScheduleStatus { return v.Status }).(DashboardRefreshScheduleStatusPtrOutput) +} + +// StartTime of the automatic schedule refresh. +func (o DashboardRefreshScheduleOutput) TimeOfDay() pulumi.StringPtrOutput { + return o.ApplyT(func(v DashboardRefreshSchedule) *string { return v.TimeOfDay }).(pulumi.StringPtrOutput) +} + +type DashboardRefreshSchedulePtrOutput struct{ *pulumi.OutputState } + +func (DashboardRefreshSchedulePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DashboardRefreshSchedule)(nil)).Elem() +} + +func (o DashboardRefreshSchedulePtrOutput) ToDashboardRefreshSchedulePtrOutput() DashboardRefreshSchedulePtrOutput { + return o +} + +func (o DashboardRefreshSchedulePtrOutput) ToDashboardRefreshSchedulePtrOutputWithContext(ctx context.Context) DashboardRefreshSchedulePtrOutput { + return o +} + +func (o DashboardRefreshSchedulePtrOutput) Elem() DashboardRefreshScheduleOutput { + return o.ApplyT(func(v *DashboardRefreshSchedule) DashboardRefreshSchedule { + if v != nil { + return *v + } + var ret DashboardRefreshSchedule + return ret + }).(DashboardRefreshScheduleOutput) +} + +func (o DashboardRefreshSchedulePtrOutput) Frequency() DashboardRefreshScheduleFrequencyPropertiesPtrOutput { + return o.ApplyT(func(v *DashboardRefreshSchedule) *DashboardRefreshScheduleFrequencyProperties { + if v == nil { + return nil + } + return v.Frequency + }).(DashboardRefreshScheduleFrequencyPropertiesPtrOutput) +} + +// The status of the schedule. Supported values are ENABLED and DISABLED. +func (o DashboardRefreshSchedulePtrOutput) Status() DashboardRefreshScheduleStatusPtrOutput { + return o.ApplyT(func(v *DashboardRefreshSchedule) *DashboardRefreshScheduleStatus { + if v == nil { + return nil + } + return v.Status + }).(DashboardRefreshScheduleStatusPtrOutput) +} + +// StartTime of the automatic schedule refresh. +func (o DashboardRefreshSchedulePtrOutput) TimeOfDay() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DashboardRefreshSchedule) *string { + if v == nil { + return nil + } + return v.TimeOfDay + }).(pulumi.StringPtrOutput) +} + +type DashboardRefreshScheduleFrequencyProperties struct { + // The frequency unit. Supported values are HOURS and DAYS. + Unit DashboardRefreshScheduleFrequencyPropertiesUnit `pulumi:"unit"` + // The frequency value. + Value int `pulumi:"value"` +} + +// DashboardRefreshScheduleFrequencyPropertiesInput is an input type that accepts DashboardRefreshScheduleFrequencyPropertiesArgs and DashboardRefreshScheduleFrequencyPropertiesOutput values. +// You can construct a concrete instance of `DashboardRefreshScheduleFrequencyPropertiesInput` via: +// +// DashboardRefreshScheduleFrequencyPropertiesArgs{...} +type DashboardRefreshScheduleFrequencyPropertiesInput interface { + pulumi.Input + + ToDashboardRefreshScheduleFrequencyPropertiesOutput() DashboardRefreshScheduleFrequencyPropertiesOutput + ToDashboardRefreshScheduleFrequencyPropertiesOutputWithContext(context.Context) DashboardRefreshScheduleFrequencyPropertiesOutput +} + +type DashboardRefreshScheduleFrequencyPropertiesArgs struct { + // The frequency unit. Supported values are HOURS and DAYS. + Unit DashboardRefreshScheduleFrequencyPropertiesUnitInput `pulumi:"unit"` + // The frequency value. + Value pulumi.IntInput `pulumi:"value"` +} + +func (DashboardRefreshScheduleFrequencyPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DashboardRefreshScheduleFrequencyProperties)(nil)).Elem() +} + +func (i DashboardRefreshScheduleFrequencyPropertiesArgs) ToDashboardRefreshScheduleFrequencyPropertiesOutput() DashboardRefreshScheduleFrequencyPropertiesOutput { + return i.ToDashboardRefreshScheduleFrequencyPropertiesOutputWithContext(context.Background()) +} + +func (i DashboardRefreshScheduleFrequencyPropertiesArgs) ToDashboardRefreshScheduleFrequencyPropertiesOutputWithContext(ctx context.Context) DashboardRefreshScheduleFrequencyPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(DashboardRefreshScheduleFrequencyPropertiesOutput) +} + +func (i DashboardRefreshScheduleFrequencyPropertiesArgs) ToDashboardRefreshScheduleFrequencyPropertiesPtrOutput() DashboardRefreshScheduleFrequencyPropertiesPtrOutput { + return i.ToDashboardRefreshScheduleFrequencyPropertiesPtrOutputWithContext(context.Background()) +} + +func (i DashboardRefreshScheduleFrequencyPropertiesArgs) ToDashboardRefreshScheduleFrequencyPropertiesPtrOutputWithContext(ctx context.Context) DashboardRefreshScheduleFrequencyPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DashboardRefreshScheduleFrequencyPropertiesOutput).ToDashboardRefreshScheduleFrequencyPropertiesPtrOutputWithContext(ctx) +} + +// DashboardRefreshScheduleFrequencyPropertiesPtrInput is an input type that accepts DashboardRefreshScheduleFrequencyPropertiesArgs, DashboardRefreshScheduleFrequencyPropertiesPtr and DashboardRefreshScheduleFrequencyPropertiesPtrOutput values. +// You can construct a concrete instance of `DashboardRefreshScheduleFrequencyPropertiesPtrInput` via: +// +// DashboardRefreshScheduleFrequencyPropertiesArgs{...} +// +// or: +// +// nil +type DashboardRefreshScheduleFrequencyPropertiesPtrInput interface { + pulumi.Input + + ToDashboardRefreshScheduleFrequencyPropertiesPtrOutput() DashboardRefreshScheduleFrequencyPropertiesPtrOutput + ToDashboardRefreshScheduleFrequencyPropertiesPtrOutputWithContext(context.Context) DashboardRefreshScheduleFrequencyPropertiesPtrOutput +} + +type dashboardRefreshScheduleFrequencyPropertiesPtrType DashboardRefreshScheduleFrequencyPropertiesArgs + +func DashboardRefreshScheduleFrequencyPropertiesPtr(v *DashboardRefreshScheduleFrequencyPropertiesArgs) DashboardRefreshScheduleFrequencyPropertiesPtrInput { + return (*dashboardRefreshScheduleFrequencyPropertiesPtrType)(v) +} + +func (*dashboardRefreshScheduleFrequencyPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DashboardRefreshScheduleFrequencyProperties)(nil)).Elem() +} + +func (i *dashboardRefreshScheduleFrequencyPropertiesPtrType) ToDashboardRefreshScheduleFrequencyPropertiesPtrOutput() DashboardRefreshScheduleFrequencyPropertiesPtrOutput { + return i.ToDashboardRefreshScheduleFrequencyPropertiesPtrOutputWithContext(context.Background()) +} + +func (i *dashboardRefreshScheduleFrequencyPropertiesPtrType) ToDashboardRefreshScheduleFrequencyPropertiesPtrOutputWithContext(ctx context.Context) DashboardRefreshScheduleFrequencyPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DashboardRefreshScheduleFrequencyPropertiesPtrOutput) +} + +type DashboardRefreshScheduleFrequencyPropertiesOutput struct{ *pulumi.OutputState } + +func (DashboardRefreshScheduleFrequencyPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DashboardRefreshScheduleFrequencyProperties)(nil)).Elem() +} + +func (o DashboardRefreshScheduleFrequencyPropertiesOutput) ToDashboardRefreshScheduleFrequencyPropertiesOutput() DashboardRefreshScheduleFrequencyPropertiesOutput { + return o +} + +func (o DashboardRefreshScheduleFrequencyPropertiesOutput) ToDashboardRefreshScheduleFrequencyPropertiesOutputWithContext(ctx context.Context) DashboardRefreshScheduleFrequencyPropertiesOutput { + return o +} + +func (o DashboardRefreshScheduleFrequencyPropertiesOutput) ToDashboardRefreshScheduleFrequencyPropertiesPtrOutput() DashboardRefreshScheduleFrequencyPropertiesPtrOutput { + return o.ToDashboardRefreshScheduleFrequencyPropertiesPtrOutputWithContext(context.Background()) +} + +func (o DashboardRefreshScheduleFrequencyPropertiesOutput) ToDashboardRefreshScheduleFrequencyPropertiesPtrOutputWithContext(ctx context.Context) DashboardRefreshScheduleFrequencyPropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DashboardRefreshScheduleFrequencyProperties) *DashboardRefreshScheduleFrequencyProperties { + return &v + }).(DashboardRefreshScheduleFrequencyPropertiesPtrOutput) +} + +// The frequency unit. Supported values are HOURS and DAYS. +func (o DashboardRefreshScheduleFrequencyPropertiesOutput) Unit() DashboardRefreshScheduleFrequencyPropertiesUnitOutput { + return o.ApplyT(func(v DashboardRefreshScheduleFrequencyProperties) DashboardRefreshScheduleFrequencyPropertiesUnit { + return v.Unit + }).(DashboardRefreshScheduleFrequencyPropertiesUnitOutput) +} + +// The frequency value. +func (o DashboardRefreshScheduleFrequencyPropertiesOutput) Value() pulumi.IntOutput { + return o.ApplyT(func(v DashboardRefreshScheduleFrequencyProperties) int { return v.Value }).(pulumi.IntOutput) +} + +type DashboardRefreshScheduleFrequencyPropertiesPtrOutput struct{ *pulumi.OutputState } + +func (DashboardRefreshScheduleFrequencyPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DashboardRefreshScheduleFrequencyProperties)(nil)).Elem() +} + +func (o DashboardRefreshScheduleFrequencyPropertiesPtrOutput) ToDashboardRefreshScheduleFrequencyPropertiesPtrOutput() DashboardRefreshScheduleFrequencyPropertiesPtrOutput { + return o +} + +func (o DashboardRefreshScheduleFrequencyPropertiesPtrOutput) ToDashboardRefreshScheduleFrequencyPropertiesPtrOutputWithContext(ctx context.Context) DashboardRefreshScheduleFrequencyPropertiesPtrOutput { + return o +} + +func (o DashboardRefreshScheduleFrequencyPropertiesPtrOutput) Elem() DashboardRefreshScheduleFrequencyPropertiesOutput { + return o.ApplyT(func(v *DashboardRefreshScheduleFrequencyProperties) DashboardRefreshScheduleFrequencyProperties { + if v != nil { + return *v + } + var ret DashboardRefreshScheduleFrequencyProperties + return ret + }).(DashboardRefreshScheduleFrequencyPropertiesOutput) +} + +// The frequency unit. Supported values are HOURS and DAYS. +func (o DashboardRefreshScheduleFrequencyPropertiesPtrOutput) Unit() DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput { + return o.ApplyT(func(v *DashboardRefreshScheduleFrequencyProperties) *DashboardRefreshScheduleFrequencyPropertiesUnit { + if v == nil { + return nil + } + return &v.Unit + }).(DashboardRefreshScheduleFrequencyPropertiesUnitPtrOutput) +} + +// The frequency value. +func (o DashboardRefreshScheduleFrequencyPropertiesPtrOutput) Value() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DashboardRefreshScheduleFrequencyProperties) *int { + if v == nil { + return nil + } + return &v.Value + }).(pulumi.IntPtrOutput) +} + +// An arbitrary set of tags (key-value pairs) for this dashboard. +type DashboardTag struct { + // The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + Key string `pulumi:"key"` + // The value for the tag. You can specify a value that is 1 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. + Value string `pulumi:"value"` +} + +// The dashboard widget +type DashboardWidget struct { + // The placeholder keys in the QueryStatement. For example: $StartTime$, $EndTime$, $Period$. + QueryParameters []string `pulumi:"queryParameters"` + // The SQL query statement on one or more event data stores. + QueryStatement string `pulumi:"queryStatement"` + // The view properties of the widget. + ViewProperties map[string]string `pulumi:"viewProperties"` +} + +// DashboardWidgetInput is an input type that accepts DashboardWidgetArgs and DashboardWidgetOutput values. +// You can construct a concrete instance of `DashboardWidgetInput` via: +// +// DashboardWidgetArgs{...} +type DashboardWidgetInput interface { + pulumi.Input + + ToDashboardWidgetOutput() DashboardWidgetOutput + ToDashboardWidgetOutputWithContext(context.Context) DashboardWidgetOutput +} + +// The dashboard widget +type DashboardWidgetArgs struct { + // The placeholder keys in the QueryStatement. For example: $StartTime$, $EndTime$, $Period$. + QueryParameters pulumi.StringArrayInput `pulumi:"queryParameters"` + // The SQL query statement on one or more event data stores. + QueryStatement pulumi.StringInput `pulumi:"queryStatement"` + // The view properties of the widget. + ViewProperties pulumi.StringMapInput `pulumi:"viewProperties"` +} + +func (DashboardWidgetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DashboardWidget)(nil)).Elem() +} + +func (i DashboardWidgetArgs) ToDashboardWidgetOutput() DashboardWidgetOutput { + return i.ToDashboardWidgetOutputWithContext(context.Background()) +} + +func (i DashboardWidgetArgs) ToDashboardWidgetOutputWithContext(ctx context.Context) DashboardWidgetOutput { + return pulumi.ToOutputWithContext(ctx, i).(DashboardWidgetOutput) +} + +// DashboardWidgetArrayInput is an input type that accepts DashboardWidgetArray and DashboardWidgetArrayOutput values. +// You can construct a concrete instance of `DashboardWidgetArrayInput` via: +// +// DashboardWidgetArray{ DashboardWidgetArgs{...} } +type DashboardWidgetArrayInput interface { + pulumi.Input + + ToDashboardWidgetArrayOutput() DashboardWidgetArrayOutput + ToDashboardWidgetArrayOutputWithContext(context.Context) DashboardWidgetArrayOutput +} + +type DashboardWidgetArray []DashboardWidgetInput + +func (DashboardWidgetArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DashboardWidget)(nil)).Elem() +} + +func (i DashboardWidgetArray) ToDashboardWidgetArrayOutput() DashboardWidgetArrayOutput { + return i.ToDashboardWidgetArrayOutputWithContext(context.Background()) +} + +func (i DashboardWidgetArray) ToDashboardWidgetArrayOutputWithContext(ctx context.Context) DashboardWidgetArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DashboardWidgetArrayOutput) +} + +// The dashboard widget +type DashboardWidgetOutput struct{ *pulumi.OutputState } + +func (DashboardWidgetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DashboardWidget)(nil)).Elem() +} + +func (o DashboardWidgetOutput) ToDashboardWidgetOutput() DashboardWidgetOutput { + return o +} + +func (o DashboardWidgetOutput) ToDashboardWidgetOutputWithContext(ctx context.Context) DashboardWidgetOutput { + return o +} + +// The placeholder keys in the QueryStatement. For example: $StartTime$, $EndTime$, $Period$. +func (o DashboardWidgetOutput) QueryParameters() pulumi.StringArrayOutput { + return o.ApplyT(func(v DashboardWidget) []string { return v.QueryParameters }).(pulumi.StringArrayOutput) +} + +// The SQL query statement on one or more event data stores. +func (o DashboardWidgetOutput) QueryStatement() pulumi.StringOutput { + return o.ApplyT(func(v DashboardWidget) string { return v.QueryStatement }).(pulumi.StringOutput) +} + +// The view properties of the widget. +func (o DashboardWidgetOutput) ViewProperties() pulumi.StringMapOutput { + return o.ApplyT(func(v DashboardWidget) map[string]string { return v.ViewProperties }).(pulumi.StringMapOutput) +} + +type DashboardWidgetArrayOutput struct{ *pulumi.OutputState } + +func (DashboardWidgetArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DashboardWidget)(nil)).Elem() +} + +func (o DashboardWidgetArrayOutput) ToDashboardWidgetArrayOutput() DashboardWidgetArrayOutput { + return o +} + +func (o DashboardWidgetArrayOutput) ToDashboardWidgetArrayOutputWithContext(ctx context.Context) DashboardWidgetArrayOutput { + return o +} + +func (o DashboardWidgetArrayOutput) Index(i pulumi.IntInput) DashboardWidgetOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DashboardWidget { + return vs[0].([]DashboardWidget)[vs[1].(int)] + }).(DashboardWidgetOutput) +} + // Advanced event selectors let you create fine-grained selectors for the following AWS CloudTrail event record fields. They help you control costs by logging only those events that are important to you. type EventDataStoreAdvancedEventSelector struct { // Contains all selector statements in an advanced event selector. @@ -1125,6 +1583,12 @@ type TrailTag struct { func init() { pulumi.RegisterInputType(reflect.TypeOf((*ChannelDestinationInput)(nil)).Elem(), ChannelDestinationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ChannelDestinationArrayInput)(nil)).Elem(), ChannelDestinationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DashboardRefreshScheduleInput)(nil)).Elem(), DashboardRefreshScheduleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DashboardRefreshSchedulePtrInput)(nil)).Elem(), DashboardRefreshScheduleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DashboardRefreshScheduleFrequencyPropertiesInput)(nil)).Elem(), DashboardRefreshScheduleFrequencyPropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DashboardRefreshScheduleFrequencyPropertiesPtrInput)(nil)).Elem(), DashboardRefreshScheduleFrequencyPropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DashboardWidgetInput)(nil)).Elem(), DashboardWidgetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DashboardWidgetArrayInput)(nil)).Elem(), DashboardWidgetArray{}) pulumi.RegisterInputType(reflect.TypeOf((*EventDataStoreAdvancedEventSelectorInput)(nil)).Elem(), EventDataStoreAdvancedEventSelectorArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*EventDataStoreAdvancedEventSelectorArrayInput)(nil)).Elem(), EventDataStoreAdvancedEventSelectorArray{}) pulumi.RegisterInputType(reflect.TypeOf((*EventDataStoreAdvancedFieldSelectorInput)(nil)).Elem(), EventDataStoreAdvancedFieldSelectorArgs{}) @@ -1143,6 +1607,12 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*TrailInsightSelectorArrayInput)(nil)).Elem(), TrailInsightSelectorArray{}) pulumi.RegisterOutputType(ChannelDestinationOutput{}) pulumi.RegisterOutputType(ChannelDestinationArrayOutput{}) + pulumi.RegisterOutputType(DashboardRefreshScheduleOutput{}) + pulumi.RegisterOutputType(DashboardRefreshSchedulePtrOutput{}) + pulumi.RegisterOutputType(DashboardRefreshScheduleFrequencyPropertiesOutput{}) + pulumi.RegisterOutputType(DashboardRefreshScheduleFrequencyPropertiesPtrOutput{}) + pulumi.RegisterOutputType(DashboardWidgetOutput{}) + pulumi.RegisterOutputType(DashboardWidgetArrayOutput{}) pulumi.RegisterOutputType(EventDataStoreAdvancedEventSelectorOutput{}) pulumi.RegisterOutputType(EventDataStoreAdvancedEventSelectorArrayOutput{}) pulumi.RegisterOutputType(EventDataStoreAdvancedFieldSelectorOutput{}) diff --git a/sdk/go/aws/customerprofiles/pulumiTypes.go b/sdk/go/aws/customerprofiles/pulumiTypes.go index 24060d252a..067caeb55d 100644 --- a/sdk/go/aws/customerprofiles/pulumiTypes.go +++ b/sdk/go/aws/customerprofiles/pulumiTypes.go @@ -6770,10 +6770,14 @@ func (o SegmentDefinitionExtraLengthValueProfileDimensionPtrOutput) Values() pul // An array that defines the set of segment criteria to evaluate when handling segment groups for the segment. type SegmentDefinitionGroup struct { - Dimensions []interface{} `pulumi:"dimensions"` + // Defines the attributes to segment on. + Dimensions []interface{} `pulumi:"dimensions"` + // Defines the starting source of data. SourceSegments []SegmentDefinitionSourceSegment `pulumi:"sourceSegments"` - SourceType *SegmentDefinitionIncludeOptions `pulumi:"sourceType"` - Type *SegmentDefinitionIncludeOptions `pulumi:"type"` + // Defines how to interact with the source data. + SourceType *SegmentDefinitionIncludeOptions `pulumi:"sourceType"` + // Defines how to interact with the profiles found in the current filtering. + Type *SegmentDefinitionIncludeOptions `pulumi:"type"` } // SegmentDefinitionGroupInput is an input type that accepts SegmentDefinitionGroupArgs and SegmentDefinitionGroupOutput values. @@ -6789,10 +6793,14 @@ type SegmentDefinitionGroupInput interface { // An array that defines the set of segment criteria to evaluate when handling segment groups for the segment. type SegmentDefinitionGroupArgs struct { - Dimensions pulumi.ArrayInput `pulumi:"dimensions"` + // Defines the attributes to segment on. + Dimensions pulumi.ArrayInput `pulumi:"dimensions"` + // Defines the starting source of data. SourceSegments SegmentDefinitionSourceSegmentArrayInput `pulumi:"sourceSegments"` - SourceType SegmentDefinitionIncludeOptionsPtrInput `pulumi:"sourceType"` - Type SegmentDefinitionIncludeOptionsPtrInput `pulumi:"type"` + // Defines how to interact with the source data. + SourceType SegmentDefinitionIncludeOptionsPtrInput `pulumi:"sourceType"` + // Defines how to interact with the profiles found in the current filtering. + Type SegmentDefinitionIncludeOptionsPtrInput `pulumi:"type"` } func (SegmentDefinitionGroupArgs) ElementType() reflect.Type { @@ -6847,18 +6855,22 @@ func (o SegmentDefinitionGroupOutput) ToSegmentDefinitionGroupOutputWithContext( return o } +// Defines the attributes to segment on. func (o SegmentDefinitionGroupOutput) Dimensions() pulumi.ArrayOutput { return o.ApplyT(func(v SegmentDefinitionGroup) []interface{} { return v.Dimensions }).(pulumi.ArrayOutput) } +// Defines the starting source of data. func (o SegmentDefinitionGroupOutput) SourceSegments() SegmentDefinitionSourceSegmentArrayOutput { return o.ApplyT(func(v SegmentDefinitionGroup) []SegmentDefinitionSourceSegment { return v.SourceSegments }).(SegmentDefinitionSourceSegmentArrayOutput) } +// Defines how to interact with the source data. func (o SegmentDefinitionGroupOutput) SourceType() SegmentDefinitionIncludeOptionsPtrOutput { return o.ApplyT(func(v SegmentDefinitionGroup) *SegmentDefinitionIncludeOptions { return v.SourceType }).(SegmentDefinitionIncludeOptionsPtrOutput) } +// Defines how to interact with the profiles found in the current filtering. func (o SegmentDefinitionGroupOutput) Type() SegmentDefinitionIncludeOptionsPtrOutput { return o.ApplyT(func(v SegmentDefinitionGroup) *SegmentDefinitionIncludeOptions { return v.Type }).(SegmentDefinitionIncludeOptionsPtrOutput) } @@ -7403,7 +7415,9 @@ func (o SegmentDefinitionRangeOverridePtrOutput) Unit() SegmentDefinitionRangeOv } type SegmentDefinitionSegmentGroup struct { - Groups []SegmentDefinitionGroup `pulumi:"groups"` + // Holds the list of groups within the segment definition. + Groups []SegmentDefinitionGroup `pulumi:"groups"` + // Defines whether to include or exclude the profiles that fit the segment criteria. Include *SegmentDefinitionIncludeOptions `pulumi:"include"` } @@ -7419,7 +7433,9 @@ type SegmentDefinitionSegmentGroupInput interface { } type SegmentDefinitionSegmentGroupArgs struct { - Groups SegmentDefinitionGroupArrayInput `pulumi:"groups"` + // Holds the list of groups within the segment definition. + Groups SegmentDefinitionGroupArrayInput `pulumi:"groups"` + // Defines whether to include or exclude the profiles that fit the segment criteria. Include SegmentDefinitionIncludeOptionsPtrInput `pulumi:"include"` } @@ -7449,16 +7465,19 @@ func (o SegmentDefinitionSegmentGroupOutput) ToSegmentDefinitionSegmentGroupOutp return o } +// Holds the list of groups within the segment definition. func (o SegmentDefinitionSegmentGroupOutput) Groups() SegmentDefinitionGroupArrayOutput { return o.ApplyT(func(v SegmentDefinitionSegmentGroup) []SegmentDefinitionGroup { return v.Groups }).(SegmentDefinitionGroupArrayOutput) } +// Defines whether to include or exclude the profiles that fit the segment criteria. func (o SegmentDefinitionSegmentGroupOutput) Include() SegmentDefinitionIncludeOptionsPtrOutput { return o.ApplyT(func(v SegmentDefinitionSegmentGroup) *SegmentDefinitionIncludeOptions { return v.Include }).(SegmentDefinitionIncludeOptionsPtrOutput) } // The base segment to build the segment on. type SegmentDefinitionSourceSegment struct { + // The name of the source segment. SegmentDefinitionName *string `pulumi:"segmentDefinitionName"` } @@ -7475,6 +7494,7 @@ type SegmentDefinitionSourceSegmentInput interface { // The base segment to build the segment on. type SegmentDefinitionSourceSegmentArgs struct { + // The name of the source segment. SegmentDefinitionName pulumi.StringPtrInput `pulumi:"segmentDefinitionName"` } @@ -7530,6 +7550,7 @@ func (o SegmentDefinitionSourceSegmentOutput) ToSegmentDefinitionSourceSegmentOu return o } +// The name of the source segment. func (o SegmentDefinitionSourceSegmentOutput) SegmentDefinitionName() pulumi.StringPtrOutput { return o.ApplyT(func(v SegmentDefinitionSourceSegment) *string { return v.SegmentDefinitionName }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/ecs/getService.go b/sdk/go/aws/ecs/getService.go index e5fd1c96ba..12e2fd7b3b 100644 --- a/sdk/go/aws/ecs/getService.go +++ b/sdk/go/aws/ecs/getService.go @@ -34,6 +34,9 @@ type LookupServiceArgs struct { } type LookupServiceResult struct { + // Indicates whether to use Availability Zone rebalancing for the service. + // + // For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* . AvailabilityZoneRebalancing *ServiceAvailabilityZoneRebalancing `pulumi:"availabilityZoneRebalancing"` // The capacity provider strategy to use for the service. // If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used. @@ -137,6 +140,9 @@ func (o LookupServiceResultOutput) ToLookupServiceResultOutputWithContext(ctx co return o } +// Indicates whether to use Availability Zone rebalancing for the service. +// +// For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* . func (o LookupServiceResultOutput) AvailabilityZoneRebalancing() ServiceAvailabilityZoneRebalancingPtrOutput { return o.ApplyT(func(v LookupServiceResult) *ServiceAvailabilityZoneRebalancing { return v.AvailabilityZoneRebalancing }).(ServiceAvailabilityZoneRebalancingPtrOutput) } diff --git a/sdk/go/aws/ecs/pulumiEnums.go b/sdk/go/aws/ecs/pulumiEnums.go index f04a2f8b4b..8986b1f9c0 100644 --- a/sdk/go/aws/ecs/pulumiEnums.go +++ b/sdk/go/aws/ecs/pulumiEnums.go @@ -688,6 +688,9 @@ const ( ClusterCapacityProviderAssociationsCapacityProvider0FargateSpot = ClusterCapacityProviderAssociationsCapacityProvider0("FARGATE_SPOT") ) +// Indicates whether to use Availability Zone rebalancing for the service. +// +// For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* . type ServiceAvailabilityZoneRebalancing string const ( diff --git a/sdk/go/aws/ecs/pulumiTypes.go b/sdk/go/aws/ecs/pulumiTypes.go index f567e7e097..013c31cc6e 100644 --- a/sdk/go/aws/ecs/pulumiTypes.go +++ b/sdk/go/aws/ecs/pulumiTypes.go @@ -8311,7 +8311,7 @@ type TaskDefinitionHealthCheck struct { // ``[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]`` // You don't include the double quotes and brackets when you use the AWS Management Console. // ``CMD-SHELL, curl -f http://localhost/ || exit 1`` - // An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command + // An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command. Command []string `pulumi:"command"` // The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. Interval *int `pulumi:"interval"` @@ -8349,7 +8349,7 @@ type TaskDefinitionHealthCheckArgs struct { // ``[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]`` // You don't include the double quotes and brackets when you use the AWS Management Console. // ``CMD-SHELL, curl -f http://localhost/ || exit 1`` - // An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command + // An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command. Command pulumi.StringArrayInput `pulumi:"command"` // The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. Interval pulumi.IntPtrInput `pulumi:"interval"` @@ -8453,7 +8453,7 @@ func (o TaskDefinitionHealthCheckOutput) ToTaskDefinitionHealthCheckPtrOutputWit // ``[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]`` // You don't include the double quotes and brackets when you use the AWS Management Console. // ``CMD-SHELL, curl -f http://localhost/ || exit 1`` -// An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command +// An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command. func (o TaskDefinitionHealthCheckOutput) Command() pulumi.StringArrayOutput { return o.ApplyT(func(v TaskDefinitionHealthCheck) []string { return v.Command }).(pulumi.StringArrayOutput) } @@ -8510,7 +8510,7 @@ func (o TaskDefinitionHealthCheckPtrOutput) Elem() TaskDefinitionHealthCheckOutp // ``[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]`` // You don't include the double quotes and brackets when you use the AWS Management Console. // ``CMD-SHELL, curl -f http://localhost/ || exit 1`` -// An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command +// An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command. func (o TaskDefinitionHealthCheckPtrOutput) Command() pulumi.StringArrayOutput { return o.ApplyT(func(v *TaskDefinitionHealthCheck) []string { if v == nil { @@ -10028,8 +10028,7 @@ type TaskDefinitionPortMapping struct { // The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under ``/proc/sys/net/ipv4/ip_local_port_range``. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. // The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the ``remainingResources`` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota. HostPort *int `pulumi:"hostPort"` - // The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. - // For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. + // The name that's used for the port mapping. This parameter is the name that you use in the ``serviceConnectConfiguration`` and the ``vpcLatticeConfigurations`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. Name *string `pulumi:"name"` // The protocol used for the port mapping. Valid values are ``tcp`` and ``udp``. The default is ``tcp``. ``protocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. Protocol *string `pulumi:"protocol"` @@ -10091,8 +10090,7 @@ type TaskDefinitionPortMappingArgs struct { // The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under ``/proc/sys/net/ipv4/ip_local_port_range``. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. // The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the ``remainingResources`` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota. HostPort pulumi.IntPtrInput `pulumi:"hostPort"` - // The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. - // For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. + // The name that's used for the port mapping. This parameter is the name that you use in the ``serviceConnectConfiguration`` and the ``vpcLatticeConfigurations`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. Name pulumi.StringPtrInput `pulumi:"name"` // The protocol used for the port mapping. Valid values are ``tcp`` and ``udp``. The default is ``tcp``. ``protocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. Protocol pulumi.StringPtrInput `pulumi:"protocol"` @@ -10209,9 +10207,7 @@ func (o TaskDefinitionPortMappingOutput) HostPort() pulumi.IntPtrOutput { return o.ApplyT(func(v TaskDefinitionPortMapping) *int { return v.HostPort }).(pulumi.IntPtrOutput) } -// The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the “serviceConnectConfiguration“ of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. -// -// For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. +// The name that's used for the port mapping. This parameter is the name that you use in the “serviceConnectConfiguration“ and the “vpcLatticeConfigurations“ of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. func (o TaskDefinitionPortMappingOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v TaskDefinitionPortMapping) *string { return v.Name }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/ecs/service.go b/sdk/go/aws/ecs/service.go index 10b4ced2be..41e37e84b7 100644 --- a/sdk/go/aws/ecs/service.go +++ b/sdk/go/aws/ecs/service.go @@ -19,6 +19,9 @@ import ( type Service struct { pulumi.CustomResourceState + // Indicates whether to use Availability Zone rebalancing for the service. + // + // For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* . AvailabilityZoneRebalancing ServiceAvailabilityZoneRebalancingPtrOutput `pulumi:"availabilityZoneRebalancing"` // The capacity provider strategy to use for the service. // If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used. @@ -151,6 +154,9 @@ func (ServiceState) ElementType() reflect.Type { } type serviceArgs struct { + // Indicates whether to use Availability Zone rebalancing for the service. + // + // For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* . AvailabilityZoneRebalancing *ServiceAvailabilityZoneRebalancing `pulumi:"availabilityZoneRebalancing"` // The capacity provider strategy to use for the service. // If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used. @@ -232,6 +238,9 @@ type serviceArgs struct { // The set of arguments for constructing a Service resource. type ServiceArgs struct { + // Indicates whether to use Availability Zone rebalancing for the service. + // + // For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* . AvailabilityZoneRebalancing ServiceAvailabilityZoneRebalancingPtrInput // The capacity provider strategy to use for the service. // If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used. @@ -348,6 +357,9 @@ func (o ServiceOutput) ToServiceOutputWithContext(ctx context.Context) ServiceOu return o } +// Indicates whether to use Availability Zone rebalancing for the service. +// +// For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* . func (o ServiceOutput) AvailabilityZoneRebalancing() ServiceAvailabilityZoneRebalancingPtrOutput { return o.ApplyT(func(v *Service) ServiceAvailabilityZoneRebalancingPtrOutput { return v.AvailabilityZoneRebalancing }).(ServiceAvailabilityZoneRebalancingPtrOutput) } diff --git a/sdk/go/aws/elasticloadbalancingv2/getListener.go b/sdk/go/aws/elasticloadbalancingv2/getListener.go index 27ef10ae31..02004c9150 100644 --- a/sdk/go/aws/elasticloadbalancingv2/getListener.go +++ b/sdk/go/aws/elasticloadbalancingv2/getListener.go @@ -42,9 +42,9 @@ type LookupListenerResult struct { ListenerAttributes []ListenerAttribute `pulumi:"listenerAttributes"` // The mutual authentication configuration information. MutualAuthentication *ListenerMutualAuthentication `pulumi:"mutualAuthentication"` - // The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer. + // The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer. Port *int `pulumi:"port"` - // The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer. + // The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer. Protocol *string `pulumi:"protocol"` // [HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported. // Updating the security policy can result in interruptions if the load balancer is handling a high volume of traffic. @@ -128,12 +128,12 @@ func (o LookupListenerResultOutput) MutualAuthentication() ListenerMutualAuthent return o.ApplyT(func(v LookupListenerResult) *ListenerMutualAuthentication { return v.MutualAuthentication }).(ListenerMutualAuthenticationPtrOutput) } -// The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer. +// The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer. func (o LookupListenerResultOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v LookupListenerResult) *int { return v.Port }).(pulumi.IntPtrOutput) } -// The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer. +// The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer. func (o LookupListenerResultOutput) Protocol() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupListenerResult) *string { return v.Protocol }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/elasticloadbalancingv2/getLoadBalancer.go b/sdk/go/aws/elasticloadbalancingv2/getLoadBalancer.go index 773469a829..7e771f5e23 100644 --- a/sdk/go/aws/elasticloadbalancingv2/getLoadBalancer.go +++ b/sdk/go/aws/elasticloadbalancingv2/getLoadBalancer.go @@ -33,15 +33,14 @@ type LookupLoadBalancerResult struct { CanonicalHostedZoneId *string `pulumi:"canonicalHostedZoneId"` // The DNS name for the load balancer. For example, `my-load-balancer-424835706.us-west-2.elb.amazonaws.com` . DnsName *string `pulumi:"dnsName"` - // [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + // [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``. EnablePrefixForIpv6SourceNat *string `pulumi:"enablePrefixForIpv6SourceNat"` // Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic *string `pulumi:"enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"` - // Note: Internal load balancers must use the ``ipv4`` IP address type. - // [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses). - // Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors. - // [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener. - // [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). + // The IP address type. Internal load balancers must use ``ipv4``. + // [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). + // Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. + // [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses). IpAddressType *string `pulumi:"ipAddressType"` // The Amazon Resource Name (ARN) of the load balancer. LoadBalancerArn *string `pulumi:"loadBalancerArn"` @@ -50,22 +49,22 @@ type LookupLoadBalancerResult struct { // The full name of the load balancer. For example, `app/my-load-balancer/50dc6c495c0c9188` . LoadBalancerFullName *string `pulumi:"loadBalancerFullName"` // The name of the load balancer. For example, `my-load-balancer` . - LoadBalancerName *string `pulumi:"loadBalancerName"` + LoadBalancerName *string `pulumi:"loadBalancerName"` + MinimumLoadBalancerCapacity *LoadBalancerMinimumLoadBalancerCapacity `pulumi:"minimumLoadBalancerCapacity"` // [Application Load Balancers and Network Load Balancers] The IDs of the security groups for the load balancer. SecurityGroups []string `pulumi:"securityGroups"` // The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. - // [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets. + // [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets. // [Application Load Balancers on Outposts] You must specify one Outpost subnet. // [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. // [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet. - // [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets. + // [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets. SubnetMappings []LoadBalancerSubnetMapping `pulumi:"subnetMappings"` // The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets. // [Application Load Balancers] You must specify subnets from at least two Availability Zones. // [Application Load Balancers on Outposts] You must specify one Outpost subnet. // [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. - // [Network Load Balancers] You can specify subnets from one or more Availability Zones. - // [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. + // [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones. Subnets []string `pulumi:"subnets"` // The tags to assign to the load balancer. Tags []aws.Tag `pulumi:"tags"` @@ -123,7 +122,7 @@ func (o LookupLoadBalancerResultOutput) DnsName() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupLoadBalancerResult) *string { return v.DnsName }).(pulumi.StringPtrOutput) } -// [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . +// [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be “dualstack“. The default value is “off“. func (o LookupLoadBalancerResultOutput) EnablePrefixForIpv6SourceNat() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupLoadBalancerResult) *string { return v.EnablePrefixForIpv6SourceNat }).(pulumi.StringPtrOutput) } @@ -135,12 +134,11 @@ func (o LookupLoadBalancerResultOutput) EnforceSecurityGroupInboundRulesOnPrivat }).(pulumi.StringPtrOutput) } -// Note: Internal load balancers must use the “ipv4“ IP address type. +// The IP address type. Internal load balancers must use “ipv4“. // -// [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses). -// Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors. -// [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener. -// [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). +// [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). +// Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. +// [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses). func (o LookupLoadBalancerResultOutput) IpAddressType() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupLoadBalancerResult) *string { return v.IpAddressType }).(pulumi.StringPtrOutput) } @@ -165,6 +163,12 @@ func (o LookupLoadBalancerResultOutput) LoadBalancerName() pulumi.StringPtrOutpu return o.ApplyT(func(v LookupLoadBalancerResult) *string { return v.LoadBalancerName }).(pulumi.StringPtrOutput) } +func (o LookupLoadBalancerResultOutput) MinimumLoadBalancerCapacity() LoadBalancerMinimumLoadBalancerCapacityPtrOutput { + return o.ApplyT(func(v LookupLoadBalancerResult) *LoadBalancerMinimumLoadBalancerCapacity { + return v.MinimumLoadBalancerCapacity + }).(LoadBalancerMinimumLoadBalancerCapacityPtrOutput) +} + // [Application Load Balancers and Network Load Balancers] The IDs of the security groups for the load balancer. func (o LookupLoadBalancerResultOutput) SecurityGroups() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupLoadBalancerResult) []string { return v.SecurityGroups }).(pulumi.StringArrayOutput) @@ -172,11 +176,11 @@ func (o LookupLoadBalancerResultOutput) SecurityGroups() pulumi.StringArrayOutpu // The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. // -// [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets. +// [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets. // [Application Load Balancers on Outposts] You must specify one Outpost subnet. // [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. // [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet. -// [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets. +// [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets. func (o LookupLoadBalancerResultOutput) SubnetMappings() LoadBalancerSubnetMappingArrayOutput { return o.ApplyT(func(v LookupLoadBalancerResult) []LoadBalancerSubnetMapping { return v.SubnetMappings }).(LoadBalancerSubnetMappingArrayOutput) } @@ -186,8 +190,7 @@ func (o LookupLoadBalancerResultOutput) SubnetMappings() LoadBalancerSubnetMappi // [Application Load Balancers] You must specify subnets from at least two Availability Zones. // [Application Load Balancers on Outposts] You must specify one Outpost subnet. // [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. -// [Network Load Balancers] You can specify subnets from one or more Availability Zones. -// [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. +// [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones. func (o LookupLoadBalancerResultOutput) Subnets() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupLoadBalancerResult) []string { return v.Subnets }).(pulumi.StringArrayOutput) } diff --git a/sdk/go/aws/elasticloadbalancingv2/listener.go b/sdk/go/aws/elasticloadbalancingv2/listener.go index 9791699400..89b35733db 100644 --- a/sdk/go/aws/elasticloadbalancingv2/listener.go +++ b/sdk/go/aws/elasticloadbalancingv2/listener.go @@ -32,9 +32,9 @@ type Listener struct { LoadBalancerArn pulumi.StringOutput `pulumi:"loadBalancerArn"` // The mutual authentication configuration information. MutualAuthentication ListenerMutualAuthenticationPtrOutput `pulumi:"mutualAuthentication"` - // The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer. + // The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer. Port pulumi.IntPtrOutput `pulumi:"port"` - // The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer. + // The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer. Protocol pulumi.StringPtrOutput `pulumi:"protocol"` // [HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported. // Updating the security policy can result in interruptions if the load balancer is handling a high volume of traffic. @@ -106,9 +106,9 @@ type listenerArgs struct { LoadBalancerArn string `pulumi:"loadBalancerArn"` // The mutual authentication configuration information. MutualAuthentication *ListenerMutualAuthentication `pulumi:"mutualAuthentication"` - // The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer. + // The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer. Port *int `pulumi:"port"` - // The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer. + // The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer. Protocol *string `pulumi:"protocol"` // [HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported. // Updating the security policy can result in interruptions if the load balancer is handling a high volume of traffic. @@ -132,9 +132,9 @@ type ListenerArgs struct { LoadBalancerArn pulumi.StringInput // The mutual authentication configuration information. MutualAuthentication ListenerMutualAuthenticationPtrInput - // The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer. + // The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer. Port pulumi.IntPtrInput - // The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer. + // The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer. Protocol pulumi.StringPtrInput // [HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported. // Updating the security policy can result in interruptions if the load balancer is handling a high volume of traffic. @@ -218,12 +218,12 @@ func (o ListenerOutput) MutualAuthentication() ListenerMutualAuthenticationPtrOu return o.ApplyT(func(v *Listener) ListenerMutualAuthenticationPtrOutput { return v.MutualAuthentication }).(ListenerMutualAuthenticationPtrOutput) } -// The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer. +// The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer. func (o ListenerOutput) Port() pulumi.IntPtrOutput { return o.ApplyT(func(v *Listener) pulumi.IntPtrOutput { return v.Port }).(pulumi.IntPtrOutput) } -// The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer. +// The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer. func (o ListenerOutput) Protocol() pulumi.StringPtrOutput { return o.ApplyT(func(v *Listener) pulumi.StringPtrOutput { return v.Protocol }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/elasticloadbalancingv2/loadBalancer.go b/sdk/go/aws/elasticloadbalancingv2/loadBalancer.go index 8e3b525199..1e307a8779 100644 --- a/sdk/go/aws/elasticloadbalancingv2/loadBalancer.go +++ b/sdk/go/aws/elasticloadbalancingv2/loadBalancer.go @@ -20,15 +20,14 @@ type LoadBalancer struct { CanonicalHostedZoneId pulumi.StringOutput `pulumi:"canonicalHostedZoneId"` // The DNS name for the load balancer. For example, `my-load-balancer-424835706.us-west-2.elb.amazonaws.com` . DnsName pulumi.StringOutput `pulumi:"dnsName"` - // [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + // [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``. EnablePrefixForIpv6SourceNat pulumi.StringPtrOutput `pulumi:"enablePrefixForIpv6SourceNat"` // Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic pulumi.StringPtrOutput `pulumi:"enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"` - // Note: Internal load balancers must use the ``ipv4`` IP address type. - // [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses). - // Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors. - // [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener. - // [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). + // The IP address type. Internal load balancers must use ``ipv4``. + // [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). + // Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. + // [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses). IpAddressType pulumi.StringPtrOutput `pulumi:"ipAddressType"` // The Amazon Resource Name (ARN) of the load balancer. LoadBalancerArn pulumi.StringOutput `pulumi:"loadBalancerArn"` @@ -37,30 +36,30 @@ type LoadBalancer struct { // The full name of the load balancer. For example, `app/my-load-balancer/50dc6c495c0c9188` . LoadBalancerFullName pulumi.StringOutput `pulumi:"loadBalancerFullName"` // The name of the load balancer. For example, `my-load-balancer` . - LoadBalancerName pulumi.StringOutput `pulumi:"loadBalancerName"` + LoadBalancerName pulumi.StringOutput `pulumi:"loadBalancerName"` + MinimumLoadBalancerCapacity LoadBalancerMinimumLoadBalancerCapacityPtrOutput `pulumi:"minimumLoadBalancerCapacity"` // The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with "internal-". // If you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates. To replace the resource, specify a new name. Name pulumi.StringPtrOutput `pulumi:"name"` // The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet. // The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer. // The default is an Internet-facing load balancer. - // You cannot specify a scheme for a Gateway Load Balancer. + // You can't specify a scheme for a Gateway Load Balancer. Scheme pulumi.StringPtrOutput `pulumi:"scheme"` // [Application Load Balancers and Network Load Balancers] The IDs of the security groups for the load balancer. SecurityGroups pulumi.StringArrayOutput `pulumi:"securityGroups"` // The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. - // [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets. + // [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets. // [Application Load Balancers on Outposts] You must specify one Outpost subnet. // [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. // [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet. - // [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets. + // [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets. SubnetMappings LoadBalancerSubnetMappingArrayOutput `pulumi:"subnetMappings"` // The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets. // [Application Load Balancers] You must specify subnets from at least two Availability Zones. // [Application Load Balancers on Outposts] You must specify one Outpost subnet. // [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. - // [Network Load Balancers] You can specify subnets from one or more Availability Zones. - // [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. + // [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones. Subnets pulumi.StringArrayOutput `pulumi:"subnets"` // The tags to assign to the load balancer. Tags aws.TagArrayOutput `pulumi:"tags"` @@ -114,41 +113,40 @@ func (LoadBalancerState) ElementType() reflect.Type { } type loadBalancerArgs struct { - // [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + // [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``. EnablePrefixForIpv6SourceNat *string `pulumi:"enablePrefixForIpv6SourceNat"` // Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic *string `pulumi:"enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"` - // Note: Internal load balancers must use the ``ipv4`` IP address type. - // [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses). - // Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors. - // [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener. - // [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). + // The IP address type. Internal load balancers must use ``ipv4``. + // [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). + // Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. + // [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses). IpAddressType *string `pulumi:"ipAddressType"` // The load balancer attributes. - LoadBalancerAttributes []LoadBalancerAttribute `pulumi:"loadBalancerAttributes"` + LoadBalancerAttributes []LoadBalancerAttribute `pulumi:"loadBalancerAttributes"` + MinimumLoadBalancerCapacity *LoadBalancerMinimumLoadBalancerCapacity `pulumi:"minimumLoadBalancerCapacity"` // The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with "internal-". // If you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates. To replace the resource, specify a new name. Name *string `pulumi:"name"` // The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet. // The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer. // The default is an Internet-facing load balancer. - // You cannot specify a scheme for a Gateway Load Balancer. + // You can't specify a scheme for a Gateway Load Balancer. Scheme *string `pulumi:"scheme"` // [Application Load Balancers and Network Load Balancers] The IDs of the security groups for the load balancer. SecurityGroups []string `pulumi:"securityGroups"` // The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. - // [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets. + // [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets. // [Application Load Balancers on Outposts] You must specify one Outpost subnet. // [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. // [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet. - // [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets. + // [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets. SubnetMappings []LoadBalancerSubnetMapping `pulumi:"subnetMappings"` // The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets. // [Application Load Balancers] You must specify subnets from at least two Availability Zones. // [Application Load Balancers on Outposts] You must specify one Outpost subnet. // [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. - // [Network Load Balancers] You can specify subnets from one or more Availability Zones. - // [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. + // [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones. Subnets []string `pulumi:"subnets"` // The tags to assign to the load balancer. Tags []aws.Tag `pulumi:"tags"` @@ -158,41 +156,40 @@ type loadBalancerArgs struct { // The set of arguments for constructing a LoadBalancer resource. type LoadBalancerArgs struct { - // [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + // [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``. EnablePrefixForIpv6SourceNat pulumi.StringPtrInput // Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic pulumi.StringPtrInput - // Note: Internal load balancers must use the ``ipv4`` IP address type. - // [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses). - // Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors. - // [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener. - // [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). + // The IP address type. Internal load balancers must use ``ipv4``. + // [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). + // Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. + // [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses). IpAddressType pulumi.StringPtrInput // The load balancer attributes. - LoadBalancerAttributes LoadBalancerAttributeArrayInput + LoadBalancerAttributes LoadBalancerAttributeArrayInput + MinimumLoadBalancerCapacity LoadBalancerMinimumLoadBalancerCapacityPtrInput // The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with "internal-". // If you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates. To replace the resource, specify a new name. Name pulumi.StringPtrInput // The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet. // The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer. // The default is an Internet-facing load balancer. - // You cannot specify a scheme for a Gateway Load Balancer. + // You can't specify a scheme for a Gateway Load Balancer. Scheme pulumi.StringPtrInput // [Application Load Balancers and Network Load Balancers] The IDs of the security groups for the load balancer. SecurityGroups pulumi.StringArrayInput // The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. - // [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets. + // [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets. // [Application Load Balancers on Outposts] You must specify one Outpost subnet. // [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. // [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet. - // [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets. + // [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets. SubnetMappings LoadBalancerSubnetMappingArrayInput // The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets. // [Application Load Balancers] You must specify subnets from at least two Availability Zones. // [Application Load Balancers on Outposts] You must specify one Outpost subnet. // [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. - // [Network Load Balancers] You can specify subnets from one or more Availability Zones. - // [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. + // [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones. Subnets pulumi.StringArrayInput // The tags to assign to the load balancer. Tags aws.TagArrayInput @@ -247,7 +244,7 @@ func (o LoadBalancerOutput) DnsName() pulumi.StringOutput { return o.ApplyT(func(v *LoadBalancer) pulumi.StringOutput { return v.DnsName }).(pulumi.StringOutput) } -// [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . +// [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be “dualstack“. The default value is “off“. func (o LoadBalancerOutput) EnablePrefixForIpv6SourceNat() pulumi.StringPtrOutput { return o.ApplyT(func(v *LoadBalancer) pulumi.StringPtrOutput { return v.EnablePrefixForIpv6SourceNat }).(pulumi.StringPtrOutput) } @@ -259,12 +256,11 @@ func (o LoadBalancerOutput) EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic }).(pulumi.StringPtrOutput) } -// Note: Internal load balancers must use the “ipv4“ IP address type. +// The IP address type. Internal load balancers must use “ipv4“. // -// [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses). -// Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors. -// [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener. -// [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). +// [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). +// Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. +// [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses). func (o LoadBalancerOutput) IpAddressType() pulumi.StringPtrOutput { return o.ApplyT(func(v *LoadBalancer) pulumi.StringPtrOutput { return v.IpAddressType }).(pulumi.StringPtrOutput) } @@ -289,6 +285,12 @@ func (o LoadBalancerOutput) LoadBalancerName() pulumi.StringOutput { return o.ApplyT(func(v *LoadBalancer) pulumi.StringOutput { return v.LoadBalancerName }).(pulumi.StringOutput) } +func (o LoadBalancerOutput) MinimumLoadBalancerCapacity() LoadBalancerMinimumLoadBalancerCapacityPtrOutput { + return o.ApplyT(func(v *LoadBalancer) LoadBalancerMinimumLoadBalancerCapacityPtrOutput { + return v.MinimumLoadBalancerCapacity + }).(LoadBalancerMinimumLoadBalancerCapacityPtrOutput) +} + // The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with "internal-". // // If you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates. To replace the resource, specify a new name. @@ -300,7 +302,7 @@ func (o LoadBalancerOutput) Name() pulumi.StringPtrOutput { // // The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer. // The default is an Internet-facing load balancer. -// You cannot specify a scheme for a Gateway Load Balancer. +// You can't specify a scheme for a Gateway Load Balancer. func (o LoadBalancerOutput) Scheme() pulumi.StringPtrOutput { return o.ApplyT(func(v *LoadBalancer) pulumi.StringPtrOutput { return v.Scheme }).(pulumi.StringPtrOutput) } @@ -312,11 +314,11 @@ func (o LoadBalancerOutput) SecurityGroups() pulumi.StringArrayOutput { // The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. // -// [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets. +// [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets. // [Application Load Balancers on Outposts] You must specify one Outpost subnet. // [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. // [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet. -// [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets. +// [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets. func (o LoadBalancerOutput) SubnetMappings() LoadBalancerSubnetMappingArrayOutput { return o.ApplyT(func(v *LoadBalancer) LoadBalancerSubnetMappingArrayOutput { return v.SubnetMappings }).(LoadBalancerSubnetMappingArrayOutput) } @@ -326,8 +328,7 @@ func (o LoadBalancerOutput) SubnetMappings() LoadBalancerSubnetMappingArrayOutpu // [Application Load Balancers] You must specify subnets from at least two Availability Zones. // [Application Load Balancers on Outposts] You must specify one Outpost subnet. // [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. -// [Network Load Balancers] You can specify subnets from one or more Availability Zones. -// [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. +// [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones. func (o LoadBalancerOutput) Subnets() pulumi.StringArrayOutput { return o.ApplyT(func(v *LoadBalancer) pulumi.StringArrayOutput { return v.Subnets }).(pulumi.StringArrayOutput) } diff --git a/sdk/go/aws/elasticloadbalancingv2/pulumiTypes.go b/sdk/go/aws/elasticloadbalancingv2/pulumiTypes.go index 875e54536a..cff3538344 100644 --- a/sdk/go/aws/elasticloadbalancingv2/pulumiTypes.go +++ b/sdk/go/aws/elasticloadbalancingv2/pulumiTypes.go @@ -1591,7 +1591,7 @@ type ListenerRedirectConfig struct { Path *string `pulumi:"path"` // The port. You can specify a value from 1 to 65535 or #{port}. Port *string `pulumi:"port"` - // The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. + // The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. Protocol *string `pulumi:"protocol"` // The query parameters, URL-encoded when necessary, but not percent-encoded. Do not include the leading "?", as it is automatically added. You can specify any of the reserved keywords. Query *string `pulumi:"query"` @@ -1628,7 +1628,7 @@ type ListenerRedirectConfigArgs struct { Path pulumi.StringPtrInput `pulumi:"path"` // The port. You can specify a value from 1 to 65535 or #{port}. Port pulumi.StringPtrInput `pulumi:"port"` - // The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. + // The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. Protocol pulumi.StringPtrInput `pulumi:"protocol"` // The query parameters, URL-encoded when necessary, but not percent-encoded. Do not include the leading "?", as it is automatically added. You can specify any of the reserved keywords. Query pulumi.StringPtrInput `pulumi:"query"` @@ -1739,7 +1739,7 @@ func (o ListenerRedirectConfigOutput) Port() pulumi.StringPtrOutput { return o.ApplyT(func(v ListenerRedirectConfig) *string { return v.Port }).(pulumi.StringPtrOutput) } -// The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. +// The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. func (o ListenerRedirectConfigOutput) Protocol() pulumi.StringPtrOutput { return o.ApplyT(func(v ListenerRedirectConfig) *string { return v.Protocol }).(pulumi.StringPtrOutput) } @@ -1808,7 +1808,7 @@ func (o ListenerRedirectConfigPtrOutput) Port() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. +// The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. func (o ListenerRedirectConfigPtrOutput) Protocol() pulumi.StringPtrOutput { return o.ApplyT(func(v *ListenerRedirectConfig) *string { if v == nil { @@ -3906,7 +3906,7 @@ type ListenerRuleRedirectConfig struct { Path *string `pulumi:"path"` // The port. You can specify a value from 1 to 65535 or #{port}. Port *string `pulumi:"port"` - // The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. + // The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. Protocol *string `pulumi:"protocol"` // The query parameters, URL-encoded when necessary, but not percent-encoded. Do not include the leading "?", as it is automatically added. You can specify any of the reserved keywords. Query *string `pulumi:"query"` @@ -3943,7 +3943,7 @@ type ListenerRuleRedirectConfigArgs struct { Path pulumi.StringPtrInput `pulumi:"path"` // The port. You can specify a value from 1 to 65535 or #{port}. Port pulumi.StringPtrInput `pulumi:"port"` - // The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. + // The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. Protocol pulumi.StringPtrInput `pulumi:"protocol"` // The query parameters, URL-encoded when necessary, but not percent-encoded. Do not include the leading "?", as it is automatically added. You can specify any of the reserved keywords. Query pulumi.StringPtrInput `pulumi:"query"` @@ -4054,7 +4054,7 @@ func (o ListenerRuleRedirectConfigOutput) Port() pulumi.StringPtrOutput { return o.ApplyT(func(v ListenerRuleRedirectConfig) *string { return v.Port }).(pulumi.StringPtrOutput) } -// The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. +// The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. func (o ListenerRuleRedirectConfigOutput) Protocol() pulumi.StringPtrOutput { return o.ApplyT(func(v ListenerRuleRedirectConfig) *string { return v.Protocol }).(pulumi.StringPtrOutput) } @@ -4123,7 +4123,7 @@ func (o ListenerRuleRedirectConfigPtrOutput) Port() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. +// The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. func (o ListenerRuleRedirectConfigPtrOutput) Protocol() pulumi.StringPtrOutput { return o.ApplyT(func(v *ListenerRuleRedirectConfig) *string { if v == nil { @@ -5066,7 +5066,7 @@ type LoadBalancerAttribute struct { // The name of the attribute. // The following attributes are supported by all load balancers: // + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``. - // + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and cannot be changed. + // + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and can't be changed. // // The following attributes are supported by both Application Load Balancers and Network Load Balancers: // + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``. @@ -5117,7 +5117,7 @@ type LoadBalancerAttributeArgs struct { // The name of the attribute. // The following attributes are supported by all load balancers: // + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``. - // + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and cannot be changed. + // + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and can't be changed. // // The following attributes are supported by both Application Load Balancers and Network Load Balancers: // + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``. @@ -5208,7 +5208,7 @@ func (o LoadBalancerAttributeOutput) ToLoadBalancerAttributeOutputWithContext(ct // // The following attributes are supported by all load balancers: // + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``. -// + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and cannot be changed. +// + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and can't be changed. // // The following attributes are supported by both Application Load Balancers and Network Load Balancers: // + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``. @@ -5267,6 +5267,139 @@ func (o LoadBalancerAttributeArrayOutput) Index(i pulumi.IntInput) LoadBalancerA }).(LoadBalancerAttributeOutput) } +type LoadBalancerMinimumLoadBalancerCapacity struct { + CapacityUnits int `pulumi:"capacityUnits"` +} + +// LoadBalancerMinimumLoadBalancerCapacityInput is an input type that accepts LoadBalancerMinimumLoadBalancerCapacityArgs and LoadBalancerMinimumLoadBalancerCapacityOutput values. +// You can construct a concrete instance of `LoadBalancerMinimumLoadBalancerCapacityInput` via: +// +// LoadBalancerMinimumLoadBalancerCapacityArgs{...} +type LoadBalancerMinimumLoadBalancerCapacityInput interface { + pulumi.Input + + ToLoadBalancerMinimumLoadBalancerCapacityOutput() LoadBalancerMinimumLoadBalancerCapacityOutput + ToLoadBalancerMinimumLoadBalancerCapacityOutputWithContext(context.Context) LoadBalancerMinimumLoadBalancerCapacityOutput +} + +type LoadBalancerMinimumLoadBalancerCapacityArgs struct { + CapacityUnits pulumi.IntInput `pulumi:"capacityUnits"` +} + +func (LoadBalancerMinimumLoadBalancerCapacityArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LoadBalancerMinimumLoadBalancerCapacity)(nil)).Elem() +} + +func (i LoadBalancerMinimumLoadBalancerCapacityArgs) ToLoadBalancerMinimumLoadBalancerCapacityOutput() LoadBalancerMinimumLoadBalancerCapacityOutput { + return i.ToLoadBalancerMinimumLoadBalancerCapacityOutputWithContext(context.Background()) +} + +func (i LoadBalancerMinimumLoadBalancerCapacityArgs) ToLoadBalancerMinimumLoadBalancerCapacityOutputWithContext(ctx context.Context) LoadBalancerMinimumLoadBalancerCapacityOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadBalancerMinimumLoadBalancerCapacityOutput) +} + +func (i LoadBalancerMinimumLoadBalancerCapacityArgs) ToLoadBalancerMinimumLoadBalancerCapacityPtrOutput() LoadBalancerMinimumLoadBalancerCapacityPtrOutput { + return i.ToLoadBalancerMinimumLoadBalancerCapacityPtrOutputWithContext(context.Background()) +} + +func (i LoadBalancerMinimumLoadBalancerCapacityArgs) ToLoadBalancerMinimumLoadBalancerCapacityPtrOutputWithContext(ctx context.Context) LoadBalancerMinimumLoadBalancerCapacityPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadBalancerMinimumLoadBalancerCapacityOutput).ToLoadBalancerMinimumLoadBalancerCapacityPtrOutputWithContext(ctx) +} + +// LoadBalancerMinimumLoadBalancerCapacityPtrInput is an input type that accepts LoadBalancerMinimumLoadBalancerCapacityArgs, LoadBalancerMinimumLoadBalancerCapacityPtr and LoadBalancerMinimumLoadBalancerCapacityPtrOutput values. +// You can construct a concrete instance of `LoadBalancerMinimumLoadBalancerCapacityPtrInput` via: +// +// LoadBalancerMinimumLoadBalancerCapacityArgs{...} +// +// or: +// +// nil +type LoadBalancerMinimumLoadBalancerCapacityPtrInput interface { + pulumi.Input + + ToLoadBalancerMinimumLoadBalancerCapacityPtrOutput() LoadBalancerMinimumLoadBalancerCapacityPtrOutput + ToLoadBalancerMinimumLoadBalancerCapacityPtrOutputWithContext(context.Context) LoadBalancerMinimumLoadBalancerCapacityPtrOutput +} + +type loadBalancerMinimumLoadBalancerCapacityPtrType LoadBalancerMinimumLoadBalancerCapacityArgs + +func LoadBalancerMinimumLoadBalancerCapacityPtr(v *LoadBalancerMinimumLoadBalancerCapacityArgs) LoadBalancerMinimumLoadBalancerCapacityPtrInput { + return (*loadBalancerMinimumLoadBalancerCapacityPtrType)(v) +} + +func (*loadBalancerMinimumLoadBalancerCapacityPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**LoadBalancerMinimumLoadBalancerCapacity)(nil)).Elem() +} + +func (i *loadBalancerMinimumLoadBalancerCapacityPtrType) ToLoadBalancerMinimumLoadBalancerCapacityPtrOutput() LoadBalancerMinimumLoadBalancerCapacityPtrOutput { + return i.ToLoadBalancerMinimumLoadBalancerCapacityPtrOutputWithContext(context.Background()) +} + +func (i *loadBalancerMinimumLoadBalancerCapacityPtrType) ToLoadBalancerMinimumLoadBalancerCapacityPtrOutputWithContext(ctx context.Context) LoadBalancerMinimumLoadBalancerCapacityPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(LoadBalancerMinimumLoadBalancerCapacityPtrOutput) +} + +type LoadBalancerMinimumLoadBalancerCapacityOutput struct{ *pulumi.OutputState } + +func (LoadBalancerMinimumLoadBalancerCapacityOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LoadBalancerMinimumLoadBalancerCapacity)(nil)).Elem() +} + +func (o LoadBalancerMinimumLoadBalancerCapacityOutput) ToLoadBalancerMinimumLoadBalancerCapacityOutput() LoadBalancerMinimumLoadBalancerCapacityOutput { + return o +} + +func (o LoadBalancerMinimumLoadBalancerCapacityOutput) ToLoadBalancerMinimumLoadBalancerCapacityOutputWithContext(ctx context.Context) LoadBalancerMinimumLoadBalancerCapacityOutput { + return o +} + +func (o LoadBalancerMinimumLoadBalancerCapacityOutput) ToLoadBalancerMinimumLoadBalancerCapacityPtrOutput() LoadBalancerMinimumLoadBalancerCapacityPtrOutput { + return o.ToLoadBalancerMinimumLoadBalancerCapacityPtrOutputWithContext(context.Background()) +} + +func (o LoadBalancerMinimumLoadBalancerCapacityOutput) ToLoadBalancerMinimumLoadBalancerCapacityPtrOutputWithContext(ctx context.Context) LoadBalancerMinimumLoadBalancerCapacityPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v LoadBalancerMinimumLoadBalancerCapacity) *LoadBalancerMinimumLoadBalancerCapacity { + return &v + }).(LoadBalancerMinimumLoadBalancerCapacityPtrOutput) +} + +func (o LoadBalancerMinimumLoadBalancerCapacityOutput) CapacityUnits() pulumi.IntOutput { + return o.ApplyT(func(v LoadBalancerMinimumLoadBalancerCapacity) int { return v.CapacityUnits }).(pulumi.IntOutput) +} + +type LoadBalancerMinimumLoadBalancerCapacityPtrOutput struct{ *pulumi.OutputState } + +func (LoadBalancerMinimumLoadBalancerCapacityPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**LoadBalancerMinimumLoadBalancerCapacity)(nil)).Elem() +} + +func (o LoadBalancerMinimumLoadBalancerCapacityPtrOutput) ToLoadBalancerMinimumLoadBalancerCapacityPtrOutput() LoadBalancerMinimumLoadBalancerCapacityPtrOutput { + return o +} + +func (o LoadBalancerMinimumLoadBalancerCapacityPtrOutput) ToLoadBalancerMinimumLoadBalancerCapacityPtrOutputWithContext(ctx context.Context) LoadBalancerMinimumLoadBalancerCapacityPtrOutput { + return o +} + +func (o LoadBalancerMinimumLoadBalancerCapacityPtrOutput) Elem() LoadBalancerMinimumLoadBalancerCapacityOutput { + return o.ApplyT(func(v *LoadBalancerMinimumLoadBalancerCapacity) LoadBalancerMinimumLoadBalancerCapacity { + if v != nil { + return *v + } + var ret LoadBalancerMinimumLoadBalancerCapacity + return ret + }).(LoadBalancerMinimumLoadBalancerCapacityOutput) +} + +func (o LoadBalancerMinimumLoadBalancerCapacityPtrOutput) CapacityUnits() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LoadBalancerMinimumLoadBalancerCapacity) *int { + if v == nil { + return nil + } + return &v.CapacityUnits + }).(pulumi.IntPtrOutput) +} + // Specifies a subnet for a load balancer. type LoadBalancerSubnetMapping struct { // [Network Load Balancers] The allocation ID of the Elastic IP address for an internet-facing load balancer. @@ -5275,7 +5408,7 @@ type LoadBalancerSubnetMapping struct { IPv6Address *string `pulumi:"iPv6Address"` // [Network Load Balancers] The private IPv4 address for an internal load balancer. PrivateIPv4Address *string `pulumi:"privateIPv4Address"` - // [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. + // [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or ``auto_assigned`` to use an IPv6 prefix selected at random from the subnet CIDR block. SourceNatIpv6Prefix *string `pulumi:"sourceNatIpv6Prefix"` // The ID of the subnet. SubnetId string `pulumi:"subnetId"` @@ -5300,7 +5433,7 @@ type LoadBalancerSubnetMappingArgs struct { IPv6Address pulumi.StringPtrInput `pulumi:"iPv6Address"` // [Network Load Balancers] The private IPv4 address for an internal load balancer. PrivateIPv4Address pulumi.StringPtrInput `pulumi:"privateIPv4Address"` - // [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. + // [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or ``auto_assigned`` to use an IPv6 prefix selected at random from the subnet CIDR block. SourceNatIpv6Prefix pulumi.StringPtrInput `pulumi:"sourceNatIpv6Prefix"` // The ID of the subnet. SubnetId pulumi.StringInput `pulumi:"subnetId"` @@ -5373,7 +5506,7 @@ func (o LoadBalancerSubnetMappingOutput) PrivateIPv4Address() pulumi.StringPtrOu return o.ApplyT(func(v LoadBalancerSubnetMapping) *string { return v.PrivateIPv4Address }).(pulumi.StringPtrOutput) } -// [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. +// [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or “auto_assigned“ to use an IPv6 prefix selected at random from the subnet CIDR block. func (o LoadBalancerSubnetMappingOutput) SourceNatIpv6Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v LoadBalancerSubnetMapping) *string { return v.SourceNatIpv6Prefix }).(pulumi.StringPtrOutput) } @@ -6048,6 +6181,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ListenerTargetGroupTupleArrayInput)(nil)).Elem(), ListenerTargetGroupTupleArray{}) pulumi.RegisterInputType(reflect.TypeOf((*LoadBalancerAttributeInput)(nil)).Elem(), LoadBalancerAttributeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LoadBalancerAttributeArrayInput)(nil)).Elem(), LoadBalancerAttributeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*LoadBalancerMinimumLoadBalancerCapacityInput)(nil)).Elem(), LoadBalancerMinimumLoadBalancerCapacityArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LoadBalancerMinimumLoadBalancerCapacityPtrInput)(nil)).Elem(), LoadBalancerMinimumLoadBalancerCapacityArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LoadBalancerSubnetMappingInput)(nil)).Elem(), LoadBalancerSubnetMappingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LoadBalancerSubnetMappingArrayInput)(nil)).Elem(), LoadBalancerSubnetMappingArray{}) pulumi.RegisterInputType(reflect.TypeOf((*TargetGroupAttributeInput)(nil)).Elem(), TargetGroupAttributeArgs{}) @@ -6114,6 +6249,8 @@ func init() { pulumi.RegisterOutputType(ListenerTargetGroupTupleArrayOutput{}) pulumi.RegisterOutputType(LoadBalancerAttributeOutput{}) pulumi.RegisterOutputType(LoadBalancerAttributeArrayOutput{}) + pulumi.RegisterOutputType(LoadBalancerMinimumLoadBalancerCapacityOutput{}) + pulumi.RegisterOutputType(LoadBalancerMinimumLoadBalancerCapacityPtrOutput{}) pulumi.RegisterOutputType(LoadBalancerSubnetMappingOutput{}) pulumi.RegisterOutputType(LoadBalancerSubnetMappingArrayOutput{}) pulumi.RegisterOutputType(TargetGroupAttributeOutput{}) diff --git a/sdk/go/aws/lambda/eventInvokeConfig.go b/sdk/go/aws/lambda/eventInvokeConfig.go index 1e8d89e3f0..d8e8975797 100644 --- a/sdk/go/aws/lambda/eventInvokeConfig.go +++ b/sdk/go/aws/lambda/eventInvokeConfig.go @@ -20,8 +20,11 @@ type EventInvokeConfig struct { // // **Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function. // - *Queue* - The ARN of a standard SQS queue. + // - *Bucket* - The ARN of an Amazon S3 bucket. // - *Topic* - The ARN of a standard SNS topic. // - *Event Bus* - The ARN of an Amazon EventBridge event bus. + // + // > S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. DestinationConfig EventInvokeConfigDestinationConfigPtrOutput `pulumi:"destinationConfig"` // The name of the Lambda function. FunctionName pulumi.StringOutput `pulumi:"functionName"` @@ -88,8 +91,11 @@ type eventInvokeConfigArgs struct { // // **Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function. // - *Queue* - The ARN of a standard SQS queue. + // - *Bucket* - The ARN of an Amazon S3 bucket. // - *Topic* - The ARN of a standard SNS topic. // - *Event Bus* - The ARN of an Amazon EventBridge event bus. + // + // > S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. DestinationConfig *EventInvokeConfigDestinationConfig `pulumi:"destinationConfig"` // The name of the Lambda function. FunctionName string `pulumi:"functionName"` @@ -107,8 +113,11 @@ type EventInvokeConfigArgs struct { // // **Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function. // - *Queue* - The ARN of a standard SQS queue. + // - *Bucket* - The ARN of an Amazon S3 bucket. // - *Topic* - The ARN of a standard SNS topic. // - *Event Bus* - The ARN of an Amazon EventBridge event bus. + // + // > S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. DestinationConfig EventInvokeConfigDestinationConfigPtrInput // The name of the Lambda function. FunctionName pulumi.StringInput @@ -161,8 +170,11 @@ func (o EventInvokeConfigOutput) ToEventInvokeConfigOutputWithContext(ctx contex // // **Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function. // - *Queue* - The ARN of a standard SQS queue. +// - *Bucket* - The ARN of an Amazon S3 bucket. // - *Topic* - The ARN of a standard SNS topic. // - *Event Bus* - The ARN of an Amazon EventBridge event bus. +// +// > S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. func (o EventInvokeConfigOutput) DestinationConfig() EventInvokeConfigDestinationConfigPtrOutput { return o.ApplyT(func(v *EventInvokeConfig) EventInvokeConfigDestinationConfigPtrOutput { return v.DestinationConfig }).(EventInvokeConfigDestinationConfigPtrOutput) } diff --git a/sdk/go/aws/lambda/getEventInvokeConfig.go b/sdk/go/aws/lambda/getEventInvokeConfig.go index 12785b2304..e397397842 100644 --- a/sdk/go/aws/lambda/getEventInvokeConfig.go +++ b/sdk/go/aws/lambda/getEventInvokeConfig.go @@ -34,8 +34,11 @@ type LookupEventInvokeConfigResult struct { // // **Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function. // - *Queue* - The ARN of a standard SQS queue. + // - *Bucket* - The ARN of an Amazon S3 bucket. // - *Topic* - The ARN of a standard SNS topic. // - *Event Bus* - The ARN of an Amazon EventBridge event bus. + // + // > S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. DestinationConfig *EventInvokeConfigDestinationConfig `pulumi:"destinationConfig"` // The maximum age of a request that Lambda sends to a function for processing. MaximumEventAgeInSeconds *int `pulumi:"maximumEventAgeInSeconds"` @@ -91,8 +94,11 @@ func (o LookupEventInvokeConfigResultOutput) ToLookupEventInvokeConfigResultOutp // // **Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function. // - *Queue* - The ARN of a standard SQS queue. +// - *Bucket* - The ARN of an Amazon S3 bucket. // - *Topic* - The ARN of a standard SNS topic. // - *Event Bus* - The ARN of an Amazon EventBridge event bus. +// +// > S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. func (o LookupEventInvokeConfigResultOutput) DestinationConfig() EventInvokeConfigDestinationConfigPtrOutput { return o.ApplyT(func(v LookupEventInvokeConfigResult) *EventInvokeConfigDestinationConfig { return v.DestinationConfig }).(EventInvokeConfigDestinationConfigPtrOutput) } diff --git a/sdk/go/aws/rds/getGlobalCluster.go b/sdk/go/aws/rds/getGlobalCluster.go index e1737cdc94..4d44f941ee 100644 --- a/sdk/go/aws/rds/getGlobalCluster.go +++ b/sdk/go/aws/rds/getGlobalCluster.go @@ -34,7 +34,8 @@ type LookupGlobalClusterResult struct { // The life cycle type of the global cluster. You can use this setting to enroll your global cluster into Amazon RDS Extended Support. EngineLifecycleSupport *string `pulumi:"engineLifecycleSupport"` // The version number of the database engine to use. If you specify the SourceDBClusterIdentifier property, don't specify this property. The value is inherited from the cluster. - EngineVersion *string `pulumi:"engineVersion"` + EngineVersion *string `pulumi:"engineVersion"` + // The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster. GlobalEndpoint *GlobalClusterGlobalEndpoint `pulumi:"globalEndpoint"` // An array of key-value pairs to apply to this resource. Tags []aws.Tag `pulumi:"tags"` @@ -97,6 +98,7 @@ func (o LookupGlobalClusterResultOutput) EngineVersion() pulumi.StringPtrOutput return o.ApplyT(func(v LookupGlobalClusterResult) *string { return v.EngineVersion }).(pulumi.StringPtrOutput) } +// The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster. func (o LookupGlobalClusterResultOutput) GlobalEndpoint() GlobalClusterGlobalEndpointPtrOutput { return o.ApplyT(func(v LookupGlobalClusterResult) *GlobalClusterGlobalEndpoint { return v.GlobalEndpoint }).(GlobalClusterGlobalEndpointPtrOutput) } diff --git a/sdk/go/aws/rds/globalCluster.go b/sdk/go/aws/rds/globalCluster.go index 7c216df20e..255b8810f2 100644 --- a/sdk/go/aws/rds/globalCluster.go +++ b/sdk/go/aws/rds/globalCluster.go @@ -26,8 +26,9 @@ type GlobalCluster struct { // The version number of the database engine to use. If you specify the SourceDBClusterIdentifier property, don't specify this property. The value is inherited from the cluster. EngineVersion pulumi.StringPtrOutput `pulumi:"engineVersion"` // The cluster identifier of the new global database cluster. This parameter is stored as a lowercase string. - GlobalClusterIdentifier pulumi.StringPtrOutput `pulumi:"globalClusterIdentifier"` - GlobalEndpoint GlobalClusterGlobalEndpointPtrOutput `pulumi:"globalEndpoint"` + GlobalClusterIdentifier pulumi.StringPtrOutput `pulumi:"globalClusterIdentifier"` + // The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster. + GlobalEndpoint GlobalClusterGlobalEndpointPtrOutput `pulumi:"globalEndpoint"` // The Amazon Resource Name (ARN) to use as the primary cluster of the global database. This parameter is optional. This parameter is stored as a lowercase string. SourceDbClusterIdentifier pulumi.StringPtrOutput `pulumi:"sourceDbClusterIdentifier"` // The storage encryption setting for the new global database cluster. @@ -94,8 +95,9 @@ type globalClusterArgs struct { // The version number of the database engine to use. If you specify the SourceDBClusterIdentifier property, don't specify this property. The value is inherited from the cluster. EngineVersion *string `pulumi:"engineVersion"` // The cluster identifier of the new global database cluster. This parameter is stored as a lowercase string. - GlobalClusterIdentifier *string `pulumi:"globalClusterIdentifier"` - GlobalEndpoint *GlobalClusterGlobalEndpoint `pulumi:"globalEndpoint"` + GlobalClusterIdentifier *string `pulumi:"globalClusterIdentifier"` + // The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster. + GlobalEndpoint *GlobalClusterGlobalEndpoint `pulumi:"globalEndpoint"` // The Amazon Resource Name (ARN) to use as the primary cluster of the global database. This parameter is optional. This parameter is stored as a lowercase string. SourceDbClusterIdentifier *string `pulumi:"sourceDbClusterIdentifier"` // The storage encryption setting for the new global database cluster. @@ -118,7 +120,8 @@ type GlobalClusterArgs struct { EngineVersion pulumi.StringPtrInput // The cluster identifier of the new global database cluster. This parameter is stored as a lowercase string. GlobalClusterIdentifier pulumi.StringPtrInput - GlobalEndpoint GlobalClusterGlobalEndpointPtrInput + // The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster. + GlobalEndpoint GlobalClusterGlobalEndpointPtrInput // The Amazon Resource Name (ARN) to use as the primary cluster of the global database. This parameter is optional. This parameter is stored as a lowercase string. SourceDbClusterIdentifier pulumi.StringPtrInput // The storage encryption setting for the new global database cluster. @@ -191,6 +194,7 @@ func (o GlobalClusterOutput) GlobalClusterIdentifier() pulumi.StringPtrOutput { return o.ApplyT(func(v *GlobalCluster) pulumi.StringPtrOutput { return v.GlobalClusterIdentifier }).(pulumi.StringPtrOutput) } +// The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster. func (o GlobalClusterOutput) GlobalEndpoint() GlobalClusterGlobalEndpointPtrOutput { return o.ApplyT(func(v *GlobalCluster) GlobalClusterGlobalEndpointPtrOutput { return v.GlobalEndpoint }).(GlobalClusterGlobalEndpointPtrOutput) } diff --git a/sdk/go/aws/resourcegroups/getTagSyncTask.go b/sdk/go/aws/resourcegroups/getTagSyncTask.go new file mode 100644 index 0000000000..5b6e141691 --- /dev/null +++ b/sdk/go/aws/resourcegroups/getTagSyncTask.go @@ -0,0 +1,105 @@ +// 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 resourcegroups + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Schema for ResourceGroups::TagSyncTask +func LookupTagSyncTask(ctx *pulumi.Context, args *LookupTagSyncTaskArgs, opts ...pulumi.InvokeOption) (*LookupTagSyncTaskResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupTagSyncTaskResult + err := ctx.Invoke("aws-native:resourcegroups:getTagSyncTask", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupTagSyncTaskArgs struct { + // The ARN of the TagSyncTask resource + TaskArn string `pulumi:"taskArn"` +} + +type LookupTagSyncTaskResult struct { + // The Amazon resource name (ARN) of the ApplicationGroup for which the TagSyncTask is created + GroupArn *string `pulumi:"groupArn"` + // The Name of the application group for which the TagSyncTask is created + GroupName *string `pulumi:"groupName"` + // The status of the TagSyncTask + Status *TagSyncTaskStatus `pulumi:"status"` + // The ARN of the TagSyncTask resource + TaskArn *string `pulumi:"taskArn"` +} + +func LookupTagSyncTaskOutput(ctx *pulumi.Context, args LookupTagSyncTaskOutputArgs, opts ...pulumi.InvokeOption) LookupTagSyncTaskResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupTagSyncTaskResultOutput, error) { + args := v.(LookupTagSyncTaskArgs) + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupTagSyncTaskResult + secret, err := ctx.InvokePackageRaw("aws-native:resourcegroups:getTagSyncTask", args, &rv, "", opts...) + if err != nil { + return LookupTagSyncTaskResultOutput{}, err + } + + output := pulumi.ToOutput(rv).(LookupTagSyncTaskResultOutput) + if secret { + return pulumi.ToSecret(output).(LookupTagSyncTaskResultOutput), nil + } + return output, nil + }).(LookupTagSyncTaskResultOutput) +} + +type LookupTagSyncTaskOutputArgs struct { + // The ARN of the TagSyncTask resource + TaskArn pulumi.StringInput `pulumi:"taskArn"` +} + +func (LookupTagSyncTaskOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupTagSyncTaskArgs)(nil)).Elem() +} + +type LookupTagSyncTaskResultOutput struct{ *pulumi.OutputState } + +func (LookupTagSyncTaskResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupTagSyncTaskResult)(nil)).Elem() +} + +func (o LookupTagSyncTaskResultOutput) ToLookupTagSyncTaskResultOutput() LookupTagSyncTaskResultOutput { + return o +} + +func (o LookupTagSyncTaskResultOutput) ToLookupTagSyncTaskResultOutputWithContext(ctx context.Context) LookupTagSyncTaskResultOutput { + return o +} + +// The Amazon resource name (ARN) of the ApplicationGroup for which the TagSyncTask is created +func (o LookupTagSyncTaskResultOutput) GroupArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupTagSyncTaskResult) *string { return v.GroupArn }).(pulumi.StringPtrOutput) +} + +// The Name of the application group for which the TagSyncTask is created +func (o LookupTagSyncTaskResultOutput) GroupName() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupTagSyncTaskResult) *string { return v.GroupName }).(pulumi.StringPtrOutput) +} + +// The status of the TagSyncTask +func (o LookupTagSyncTaskResultOutput) Status() TagSyncTaskStatusPtrOutput { + return o.ApplyT(func(v LookupTagSyncTaskResult) *TagSyncTaskStatus { return v.Status }).(TagSyncTaskStatusPtrOutput) +} + +// The ARN of the TagSyncTask resource +func (o LookupTagSyncTaskResultOutput) TaskArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupTagSyncTaskResult) *string { return v.TaskArn }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupTagSyncTaskResultOutput{}) +} diff --git a/sdk/go/aws/resourcegroups/init.go b/sdk/go/aws/resourcegroups/init.go index 513a6554b2..86862dd740 100644 --- a/sdk/go/aws/resourcegroups/init.go +++ b/sdk/go/aws/resourcegroups/init.go @@ -23,6 +23,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "aws-native:resourcegroups:Group": r = &Group{} + case "aws-native:resourcegroups:TagSyncTask": + r = &TagSyncTask{} default: return nil, fmt.Errorf("unknown resource type: %s", typ) } diff --git a/sdk/go/aws/resourcegroups/pulumiEnums.go b/sdk/go/aws/resourcegroups/pulumiEnums.go index c1f84ebaaa..f5412f0dce 100644 --- a/sdk/go/aws/resourcegroups/pulumiEnums.go +++ b/sdk/go/aws/resourcegroups/pulumiEnums.go @@ -179,9 +179,102 @@ func (in *groupResourceQueryTypePtr) ToGroupResourceQueryTypePtrOutputWithContex return pulumi.ToOutputWithContext(ctx, in).(GroupResourceQueryTypePtrOutput) } +// The status of the TagSyncTask +type TagSyncTaskStatus string + +const ( + TagSyncTaskStatusActive = TagSyncTaskStatus("ACTIVE") + TagSyncTaskStatusError = TagSyncTaskStatus("ERROR") +) + +type TagSyncTaskStatusOutput struct{ *pulumi.OutputState } + +func (TagSyncTaskStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TagSyncTaskStatus)(nil)).Elem() +} + +func (o TagSyncTaskStatusOutput) ToTagSyncTaskStatusOutput() TagSyncTaskStatusOutput { + return o +} + +func (o TagSyncTaskStatusOutput) ToTagSyncTaskStatusOutputWithContext(ctx context.Context) TagSyncTaskStatusOutput { + return o +} + +func (o TagSyncTaskStatusOutput) ToTagSyncTaskStatusPtrOutput() TagSyncTaskStatusPtrOutput { + return o.ToTagSyncTaskStatusPtrOutputWithContext(context.Background()) +} + +func (o TagSyncTaskStatusOutput) ToTagSyncTaskStatusPtrOutputWithContext(ctx context.Context) TagSyncTaskStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TagSyncTaskStatus) *TagSyncTaskStatus { + return &v + }).(TagSyncTaskStatusPtrOutput) +} + +func (o TagSyncTaskStatusOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o TagSyncTaskStatusOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e TagSyncTaskStatus) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o TagSyncTaskStatusOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o TagSyncTaskStatusOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e TagSyncTaskStatus) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type TagSyncTaskStatusPtrOutput struct{ *pulumi.OutputState } + +func (TagSyncTaskStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TagSyncTaskStatus)(nil)).Elem() +} + +func (o TagSyncTaskStatusPtrOutput) ToTagSyncTaskStatusPtrOutput() TagSyncTaskStatusPtrOutput { + return o +} + +func (o TagSyncTaskStatusPtrOutput) ToTagSyncTaskStatusPtrOutputWithContext(ctx context.Context) TagSyncTaskStatusPtrOutput { + return o +} + +func (o TagSyncTaskStatusPtrOutput) Elem() TagSyncTaskStatusOutput { + return o.ApplyT(func(v *TagSyncTaskStatus) TagSyncTaskStatus { + if v != nil { + return *v + } + var ret TagSyncTaskStatus + return ret + }).(TagSyncTaskStatusOutput) +} + +func (o TagSyncTaskStatusPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o TagSyncTaskStatusPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *TagSyncTaskStatus) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*GroupResourceQueryTypeInput)(nil)).Elem(), GroupResourceQueryType("TAG_FILTERS_1_0")) pulumi.RegisterInputType(reflect.TypeOf((*GroupResourceQueryTypePtrInput)(nil)).Elem(), GroupResourceQueryType("TAG_FILTERS_1_0")) pulumi.RegisterOutputType(GroupResourceQueryTypeOutput{}) pulumi.RegisterOutputType(GroupResourceQueryTypePtrOutput{}) + pulumi.RegisterOutputType(TagSyncTaskStatusOutput{}) + pulumi.RegisterOutputType(TagSyncTaskStatusPtrOutput{}) } diff --git a/sdk/go/aws/resourcegroups/tagSyncTask.go b/sdk/go/aws/resourcegroups/tagSyncTask.go new file mode 100644 index 0000000000..4489ce1ef6 --- /dev/null +++ b/sdk/go/aws/resourcegroups/tagSyncTask.go @@ -0,0 +1,198 @@ +// 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 resourcegroups + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Schema for ResourceGroups::TagSyncTask +type TagSyncTask struct { + pulumi.CustomResourceState + + // The Amazon resource name (ARN) or name of the application group for which you want to create a tag-sync task + Group pulumi.StringOutput `pulumi:"group"` + // The Amazon resource name (ARN) of the ApplicationGroup for which the TagSyncTask is created + GroupArn pulumi.StringOutput `pulumi:"groupArn"` + // The Name of the application group for which the TagSyncTask is created + GroupName pulumi.StringOutput `pulumi:"groupName"` + // The Amazon resource name (ARN) of the role assumed by the service to tag and untag resources on your behalf. + RoleArn pulumi.StringOutput `pulumi:"roleArn"` + // The status of the TagSyncTask + Status TagSyncTaskStatusOutput `pulumi:"status"` + // The tag key. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. + TagKey pulumi.StringOutput `pulumi:"tagKey"` + // The tag value. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. + TagValue pulumi.StringOutput `pulumi:"tagValue"` + // The ARN of the TagSyncTask resource + TaskArn pulumi.StringOutput `pulumi:"taskArn"` +} + +// NewTagSyncTask registers a new resource with the given unique name, arguments, and options. +func NewTagSyncTask(ctx *pulumi.Context, + name string, args *TagSyncTaskArgs, opts ...pulumi.ResourceOption) (*TagSyncTask, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Group == nil { + return nil, errors.New("invalid value for required argument 'Group'") + } + if args.RoleArn == nil { + return nil, errors.New("invalid value for required argument 'RoleArn'") + } + if args.TagKey == nil { + return nil, errors.New("invalid value for required argument 'TagKey'") + } + if args.TagValue == nil { + return nil, errors.New("invalid value for required argument 'TagValue'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "group", + "roleArn", + "tagKey", + "tagValue", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource TagSyncTask + err := ctx.RegisterResource("aws-native:resourcegroups:TagSyncTask", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetTagSyncTask gets an existing TagSyncTask 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 GetTagSyncTask(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *TagSyncTaskState, opts ...pulumi.ResourceOption) (*TagSyncTask, error) { + var resource TagSyncTask + err := ctx.ReadResource("aws-native:resourcegroups:TagSyncTask", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering TagSyncTask resources. +type tagSyncTaskState struct { +} + +type TagSyncTaskState struct { +} + +func (TagSyncTaskState) ElementType() reflect.Type { + return reflect.TypeOf((*tagSyncTaskState)(nil)).Elem() +} + +type tagSyncTaskArgs struct { + // The Amazon resource name (ARN) or name of the application group for which you want to create a tag-sync task + Group string `pulumi:"group"` + // The Amazon resource name (ARN) of the role assumed by the service to tag and untag resources on your behalf. + RoleArn string `pulumi:"roleArn"` + // The tag key. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. + TagKey string `pulumi:"tagKey"` + // The tag value. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. + TagValue string `pulumi:"tagValue"` +} + +// The set of arguments for constructing a TagSyncTask resource. +type TagSyncTaskArgs struct { + // The Amazon resource name (ARN) or name of the application group for which you want to create a tag-sync task + Group pulumi.StringInput + // The Amazon resource name (ARN) of the role assumed by the service to tag and untag resources on your behalf. + RoleArn pulumi.StringInput + // The tag key. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. + TagKey pulumi.StringInput + // The tag value. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. + TagValue pulumi.StringInput +} + +func (TagSyncTaskArgs) ElementType() reflect.Type { + return reflect.TypeOf((*tagSyncTaskArgs)(nil)).Elem() +} + +type TagSyncTaskInput interface { + pulumi.Input + + ToTagSyncTaskOutput() TagSyncTaskOutput + ToTagSyncTaskOutputWithContext(ctx context.Context) TagSyncTaskOutput +} + +func (*TagSyncTask) ElementType() reflect.Type { + return reflect.TypeOf((**TagSyncTask)(nil)).Elem() +} + +func (i *TagSyncTask) ToTagSyncTaskOutput() TagSyncTaskOutput { + return i.ToTagSyncTaskOutputWithContext(context.Background()) +} + +func (i *TagSyncTask) ToTagSyncTaskOutputWithContext(ctx context.Context) TagSyncTaskOutput { + return pulumi.ToOutputWithContext(ctx, i).(TagSyncTaskOutput) +} + +type TagSyncTaskOutput struct{ *pulumi.OutputState } + +func (TagSyncTaskOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TagSyncTask)(nil)).Elem() +} + +func (o TagSyncTaskOutput) ToTagSyncTaskOutput() TagSyncTaskOutput { + return o +} + +func (o TagSyncTaskOutput) ToTagSyncTaskOutputWithContext(ctx context.Context) TagSyncTaskOutput { + return o +} + +// The Amazon resource name (ARN) or name of the application group for which you want to create a tag-sync task +func (o TagSyncTaskOutput) Group() pulumi.StringOutput { + return o.ApplyT(func(v *TagSyncTask) pulumi.StringOutput { return v.Group }).(pulumi.StringOutput) +} + +// The Amazon resource name (ARN) of the ApplicationGroup for which the TagSyncTask is created +func (o TagSyncTaskOutput) GroupArn() pulumi.StringOutput { + return o.ApplyT(func(v *TagSyncTask) pulumi.StringOutput { return v.GroupArn }).(pulumi.StringOutput) +} + +// The Name of the application group for which the TagSyncTask is created +func (o TagSyncTaskOutput) GroupName() pulumi.StringOutput { + return o.ApplyT(func(v *TagSyncTask) pulumi.StringOutput { return v.GroupName }).(pulumi.StringOutput) +} + +// The Amazon resource name (ARN) of the role assumed by the service to tag and untag resources on your behalf. +func (o TagSyncTaskOutput) RoleArn() pulumi.StringOutput { + return o.ApplyT(func(v *TagSyncTask) pulumi.StringOutput { return v.RoleArn }).(pulumi.StringOutput) +} + +// The status of the TagSyncTask +func (o TagSyncTaskOutput) Status() TagSyncTaskStatusOutput { + return o.ApplyT(func(v *TagSyncTask) TagSyncTaskStatusOutput { return v.Status }).(TagSyncTaskStatusOutput) +} + +// The tag key. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. +func (o TagSyncTaskOutput) TagKey() pulumi.StringOutput { + return o.ApplyT(func(v *TagSyncTask) pulumi.StringOutput { return v.TagKey }).(pulumi.StringOutput) +} + +// The tag value. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. +func (o TagSyncTaskOutput) TagValue() pulumi.StringOutput { + return o.ApplyT(func(v *TagSyncTask) pulumi.StringOutput { return v.TagValue }).(pulumi.StringOutput) +} + +// The ARN of the TagSyncTask resource +func (o TagSyncTaskOutput) TaskArn() pulumi.StringOutput { + return o.ApplyT(func(v *TagSyncTask) pulumi.StringOutput { return v.TaskArn }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*TagSyncTaskInput)(nil)).Elem(), &TagSyncTask{}) + pulumi.RegisterOutputType(TagSyncTaskOutput{}) +} diff --git a/sdk/go/aws/s3express/pulumiEnums.go b/sdk/go/aws/s3express/pulumiEnums.go index e02cce9b01..3f0bc018a2 100644 --- a/sdk/go/aws/s3express/pulumiEnums.go +++ b/sdk/go/aws/s3express/pulumiEnums.go @@ -174,6 +174,7 @@ func (in *directoryBucketDataRedundancyPtr) ToDirectoryBucketDataRedundancyPtrOu return pulumi.ToOutputWithContext(ctx, in).(DirectoryBucketDataRedundancyPtrOutput) } +// If `Enabled` , the rule is currently being applied. If `Disabled` , the rule is not currently being applied. type DirectoryBucketRuleStatus string const ( diff --git a/sdk/go/aws/s3express/pulumiTypes.go b/sdk/go/aws/s3express/pulumiTypes.go index 0878ba2488..711c5adc6a 100644 --- a/sdk/go/aws/s3express/pulumiTypes.go +++ b/sdk/go/aws/s3express/pulumiTypes.go @@ -436,11 +436,16 @@ func (o DirectoryBucketLifecycleConfigurationPtrOutput) Rules() DirectoryBucketR type DirectoryBucketRule struct { AbortIncompleteMultipartUpload *DirectoryBucketAbortIncompleteMultipartUpload `pulumi:"abortIncompleteMultipartUpload"` ExpirationInDays *int `pulumi:"expirationInDays"` - Id *string `pulumi:"id"` - ObjectSizeGreaterThan *string `pulumi:"objectSizeGreaterThan"` - ObjectSizeLessThan *string `pulumi:"objectSizeLessThan"` - Prefix *string `pulumi:"prefix"` - Status DirectoryBucketRuleStatus `pulumi:"status"` + // Unique identifier for the rule. The value can't be longer than 255 characters. + Id *string `pulumi:"id"` + ObjectSizeGreaterThan *string `pulumi:"objectSizeGreaterThan"` + ObjectSizeLessThan *string `pulumi:"objectSizeLessThan"` + // Object key prefix that identifies one or more objects to which this rule applies. + // + // > Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) . + Prefix *string `pulumi:"prefix"` + // If `Enabled` , the rule is currently being applied. If `Disabled` , the rule is not currently being applied. + Status DirectoryBucketRuleStatus `pulumi:"status"` } // DirectoryBucketRuleInput is an input type that accepts DirectoryBucketRuleArgs and DirectoryBucketRuleOutput values. @@ -458,11 +463,16 @@ type DirectoryBucketRuleInput interface { type DirectoryBucketRuleArgs struct { AbortIncompleteMultipartUpload DirectoryBucketAbortIncompleteMultipartUploadPtrInput `pulumi:"abortIncompleteMultipartUpload"` ExpirationInDays pulumi.IntPtrInput `pulumi:"expirationInDays"` - Id pulumi.StringPtrInput `pulumi:"id"` - ObjectSizeGreaterThan pulumi.StringPtrInput `pulumi:"objectSizeGreaterThan"` - ObjectSizeLessThan pulumi.StringPtrInput `pulumi:"objectSizeLessThan"` - Prefix pulumi.StringPtrInput `pulumi:"prefix"` - Status DirectoryBucketRuleStatusInput `pulumi:"status"` + // Unique identifier for the rule. The value can't be longer than 255 characters. + Id pulumi.StringPtrInput `pulumi:"id"` + ObjectSizeGreaterThan pulumi.StringPtrInput `pulumi:"objectSizeGreaterThan"` + ObjectSizeLessThan pulumi.StringPtrInput `pulumi:"objectSizeLessThan"` + // Object key prefix that identifies one or more objects to which this rule applies. + // + // > Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) . + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // If `Enabled` , the rule is currently being applied. If `Disabled` , the rule is not currently being applied. + Status DirectoryBucketRuleStatusInput `pulumi:"status"` } func (DirectoryBucketRuleArgs) ElementType() reflect.Type { @@ -527,6 +537,7 @@ func (o DirectoryBucketRuleOutput) ExpirationInDays() pulumi.IntPtrOutput { return o.ApplyT(func(v DirectoryBucketRule) *int { return v.ExpirationInDays }).(pulumi.IntPtrOutput) } +// Unique identifier for the rule. The value can't be longer than 255 characters. func (o DirectoryBucketRuleOutput) Id() pulumi.StringPtrOutput { return o.ApplyT(func(v DirectoryBucketRule) *string { return v.Id }).(pulumi.StringPtrOutput) } @@ -539,10 +550,14 @@ func (o DirectoryBucketRuleOutput) ObjectSizeLessThan() pulumi.StringPtrOutput { return o.ApplyT(func(v DirectoryBucketRule) *string { return v.ObjectSizeLessThan }).(pulumi.StringPtrOutput) } +// Object key prefix that identifies one or more objects to which this rule applies. +// +// > Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) . func (o DirectoryBucketRuleOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v DirectoryBucketRule) *string { return v.Prefix }).(pulumi.StringPtrOutput) } +// If `Enabled` , the rule is currently being applied. If `Disabled` , the rule is not currently being applied. func (o DirectoryBucketRuleOutput) Status() DirectoryBucketRuleStatusOutput { return o.ApplyT(func(v DirectoryBucketRule) DirectoryBucketRuleStatus { return v.Status }).(DirectoryBucketRuleStatusOutput) } diff --git a/sdk/go/aws/wisdom/getMessageTemplate.go b/sdk/go/aws/wisdom/getMessageTemplate.go new file mode 100644 index 0000000000..172a948951 --- /dev/null +++ b/sdk/go/aws/wisdom/getMessageTemplate.go @@ -0,0 +1,144 @@ +// 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" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Definition of AWS::Wisdom::MessageTemplate Resource Type +func LookupMessageTemplate(ctx *pulumi.Context, args *LookupMessageTemplateArgs, opts ...pulumi.InvokeOption) (*LookupMessageTemplateResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupMessageTemplateResult + err := ctx.Invoke("aws-native:wisdom:getMessageTemplate", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupMessageTemplateArgs struct { + // The Amazon Resource Name (ARN) of the message template. + MessageTemplateArn string `pulumi:"messageTemplateArn"` +} + +type LookupMessageTemplateResult struct { + Content *MessageTemplateContent `pulumi:"content"` + DefaultAttributes *MessageTemplateAttributes `pulumi:"defaultAttributes"` + // The description of the message template. + Description *string `pulumi:"description"` + GroupingConfiguration *MessageTemplateGroupingConfiguration `pulumi:"groupingConfiguration"` + // The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW + Language *string `pulumi:"language"` + // The Amazon Resource Name (ARN) of the message template. + MessageTemplateArn *string `pulumi:"messageTemplateArn"` + // The content SHA256 of the message template. + MessageTemplateContentSha256 *string `pulumi:"messageTemplateContentSha256"` + // The unique identifier of the message template. + MessageTemplateId *string `pulumi:"messageTemplateId"` + // The name of the message template. + Name *string `pulumi:"name"` + // The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }. + Tags []aws.Tag `pulumi:"tags"` +} + +func LookupMessageTemplateOutput(ctx *pulumi.Context, args LookupMessageTemplateOutputArgs, opts ...pulumi.InvokeOption) LookupMessageTemplateResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupMessageTemplateResultOutput, error) { + args := v.(LookupMessageTemplateArgs) + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupMessageTemplateResult + secret, err := ctx.InvokePackageRaw("aws-native:wisdom:getMessageTemplate", args, &rv, "", opts...) + if err != nil { + return LookupMessageTemplateResultOutput{}, err + } + + output := pulumi.ToOutput(rv).(LookupMessageTemplateResultOutput) + if secret { + return pulumi.ToSecret(output).(LookupMessageTemplateResultOutput), nil + } + return output, nil + }).(LookupMessageTemplateResultOutput) +} + +type LookupMessageTemplateOutputArgs struct { + // The Amazon Resource Name (ARN) of the message template. + MessageTemplateArn pulumi.StringInput `pulumi:"messageTemplateArn"` +} + +func (LookupMessageTemplateOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupMessageTemplateArgs)(nil)).Elem() +} + +type LookupMessageTemplateResultOutput struct{ *pulumi.OutputState } + +func (LookupMessageTemplateResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupMessageTemplateResult)(nil)).Elem() +} + +func (o LookupMessageTemplateResultOutput) ToLookupMessageTemplateResultOutput() LookupMessageTemplateResultOutput { + return o +} + +func (o LookupMessageTemplateResultOutput) ToLookupMessageTemplateResultOutputWithContext(ctx context.Context) LookupMessageTemplateResultOutput { + return o +} + +func (o LookupMessageTemplateResultOutput) Content() MessageTemplateContentPtrOutput { + return o.ApplyT(func(v LookupMessageTemplateResult) *MessageTemplateContent { return v.Content }).(MessageTemplateContentPtrOutput) +} + +func (o LookupMessageTemplateResultOutput) DefaultAttributes() MessageTemplateAttributesPtrOutput { + return o.ApplyT(func(v LookupMessageTemplateResult) *MessageTemplateAttributes { return v.DefaultAttributes }).(MessageTemplateAttributesPtrOutput) +} + +// The description of the message template. +func (o LookupMessageTemplateResultOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupMessageTemplateResult) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +func (o LookupMessageTemplateResultOutput) GroupingConfiguration() MessageTemplateGroupingConfigurationPtrOutput { + return o.ApplyT(func(v LookupMessageTemplateResult) *MessageTemplateGroupingConfiguration { + return v.GroupingConfiguration + }).(MessageTemplateGroupingConfigurationPtrOutput) +} + +// The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW +func (o LookupMessageTemplateResultOutput) Language() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupMessageTemplateResult) *string { return v.Language }).(pulumi.StringPtrOutput) +} + +// The Amazon Resource Name (ARN) of the message template. +func (o LookupMessageTemplateResultOutput) MessageTemplateArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupMessageTemplateResult) *string { return v.MessageTemplateArn }).(pulumi.StringPtrOutput) +} + +// The content SHA256 of the message template. +func (o LookupMessageTemplateResultOutput) MessageTemplateContentSha256() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupMessageTemplateResult) *string { return v.MessageTemplateContentSha256 }).(pulumi.StringPtrOutput) +} + +// The unique identifier of the message template. +func (o LookupMessageTemplateResultOutput) MessageTemplateId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupMessageTemplateResult) *string { return v.MessageTemplateId }).(pulumi.StringPtrOutput) +} + +// The name of the message template. +func (o LookupMessageTemplateResultOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupMessageTemplateResult) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }. +func (o LookupMessageTemplateResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupMessageTemplateResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupMessageTemplateResultOutput{}) +} diff --git a/sdk/go/aws/wisdom/getMessageTemplateVersion.go b/sdk/go/aws/wisdom/getMessageTemplateVersion.go new file mode 100644 index 0000000000..69f884cf5f --- /dev/null +++ b/sdk/go/aws/wisdom/getMessageTemplateVersion.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 wisdom + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// A version for the specified customer-managed message template within the specified knowledge base. +func LookupMessageTemplateVersion(ctx *pulumi.Context, args *LookupMessageTemplateVersionArgs, opts ...pulumi.InvokeOption) (*LookupMessageTemplateVersionResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupMessageTemplateVersionResult + err := ctx.Invoke("aws-native:wisdom:getMessageTemplateVersion", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupMessageTemplateVersionArgs struct { + // The unqualified Amazon Resource Name (ARN) of the message template version. + MessageTemplateVersionArn string `pulumi:"messageTemplateVersionArn"` +} + +type LookupMessageTemplateVersionResult struct { + // The content SHA256 of the message template. + MessageTemplateContentSha256 *string `pulumi:"messageTemplateContentSha256"` + // The unqualified Amazon Resource Name (ARN) of the message template version. + MessageTemplateVersionArn *string `pulumi:"messageTemplateVersionArn"` + // Current version number of the message template. + MessageTemplateVersionNumber *float64 `pulumi:"messageTemplateVersionNumber"` +} + +func LookupMessageTemplateVersionOutput(ctx *pulumi.Context, args LookupMessageTemplateVersionOutputArgs, opts ...pulumi.InvokeOption) LookupMessageTemplateVersionResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupMessageTemplateVersionResultOutput, error) { + args := v.(LookupMessageTemplateVersionArgs) + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupMessageTemplateVersionResult + secret, err := ctx.InvokePackageRaw("aws-native:wisdom:getMessageTemplateVersion", args, &rv, "", opts...) + if err != nil { + return LookupMessageTemplateVersionResultOutput{}, err + } + + output := pulumi.ToOutput(rv).(LookupMessageTemplateVersionResultOutput) + if secret { + return pulumi.ToSecret(output).(LookupMessageTemplateVersionResultOutput), nil + } + return output, nil + }).(LookupMessageTemplateVersionResultOutput) +} + +type LookupMessageTemplateVersionOutputArgs struct { + // The unqualified Amazon Resource Name (ARN) of the message template version. + MessageTemplateVersionArn pulumi.StringInput `pulumi:"messageTemplateVersionArn"` +} + +func (LookupMessageTemplateVersionOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupMessageTemplateVersionArgs)(nil)).Elem() +} + +type LookupMessageTemplateVersionResultOutput struct{ *pulumi.OutputState } + +func (LookupMessageTemplateVersionResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupMessageTemplateVersionResult)(nil)).Elem() +} + +func (o LookupMessageTemplateVersionResultOutput) ToLookupMessageTemplateVersionResultOutput() LookupMessageTemplateVersionResultOutput { + return o +} + +func (o LookupMessageTemplateVersionResultOutput) ToLookupMessageTemplateVersionResultOutputWithContext(ctx context.Context) LookupMessageTemplateVersionResultOutput { + return o +} + +// The content SHA256 of the message template. +func (o LookupMessageTemplateVersionResultOutput) MessageTemplateContentSha256() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupMessageTemplateVersionResult) *string { return v.MessageTemplateContentSha256 }).(pulumi.StringPtrOutput) +} + +// The unqualified Amazon Resource Name (ARN) of the message template version. +func (o LookupMessageTemplateVersionResultOutput) MessageTemplateVersionArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupMessageTemplateVersionResult) *string { return v.MessageTemplateVersionArn }).(pulumi.StringPtrOutput) +} + +// Current version number of the message template. +func (o LookupMessageTemplateVersionResultOutput) MessageTemplateVersionNumber() pulumi.Float64PtrOutput { + return o.ApplyT(func(v LookupMessageTemplateVersionResult) *float64 { return v.MessageTemplateVersionNumber }).(pulumi.Float64PtrOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupMessageTemplateVersionResultOutput{}) +} diff --git a/sdk/go/aws/wisdom/init.go b/sdk/go/aws/wisdom/init.go index 5045ebc0d7..1d49978300 100644 --- a/sdk/go/aws/wisdom/init.go +++ b/sdk/go/aws/wisdom/init.go @@ -35,6 +35,10 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &AssistantAssociation{} case "aws-native:wisdom:KnowledgeBase": r = &KnowledgeBase{} + case "aws-native:wisdom:MessageTemplate": + r = &MessageTemplate{} + case "aws-native:wisdom:MessageTemplateVersion": + r = &MessageTemplateVersion{} default: return nil, fmt.Errorf("unknown resource type: %s", typ) } diff --git a/sdk/go/aws/wisdom/messageTemplate.go b/sdk/go/aws/wisdom/messageTemplate.go new file mode 100644 index 0000000000..c7430a2547 --- /dev/null +++ b/sdk/go/aws/wisdom/messageTemplate.go @@ -0,0 +1,226 @@ +// 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" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Definition of AWS::Wisdom::MessageTemplate Resource Type +type MessageTemplate struct { + pulumi.CustomResourceState + + ChannelSubtype MessageTemplateChannelSubtypeOutput `pulumi:"channelSubtype"` + Content MessageTemplateContentOutput `pulumi:"content"` + DefaultAttributes MessageTemplateAttributesPtrOutput `pulumi:"defaultAttributes"` + // The description of the message template. + Description pulumi.StringPtrOutput `pulumi:"description"` + GroupingConfiguration MessageTemplateGroupingConfigurationPtrOutput `pulumi:"groupingConfiguration"` + // The Amazon Resource Name (ARN) of the knowledge base to which the message template belongs. + KnowledgeBaseArn pulumi.StringOutput `pulumi:"knowledgeBaseArn"` + // The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW + Language pulumi.StringPtrOutput `pulumi:"language"` + // The Amazon Resource Name (ARN) of the message template. + MessageTemplateArn pulumi.StringOutput `pulumi:"messageTemplateArn"` + // The content SHA256 of the message template. + MessageTemplateContentSha256 pulumi.StringOutput `pulumi:"messageTemplateContentSha256"` + // The unique identifier of the message template. + MessageTemplateId pulumi.StringOutput `pulumi:"messageTemplateId"` + // The name of the message template. + Name pulumi.StringOutput `pulumi:"name"` + // The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }. + Tags aws.TagArrayOutput `pulumi:"tags"` +} + +// NewMessageTemplate registers a new resource with the given unique name, arguments, and options. +func NewMessageTemplate(ctx *pulumi.Context, + name string, args *MessageTemplateArgs, opts ...pulumi.ResourceOption) (*MessageTemplate, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ChannelSubtype == nil { + return nil, errors.New("invalid value for required argument 'ChannelSubtype'") + } + if args.Content == nil { + return nil, errors.New("invalid value for required argument 'Content'") + } + if args.KnowledgeBaseArn == nil { + return nil, errors.New("invalid value for required argument 'KnowledgeBaseArn'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "channelSubtype", + "knowledgeBaseArn", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource MessageTemplate + err := ctx.RegisterResource("aws-native:wisdom:MessageTemplate", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMessageTemplate gets an existing MessageTemplate 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 GetMessageTemplate(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MessageTemplateState, opts ...pulumi.ResourceOption) (*MessageTemplate, error) { + var resource MessageTemplate + err := ctx.ReadResource("aws-native:wisdom:MessageTemplate", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering MessageTemplate resources. +type messageTemplateState struct { +} + +type MessageTemplateState struct { +} + +func (MessageTemplateState) ElementType() reflect.Type { + return reflect.TypeOf((*messageTemplateState)(nil)).Elem() +} + +type messageTemplateArgs struct { + ChannelSubtype MessageTemplateChannelSubtype `pulumi:"channelSubtype"` + Content MessageTemplateContent `pulumi:"content"` + DefaultAttributes *MessageTemplateAttributes `pulumi:"defaultAttributes"` + // The description of the message template. + Description *string `pulumi:"description"` + GroupingConfiguration *MessageTemplateGroupingConfiguration `pulumi:"groupingConfiguration"` + // The Amazon Resource Name (ARN) of the knowledge base to which the message template belongs. + KnowledgeBaseArn string `pulumi:"knowledgeBaseArn"` + // The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW + Language *string `pulumi:"language"` + // The name of the message template. + Name *string `pulumi:"name"` + // The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }. + Tags []aws.Tag `pulumi:"tags"` +} + +// The set of arguments for constructing a MessageTemplate resource. +type MessageTemplateArgs struct { + ChannelSubtype MessageTemplateChannelSubtypeInput + Content MessageTemplateContentInput + DefaultAttributes MessageTemplateAttributesPtrInput + // The description of the message template. + Description pulumi.StringPtrInput + GroupingConfiguration MessageTemplateGroupingConfigurationPtrInput + // The Amazon Resource Name (ARN) of the knowledge base to which the message template belongs. + KnowledgeBaseArn pulumi.StringInput + // The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW + Language pulumi.StringPtrInput + // The name of the message template. + Name pulumi.StringPtrInput + // The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }. + Tags aws.TagArrayInput +} + +func (MessageTemplateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*messageTemplateArgs)(nil)).Elem() +} + +type MessageTemplateInput interface { + pulumi.Input + + ToMessageTemplateOutput() MessageTemplateOutput + ToMessageTemplateOutputWithContext(ctx context.Context) MessageTemplateOutput +} + +func (*MessageTemplate) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplate)(nil)).Elem() +} + +func (i *MessageTemplate) ToMessageTemplateOutput() MessageTemplateOutput { + return i.ToMessageTemplateOutputWithContext(context.Background()) +} + +func (i *MessageTemplate) ToMessageTemplateOutputWithContext(ctx context.Context) MessageTemplateOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateOutput) +} + +type MessageTemplateOutput struct{ *pulumi.OutputState } + +func (MessageTemplateOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplate)(nil)).Elem() +} + +func (o MessageTemplateOutput) ToMessageTemplateOutput() MessageTemplateOutput { + return o +} + +func (o MessageTemplateOutput) ToMessageTemplateOutputWithContext(ctx context.Context) MessageTemplateOutput { + return o +} + +func (o MessageTemplateOutput) ChannelSubtype() MessageTemplateChannelSubtypeOutput { + return o.ApplyT(func(v *MessageTemplate) MessageTemplateChannelSubtypeOutput { return v.ChannelSubtype }).(MessageTemplateChannelSubtypeOutput) +} + +func (o MessageTemplateOutput) Content() MessageTemplateContentOutput { + return o.ApplyT(func(v *MessageTemplate) MessageTemplateContentOutput { return v.Content }).(MessageTemplateContentOutput) +} + +func (o MessageTemplateOutput) DefaultAttributes() MessageTemplateAttributesPtrOutput { + return o.ApplyT(func(v *MessageTemplate) MessageTemplateAttributesPtrOutput { return v.DefaultAttributes }).(MessageTemplateAttributesPtrOutput) +} + +// The description of the message template. +func (o MessageTemplateOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplate) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +func (o MessageTemplateOutput) GroupingConfiguration() MessageTemplateGroupingConfigurationPtrOutput { + return o.ApplyT(func(v *MessageTemplate) MessageTemplateGroupingConfigurationPtrOutput { return v.GroupingConfiguration }).(MessageTemplateGroupingConfigurationPtrOutput) +} + +// The Amazon Resource Name (ARN) of the knowledge base to which the message template belongs. +func (o MessageTemplateOutput) KnowledgeBaseArn() pulumi.StringOutput { + return o.ApplyT(func(v *MessageTemplate) pulumi.StringOutput { return v.KnowledgeBaseArn }).(pulumi.StringOutput) +} + +// The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW +func (o MessageTemplateOutput) Language() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplate) pulumi.StringPtrOutput { return v.Language }).(pulumi.StringPtrOutput) +} + +// The Amazon Resource Name (ARN) of the message template. +func (o MessageTemplateOutput) MessageTemplateArn() pulumi.StringOutput { + return o.ApplyT(func(v *MessageTemplate) pulumi.StringOutput { return v.MessageTemplateArn }).(pulumi.StringOutput) +} + +// The content SHA256 of the message template. +func (o MessageTemplateOutput) MessageTemplateContentSha256() pulumi.StringOutput { + return o.ApplyT(func(v *MessageTemplate) pulumi.StringOutput { return v.MessageTemplateContentSha256 }).(pulumi.StringOutput) +} + +// The unique identifier of the message template. +func (o MessageTemplateOutput) MessageTemplateId() pulumi.StringOutput { + return o.ApplyT(func(v *MessageTemplate) pulumi.StringOutput { return v.MessageTemplateId }).(pulumi.StringOutput) +} + +// The name of the message template. +func (o MessageTemplateOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *MessageTemplate) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }. +func (o MessageTemplateOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v *MessageTemplate) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateInput)(nil)).Elem(), &MessageTemplate{}) + pulumi.RegisterOutputType(MessageTemplateOutput{}) +} diff --git a/sdk/go/aws/wisdom/messageTemplateVersion.go b/sdk/go/aws/wisdom/messageTemplateVersion.go new file mode 100644 index 0000000000..611a764b3f --- /dev/null +++ b/sdk/go/aws/wisdom/messageTemplateVersion.go @@ -0,0 +1,150 @@ +// 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" +) + +// A version for the specified customer-managed message template within the specified knowledge base. +type MessageTemplateVersion struct { + pulumi.CustomResourceState + + // The unqualified Amazon Resource Name (ARN) of the message template. + MessageTemplateArn pulumi.StringOutput `pulumi:"messageTemplateArn"` + // The content SHA256 of the message template. + MessageTemplateContentSha256 pulumi.StringPtrOutput `pulumi:"messageTemplateContentSha256"` + // The unqualified Amazon Resource Name (ARN) of the message template version. + MessageTemplateVersionArn pulumi.StringOutput `pulumi:"messageTemplateVersionArn"` + // Current version number of the message template. + MessageTemplateVersionNumber pulumi.Float64Output `pulumi:"messageTemplateVersionNumber"` +} + +// NewMessageTemplateVersion registers a new resource with the given unique name, arguments, and options. +func NewMessageTemplateVersion(ctx *pulumi.Context, + name string, args *MessageTemplateVersionArgs, opts ...pulumi.ResourceOption) (*MessageTemplateVersion, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.MessageTemplateArn == nil { + return nil, errors.New("invalid value for required argument 'MessageTemplateArn'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "messageTemplateArn", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource MessageTemplateVersion + err := ctx.RegisterResource("aws-native:wisdom:MessageTemplateVersion", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMessageTemplateVersion gets an existing MessageTemplateVersion 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 GetMessageTemplateVersion(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MessageTemplateVersionState, opts ...pulumi.ResourceOption) (*MessageTemplateVersion, error) { + var resource MessageTemplateVersion + err := ctx.ReadResource("aws-native:wisdom:MessageTemplateVersion", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering MessageTemplateVersion resources. +type messageTemplateVersionState struct { +} + +type MessageTemplateVersionState struct { +} + +func (MessageTemplateVersionState) ElementType() reflect.Type { + return reflect.TypeOf((*messageTemplateVersionState)(nil)).Elem() +} + +type messageTemplateVersionArgs struct { + // The unqualified Amazon Resource Name (ARN) of the message template. + MessageTemplateArn string `pulumi:"messageTemplateArn"` + // The content SHA256 of the message template. + MessageTemplateContentSha256 *string `pulumi:"messageTemplateContentSha256"` +} + +// The set of arguments for constructing a MessageTemplateVersion resource. +type MessageTemplateVersionArgs struct { + // The unqualified Amazon Resource Name (ARN) of the message template. + MessageTemplateArn pulumi.StringInput + // The content SHA256 of the message template. + MessageTemplateContentSha256 pulumi.StringPtrInput +} + +func (MessageTemplateVersionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*messageTemplateVersionArgs)(nil)).Elem() +} + +type MessageTemplateVersionInput interface { + pulumi.Input + + ToMessageTemplateVersionOutput() MessageTemplateVersionOutput + ToMessageTemplateVersionOutputWithContext(ctx context.Context) MessageTemplateVersionOutput +} + +func (*MessageTemplateVersion) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateVersion)(nil)).Elem() +} + +func (i *MessageTemplateVersion) ToMessageTemplateVersionOutput() MessageTemplateVersionOutput { + return i.ToMessageTemplateVersionOutputWithContext(context.Background()) +} + +func (i *MessageTemplateVersion) ToMessageTemplateVersionOutputWithContext(ctx context.Context) MessageTemplateVersionOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateVersionOutput) +} + +type MessageTemplateVersionOutput struct{ *pulumi.OutputState } + +func (MessageTemplateVersionOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateVersion)(nil)).Elem() +} + +func (o MessageTemplateVersionOutput) ToMessageTemplateVersionOutput() MessageTemplateVersionOutput { + return o +} + +func (o MessageTemplateVersionOutput) ToMessageTemplateVersionOutputWithContext(ctx context.Context) MessageTemplateVersionOutput { + return o +} + +// The unqualified Amazon Resource Name (ARN) of the message template. +func (o MessageTemplateVersionOutput) MessageTemplateArn() pulumi.StringOutput { + return o.ApplyT(func(v *MessageTemplateVersion) pulumi.StringOutput { return v.MessageTemplateArn }).(pulumi.StringOutput) +} + +// The content SHA256 of the message template. +func (o MessageTemplateVersionOutput) MessageTemplateContentSha256() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateVersion) pulumi.StringPtrOutput { return v.MessageTemplateContentSha256 }).(pulumi.StringPtrOutput) +} + +// The unqualified Amazon Resource Name (ARN) of the message template version. +func (o MessageTemplateVersionOutput) MessageTemplateVersionArn() pulumi.StringOutput { + return o.ApplyT(func(v *MessageTemplateVersion) pulumi.StringOutput { return v.MessageTemplateVersionArn }).(pulumi.StringOutput) +} + +// Current version number of the message template. +func (o MessageTemplateVersionOutput) MessageTemplateVersionNumber() pulumi.Float64Output { + return o.ApplyT(func(v *MessageTemplateVersion) pulumi.Float64Output { return v.MessageTemplateVersionNumber }).(pulumi.Float64Output) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateVersionInput)(nil)).Elem(), &MessageTemplateVersion{}) + pulumi.RegisterOutputType(MessageTemplateVersionOutput{}) +} diff --git a/sdk/go/aws/wisdom/pulumiEnums.go b/sdk/go/aws/wisdom/pulumiEnums.go index b8a6343223..a330addbdd 100644 --- a/sdk/go/aws/wisdom/pulumiEnums.go +++ b/sdk/go/aws/wisdom/pulumiEnums.go @@ -1491,6 +1491,172 @@ func (in *knowledgeBaseTypePtr) ToKnowledgeBaseTypePtrOutputWithContext(ctx cont return pulumi.ToOutputWithContext(ctx, in).(KnowledgeBaseTypePtrOutput) } +// The channel subtype this message template applies to. +type MessageTemplateChannelSubtype string + +const ( + MessageTemplateChannelSubtypeEmail = MessageTemplateChannelSubtype("EMAIL") + MessageTemplateChannelSubtypeSms = MessageTemplateChannelSubtype("SMS") +) + +func (MessageTemplateChannelSubtype) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateChannelSubtype)(nil)).Elem() +} + +func (e MessageTemplateChannelSubtype) ToMessageTemplateChannelSubtypeOutput() MessageTemplateChannelSubtypeOutput { + return pulumi.ToOutput(e).(MessageTemplateChannelSubtypeOutput) +} + +func (e MessageTemplateChannelSubtype) ToMessageTemplateChannelSubtypeOutputWithContext(ctx context.Context) MessageTemplateChannelSubtypeOutput { + return pulumi.ToOutputWithContext(ctx, e).(MessageTemplateChannelSubtypeOutput) +} + +func (e MessageTemplateChannelSubtype) ToMessageTemplateChannelSubtypePtrOutput() MessageTemplateChannelSubtypePtrOutput { + return e.ToMessageTemplateChannelSubtypePtrOutputWithContext(context.Background()) +} + +func (e MessageTemplateChannelSubtype) ToMessageTemplateChannelSubtypePtrOutputWithContext(ctx context.Context) MessageTemplateChannelSubtypePtrOutput { + return MessageTemplateChannelSubtype(e).ToMessageTemplateChannelSubtypeOutputWithContext(ctx).ToMessageTemplateChannelSubtypePtrOutputWithContext(ctx) +} + +func (e MessageTemplateChannelSubtype) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e MessageTemplateChannelSubtype) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e MessageTemplateChannelSubtype) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e MessageTemplateChannelSubtype) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type MessageTemplateChannelSubtypeOutput struct{ *pulumi.OutputState } + +func (MessageTemplateChannelSubtypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateChannelSubtype)(nil)).Elem() +} + +func (o MessageTemplateChannelSubtypeOutput) ToMessageTemplateChannelSubtypeOutput() MessageTemplateChannelSubtypeOutput { + return o +} + +func (o MessageTemplateChannelSubtypeOutput) ToMessageTemplateChannelSubtypeOutputWithContext(ctx context.Context) MessageTemplateChannelSubtypeOutput { + return o +} + +func (o MessageTemplateChannelSubtypeOutput) ToMessageTemplateChannelSubtypePtrOutput() MessageTemplateChannelSubtypePtrOutput { + return o.ToMessageTemplateChannelSubtypePtrOutputWithContext(context.Background()) +} + +func (o MessageTemplateChannelSubtypeOutput) ToMessageTemplateChannelSubtypePtrOutputWithContext(ctx context.Context) MessageTemplateChannelSubtypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MessageTemplateChannelSubtype) *MessageTemplateChannelSubtype { + return &v + }).(MessageTemplateChannelSubtypePtrOutput) +} + +func (o MessageTemplateChannelSubtypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o MessageTemplateChannelSubtypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e MessageTemplateChannelSubtype) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o MessageTemplateChannelSubtypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o MessageTemplateChannelSubtypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e MessageTemplateChannelSubtype) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type MessageTemplateChannelSubtypePtrOutput struct{ *pulumi.OutputState } + +func (MessageTemplateChannelSubtypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateChannelSubtype)(nil)).Elem() +} + +func (o MessageTemplateChannelSubtypePtrOutput) ToMessageTemplateChannelSubtypePtrOutput() MessageTemplateChannelSubtypePtrOutput { + return o +} + +func (o MessageTemplateChannelSubtypePtrOutput) ToMessageTemplateChannelSubtypePtrOutputWithContext(ctx context.Context) MessageTemplateChannelSubtypePtrOutput { + return o +} + +func (o MessageTemplateChannelSubtypePtrOutput) Elem() MessageTemplateChannelSubtypeOutput { + return o.ApplyT(func(v *MessageTemplateChannelSubtype) MessageTemplateChannelSubtype { + if v != nil { + return *v + } + var ret MessageTemplateChannelSubtype + return ret + }).(MessageTemplateChannelSubtypeOutput) +} + +func (o MessageTemplateChannelSubtypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o MessageTemplateChannelSubtypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *MessageTemplateChannelSubtype) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// MessageTemplateChannelSubtypeInput is an input type that accepts values of the MessageTemplateChannelSubtype enum +// A concrete instance of `MessageTemplateChannelSubtypeInput` can be one of the following: +// +// MessageTemplateChannelSubtypeEmail +// MessageTemplateChannelSubtypeSms +type MessageTemplateChannelSubtypeInput interface { + pulumi.Input + + ToMessageTemplateChannelSubtypeOutput() MessageTemplateChannelSubtypeOutput + ToMessageTemplateChannelSubtypeOutputWithContext(context.Context) MessageTemplateChannelSubtypeOutput +} + +var messageTemplateChannelSubtypePtrType = reflect.TypeOf((**MessageTemplateChannelSubtype)(nil)).Elem() + +type MessageTemplateChannelSubtypePtrInput interface { + pulumi.Input + + ToMessageTemplateChannelSubtypePtrOutput() MessageTemplateChannelSubtypePtrOutput + ToMessageTemplateChannelSubtypePtrOutputWithContext(context.Context) MessageTemplateChannelSubtypePtrOutput +} + +type messageTemplateChannelSubtypePtr string + +func MessageTemplateChannelSubtypePtr(v string) MessageTemplateChannelSubtypePtrInput { + return (*messageTemplateChannelSubtypePtr)(&v) +} + +func (*messageTemplateChannelSubtypePtr) ElementType() reflect.Type { + return messageTemplateChannelSubtypePtrType +} + +func (in *messageTemplateChannelSubtypePtr) ToMessageTemplateChannelSubtypePtrOutput() MessageTemplateChannelSubtypePtrOutput { + return pulumi.ToOutput(in).(MessageTemplateChannelSubtypePtrOutput) +} + +func (in *messageTemplateChannelSubtypePtr) ToMessageTemplateChannelSubtypePtrOutputWithContext(ctx context.Context) MessageTemplateChannelSubtypePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(MessageTemplateChannelSubtypePtrOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*AiAgentAiAgentAssociationConfigurationTypeInput)(nil)).Elem(), AiAgentAiAgentAssociationConfigurationType("KNOWLEDGE_BASE")) pulumi.RegisterInputType(reflect.TypeOf((*AiAgentAiAgentAssociationConfigurationTypePtrInput)(nil)).Elem(), AiAgentAiAgentAssociationConfigurationType("KNOWLEDGE_BASE")) @@ -1510,6 +1676,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*AssistantTypePtrInput)(nil)).Elem(), AssistantType("AGENT")) pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBaseTypeInput)(nil)).Elem(), KnowledgeBaseType("EXTERNAL")) pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBaseTypePtrInput)(nil)).Elem(), KnowledgeBaseType("EXTERNAL")) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateChannelSubtypeInput)(nil)).Elem(), MessageTemplateChannelSubtype("EMAIL")) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateChannelSubtypePtrInput)(nil)).Elem(), MessageTemplateChannelSubtype("EMAIL")) pulumi.RegisterOutputType(AiAgentAiAgentAssociationConfigurationTypeOutput{}) pulumi.RegisterOutputType(AiAgentAiAgentAssociationConfigurationTypePtrOutput{}) pulumi.RegisterOutputType(AiAgentAiAgentTypeOutput{}) @@ -1528,4 +1696,6 @@ func init() { pulumi.RegisterOutputType(AssistantTypePtrOutput{}) pulumi.RegisterOutputType(KnowledgeBaseTypeOutput{}) pulumi.RegisterOutputType(KnowledgeBaseTypePtrOutput{}) + pulumi.RegisterOutputType(MessageTemplateChannelSubtypeOutput{}) + pulumi.RegisterOutputType(MessageTemplateChannelSubtypePtrOutput{}) } diff --git a/sdk/go/aws/wisdom/pulumiTypes.go b/sdk/go/aws/wisdom/pulumiTypes.go index dadde17057..756aa38ea6 100644 --- a/sdk/go/aws/wisdom/pulumiTypes.go +++ b/sdk/go/aws/wisdom/pulumiTypes.go @@ -2457,6 +2457,3022 @@ type KnowledgeBaseTag struct { Value string `pulumi:"value"` } +// The agent attributes that are used with the message template. +type MessageTemplateAgentAttributes struct { + // The agent’s first name as entered in their Amazon Connect user account. + FirstName *string `pulumi:"firstName"` + // The agent’s last name as entered in their Amazon Connect user account. + LastName *string `pulumi:"lastName"` +} + +// MessageTemplateAgentAttributesInput is an input type that accepts MessageTemplateAgentAttributesArgs and MessageTemplateAgentAttributesOutput values. +// You can construct a concrete instance of `MessageTemplateAgentAttributesInput` via: +// +// MessageTemplateAgentAttributesArgs{...} +type MessageTemplateAgentAttributesInput interface { + pulumi.Input + + ToMessageTemplateAgentAttributesOutput() MessageTemplateAgentAttributesOutput + ToMessageTemplateAgentAttributesOutputWithContext(context.Context) MessageTemplateAgentAttributesOutput +} + +// The agent attributes that are used with the message template. +type MessageTemplateAgentAttributesArgs struct { + // The agent’s first name as entered in their Amazon Connect user account. + FirstName pulumi.StringPtrInput `pulumi:"firstName"` + // The agent’s last name as entered in their Amazon Connect user account. + LastName pulumi.StringPtrInput `pulumi:"lastName"` +} + +func (MessageTemplateAgentAttributesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateAgentAttributes)(nil)).Elem() +} + +func (i MessageTemplateAgentAttributesArgs) ToMessageTemplateAgentAttributesOutput() MessageTemplateAgentAttributesOutput { + return i.ToMessageTemplateAgentAttributesOutputWithContext(context.Background()) +} + +func (i MessageTemplateAgentAttributesArgs) ToMessageTemplateAgentAttributesOutputWithContext(ctx context.Context) MessageTemplateAgentAttributesOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateAgentAttributesOutput) +} + +func (i MessageTemplateAgentAttributesArgs) ToMessageTemplateAgentAttributesPtrOutput() MessageTemplateAgentAttributesPtrOutput { + return i.ToMessageTemplateAgentAttributesPtrOutputWithContext(context.Background()) +} + +func (i MessageTemplateAgentAttributesArgs) ToMessageTemplateAgentAttributesPtrOutputWithContext(ctx context.Context) MessageTemplateAgentAttributesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateAgentAttributesOutput).ToMessageTemplateAgentAttributesPtrOutputWithContext(ctx) +} + +// MessageTemplateAgentAttributesPtrInput is an input type that accepts MessageTemplateAgentAttributesArgs, MessageTemplateAgentAttributesPtr and MessageTemplateAgentAttributesPtrOutput values. +// You can construct a concrete instance of `MessageTemplateAgentAttributesPtrInput` via: +// +// MessageTemplateAgentAttributesArgs{...} +// +// or: +// +// nil +type MessageTemplateAgentAttributesPtrInput interface { + pulumi.Input + + ToMessageTemplateAgentAttributesPtrOutput() MessageTemplateAgentAttributesPtrOutput + ToMessageTemplateAgentAttributesPtrOutputWithContext(context.Context) MessageTemplateAgentAttributesPtrOutput +} + +type messageTemplateAgentAttributesPtrType MessageTemplateAgentAttributesArgs + +func MessageTemplateAgentAttributesPtr(v *MessageTemplateAgentAttributesArgs) MessageTemplateAgentAttributesPtrInput { + return (*messageTemplateAgentAttributesPtrType)(v) +} + +func (*messageTemplateAgentAttributesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateAgentAttributes)(nil)).Elem() +} + +func (i *messageTemplateAgentAttributesPtrType) ToMessageTemplateAgentAttributesPtrOutput() MessageTemplateAgentAttributesPtrOutput { + return i.ToMessageTemplateAgentAttributesPtrOutputWithContext(context.Background()) +} + +func (i *messageTemplateAgentAttributesPtrType) ToMessageTemplateAgentAttributesPtrOutputWithContext(ctx context.Context) MessageTemplateAgentAttributesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateAgentAttributesPtrOutput) +} + +// The agent attributes that are used with the message template. +type MessageTemplateAgentAttributesOutput struct{ *pulumi.OutputState } + +func (MessageTemplateAgentAttributesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateAgentAttributes)(nil)).Elem() +} + +func (o MessageTemplateAgentAttributesOutput) ToMessageTemplateAgentAttributesOutput() MessageTemplateAgentAttributesOutput { + return o +} + +func (o MessageTemplateAgentAttributesOutput) ToMessageTemplateAgentAttributesOutputWithContext(ctx context.Context) MessageTemplateAgentAttributesOutput { + return o +} + +func (o MessageTemplateAgentAttributesOutput) ToMessageTemplateAgentAttributesPtrOutput() MessageTemplateAgentAttributesPtrOutput { + return o.ToMessageTemplateAgentAttributesPtrOutputWithContext(context.Background()) +} + +func (o MessageTemplateAgentAttributesOutput) ToMessageTemplateAgentAttributesPtrOutputWithContext(ctx context.Context) MessageTemplateAgentAttributesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MessageTemplateAgentAttributes) *MessageTemplateAgentAttributes { + return &v + }).(MessageTemplateAgentAttributesPtrOutput) +} + +// The agent’s first name as entered in their Amazon Connect user account. +func (o MessageTemplateAgentAttributesOutput) FirstName() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateAgentAttributes) *string { return v.FirstName }).(pulumi.StringPtrOutput) +} + +// The agent’s last name as entered in their Amazon Connect user account. +func (o MessageTemplateAgentAttributesOutput) LastName() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateAgentAttributes) *string { return v.LastName }).(pulumi.StringPtrOutput) +} + +type MessageTemplateAgentAttributesPtrOutput struct{ *pulumi.OutputState } + +func (MessageTemplateAgentAttributesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateAgentAttributes)(nil)).Elem() +} + +func (o MessageTemplateAgentAttributesPtrOutput) ToMessageTemplateAgentAttributesPtrOutput() MessageTemplateAgentAttributesPtrOutput { + return o +} + +func (o MessageTemplateAgentAttributesPtrOutput) ToMessageTemplateAgentAttributesPtrOutputWithContext(ctx context.Context) MessageTemplateAgentAttributesPtrOutput { + return o +} + +func (o MessageTemplateAgentAttributesPtrOutput) Elem() MessageTemplateAgentAttributesOutput { + return o.ApplyT(func(v *MessageTemplateAgentAttributes) MessageTemplateAgentAttributes { + if v != nil { + return *v + } + var ret MessageTemplateAgentAttributes + return ret + }).(MessageTemplateAgentAttributesOutput) +} + +// The agent’s first name as entered in their Amazon Connect user account. +func (o MessageTemplateAgentAttributesPtrOutput) FirstName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateAgentAttributes) *string { + if v == nil { + return nil + } + return v.FirstName + }).(pulumi.StringPtrOutput) +} + +// The agent’s last name as entered in their Amazon Connect user account. +func (o MessageTemplateAgentAttributesPtrOutput) LastName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateAgentAttributes) *string { + if v == nil { + return nil + } + return v.LastName + }).(pulumi.StringPtrOutput) +} + +// An object that specifies the default values to use for variables in the message template. This object contains different categories of key-value pairs. Each key defines a variable or placeholder in the message template. The corresponding value defines the default value for that variable. +type MessageTemplateAttributes struct { + AgentAttributes *MessageTemplateAgentAttributes `pulumi:"agentAttributes"` + CustomAttributes map[string]string `pulumi:"customAttributes"` + CustomerProfileAttributes *MessageTemplateCustomerProfileAttributes `pulumi:"customerProfileAttributes"` + SystemAttributes *MessageTemplateSystemAttributes `pulumi:"systemAttributes"` +} + +// MessageTemplateAttributesInput is an input type that accepts MessageTemplateAttributesArgs and MessageTemplateAttributesOutput values. +// You can construct a concrete instance of `MessageTemplateAttributesInput` via: +// +// MessageTemplateAttributesArgs{...} +type MessageTemplateAttributesInput interface { + pulumi.Input + + ToMessageTemplateAttributesOutput() MessageTemplateAttributesOutput + ToMessageTemplateAttributesOutputWithContext(context.Context) MessageTemplateAttributesOutput +} + +// An object that specifies the default values to use for variables in the message template. This object contains different categories of key-value pairs. Each key defines a variable or placeholder in the message template. The corresponding value defines the default value for that variable. +type MessageTemplateAttributesArgs struct { + AgentAttributes MessageTemplateAgentAttributesPtrInput `pulumi:"agentAttributes"` + CustomAttributes pulumi.StringMapInput `pulumi:"customAttributes"` + CustomerProfileAttributes MessageTemplateCustomerProfileAttributesPtrInput `pulumi:"customerProfileAttributes"` + SystemAttributes MessageTemplateSystemAttributesPtrInput `pulumi:"systemAttributes"` +} + +func (MessageTemplateAttributesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateAttributes)(nil)).Elem() +} + +func (i MessageTemplateAttributesArgs) ToMessageTemplateAttributesOutput() MessageTemplateAttributesOutput { + return i.ToMessageTemplateAttributesOutputWithContext(context.Background()) +} + +func (i MessageTemplateAttributesArgs) ToMessageTemplateAttributesOutputWithContext(ctx context.Context) MessageTemplateAttributesOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateAttributesOutput) +} + +func (i MessageTemplateAttributesArgs) ToMessageTemplateAttributesPtrOutput() MessageTemplateAttributesPtrOutput { + return i.ToMessageTemplateAttributesPtrOutputWithContext(context.Background()) +} + +func (i MessageTemplateAttributesArgs) ToMessageTemplateAttributesPtrOutputWithContext(ctx context.Context) MessageTemplateAttributesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateAttributesOutput).ToMessageTemplateAttributesPtrOutputWithContext(ctx) +} + +// MessageTemplateAttributesPtrInput is an input type that accepts MessageTemplateAttributesArgs, MessageTemplateAttributesPtr and MessageTemplateAttributesPtrOutput values. +// You can construct a concrete instance of `MessageTemplateAttributesPtrInput` via: +// +// MessageTemplateAttributesArgs{...} +// +// or: +// +// nil +type MessageTemplateAttributesPtrInput interface { + pulumi.Input + + ToMessageTemplateAttributesPtrOutput() MessageTemplateAttributesPtrOutput + ToMessageTemplateAttributesPtrOutputWithContext(context.Context) MessageTemplateAttributesPtrOutput +} + +type messageTemplateAttributesPtrType MessageTemplateAttributesArgs + +func MessageTemplateAttributesPtr(v *MessageTemplateAttributesArgs) MessageTemplateAttributesPtrInput { + return (*messageTemplateAttributesPtrType)(v) +} + +func (*messageTemplateAttributesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateAttributes)(nil)).Elem() +} + +func (i *messageTemplateAttributesPtrType) ToMessageTemplateAttributesPtrOutput() MessageTemplateAttributesPtrOutput { + return i.ToMessageTemplateAttributesPtrOutputWithContext(context.Background()) +} + +func (i *messageTemplateAttributesPtrType) ToMessageTemplateAttributesPtrOutputWithContext(ctx context.Context) MessageTemplateAttributesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateAttributesPtrOutput) +} + +// An object that specifies the default values to use for variables in the message template. This object contains different categories of key-value pairs. Each key defines a variable or placeholder in the message template. The corresponding value defines the default value for that variable. +type MessageTemplateAttributesOutput struct{ *pulumi.OutputState } + +func (MessageTemplateAttributesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateAttributes)(nil)).Elem() +} + +func (o MessageTemplateAttributesOutput) ToMessageTemplateAttributesOutput() MessageTemplateAttributesOutput { + return o +} + +func (o MessageTemplateAttributesOutput) ToMessageTemplateAttributesOutputWithContext(ctx context.Context) MessageTemplateAttributesOutput { + return o +} + +func (o MessageTemplateAttributesOutput) ToMessageTemplateAttributesPtrOutput() MessageTemplateAttributesPtrOutput { + return o.ToMessageTemplateAttributesPtrOutputWithContext(context.Background()) +} + +func (o MessageTemplateAttributesOutput) ToMessageTemplateAttributesPtrOutputWithContext(ctx context.Context) MessageTemplateAttributesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MessageTemplateAttributes) *MessageTemplateAttributes { + return &v + }).(MessageTemplateAttributesPtrOutput) +} + +func (o MessageTemplateAttributesOutput) AgentAttributes() MessageTemplateAgentAttributesPtrOutput { + return o.ApplyT(func(v MessageTemplateAttributes) *MessageTemplateAgentAttributes { return v.AgentAttributes }).(MessageTemplateAgentAttributesPtrOutput) +} + +func (o MessageTemplateAttributesOutput) CustomAttributes() pulumi.StringMapOutput { + return o.ApplyT(func(v MessageTemplateAttributes) map[string]string { return v.CustomAttributes }).(pulumi.StringMapOutput) +} + +func (o MessageTemplateAttributesOutput) CustomerProfileAttributes() MessageTemplateCustomerProfileAttributesPtrOutput { + return o.ApplyT(func(v MessageTemplateAttributes) *MessageTemplateCustomerProfileAttributes { + return v.CustomerProfileAttributes + }).(MessageTemplateCustomerProfileAttributesPtrOutput) +} + +func (o MessageTemplateAttributesOutput) SystemAttributes() MessageTemplateSystemAttributesPtrOutput { + return o.ApplyT(func(v MessageTemplateAttributes) *MessageTemplateSystemAttributes { return v.SystemAttributes }).(MessageTemplateSystemAttributesPtrOutput) +} + +type MessageTemplateAttributesPtrOutput struct{ *pulumi.OutputState } + +func (MessageTemplateAttributesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateAttributes)(nil)).Elem() +} + +func (o MessageTemplateAttributesPtrOutput) ToMessageTemplateAttributesPtrOutput() MessageTemplateAttributesPtrOutput { + return o +} + +func (o MessageTemplateAttributesPtrOutput) ToMessageTemplateAttributesPtrOutputWithContext(ctx context.Context) MessageTemplateAttributesPtrOutput { + return o +} + +func (o MessageTemplateAttributesPtrOutput) Elem() MessageTemplateAttributesOutput { + return o.ApplyT(func(v *MessageTemplateAttributes) MessageTemplateAttributes { + if v != nil { + return *v + } + var ret MessageTemplateAttributes + return ret + }).(MessageTemplateAttributesOutput) +} + +func (o MessageTemplateAttributesPtrOutput) AgentAttributes() MessageTemplateAgentAttributesPtrOutput { + return o.ApplyT(func(v *MessageTemplateAttributes) *MessageTemplateAgentAttributes { + if v == nil { + return nil + } + return v.AgentAttributes + }).(MessageTemplateAgentAttributesPtrOutput) +} + +func (o MessageTemplateAttributesPtrOutput) CustomAttributes() pulumi.StringMapOutput { + return o.ApplyT(func(v *MessageTemplateAttributes) map[string]string { + if v == nil { + return nil + } + return v.CustomAttributes + }).(pulumi.StringMapOutput) +} + +func (o MessageTemplateAttributesPtrOutput) CustomerProfileAttributes() MessageTemplateCustomerProfileAttributesPtrOutput { + return o.ApplyT(func(v *MessageTemplateAttributes) *MessageTemplateCustomerProfileAttributes { + if v == nil { + return nil + } + return v.CustomerProfileAttributes + }).(MessageTemplateCustomerProfileAttributesPtrOutput) +} + +func (o MessageTemplateAttributesPtrOutput) SystemAttributes() MessageTemplateSystemAttributesPtrOutput { + return o.ApplyT(func(v *MessageTemplateAttributes) *MessageTemplateSystemAttributes { + if v == nil { + return nil + } + return v.SystemAttributes + }).(MessageTemplateSystemAttributesPtrOutput) +} + +// The container of message template body. +type MessageTemplateBodyContentProvider struct { + Content *string `pulumi:"content"` +} + +// MessageTemplateBodyContentProviderInput is an input type that accepts MessageTemplateBodyContentProviderArgs and MessageTemplateBodyContentProviderOutput values. +// You can construct a concrete instance of `MessageTemplateBodyContentProviderInput` via: +// +// MessageTemplateBodyContentProviderArgs{...} +type MessageTemplateBodyContentProviderInput interface { + pulumi.Input + + ToMessageTemplateBodyContentProviderOutput() MessageTemplateBodyContentProviderOutput + ToMessageTemplateBodyContentProviderOutputWithContext(context.Context) MessageTemplateBodyContentProviderOutput +} + +// The container of message template body. +type MessageTemplateBodyContentProviderArgs struct { + Content pulumi.StringPtrInput `pulumi:"content"` +} + +func (MessageTemplateBodyContentProviderArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateBodyContentProvider)(nil)).Elem() +} + +func (i MessageTemplateBodyContentProviderArgs) ToMessageTemplateBodyContentProviderOutput() MessageTemplateBodyContentProviderOutput { + return i.ToMessageTemplateBodyContentProviderOutputWithContext(context.Background()) +} + +func (i MessageTemplateBodyContentProviderArgs) ToMessageTemplateBodyContentProviderOutputWithContext(ctx context.Context) MessageTemplateBodyContentProviderOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateBodyContentProviderOutput) +} + +func (i MessageTemplateBodyContentProviderArgs) ToMessageTemplateBodyContentProviderPtrOutput() MessageTemplateBodyContentProviderPtrOutput { + return i.ToMessageTemplateBodyContentProviderPtrOutputWithContext(context.Background()) +} + +func (i MessageTemplateBodyContentProviderArgs) ToMessageTemplateBodyContentProviderPtrOutputWithContext(ctx context.Context) MessageTemplateBodyContentProviderPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateBodyContentProviderOutput).ToMessageTemplateBodyContentProviderPtrOutputWithContext(ctx) +} + +// MessageTemplateBodyContentProviderPtrInput is an input type that accepts MessageTemplateBodyContentProviderArgs, MessageTemplateBodyContentProviderPtr and MessageTemplateBodyContentProviderPtrOutput values. +// You can construct a concrete instance of `MessageTemplateBodyContentProviderPtrInput` via: +// +// MessageTemplateBodyContentProviderArgs{...} +// +// or: +// +// nil +type MessageTemplateBodyContentProviderPtrInput interface { + pulumi.Input + + ToMessageTemplateBodyContentProviderPtrOutput() MessageTemplateBodyContentProviderPtrOutput + ToMessageTemplateBodyContentProviderPtrOutputWithContext(context.Context) MessageTemplateBodyContentProviderPtrOutput +} + +type messageTemplateBodyContentProviderPtrType MessageTemplateBodyContentProviderArgs + +func MessageTemplateBodyContentProviderPtr(v *MessageTemplateBodyContentProviderArgs) MessageTemplateBodyContentProviderPtrInput { + return (*messageTemplateBodyContentProviderPtrType)(v) +} + +func (*messageTemplateBodyContentProviderPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateBodyContentProvider)(nil)).Elem() +} + +func (i *messageTemplateBodyContentProviderPtrType) ToMessageTemplateBodyContentProviderPtrOutput() MessageTemplateBodyContentProviderPtrOutput { + return i.ToMessageTemplateBodyContentProviderPtrOutputWithContext(context.Background()) +} + +func (i *messageTemplateBodyContentProviderPtrType) ToMessageTemplateBodyContentProviderPtrOutputWithContext(ctx context.Context) MessageTemplateBodyContentProviderPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateBodyContentProviderPtrOutput) +} + +// The container of message template body. +type MessageTemplateBodyContentProviderOutput struct{ *pulumi.OutputState } + +func (MessageTemplateBodyContentProviderOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateBodyContentProvider)(nil)).Elem() +} + +func (o MessageTemplateBodyContentProviderOutput) ToMessageTemplateBodyContentProviderOutput() MessageTemplateBodyContentProviderOutput { + return o +} + +func (o MessageTemplateBodyContentProviderOutput) ToMessageTemplateBodyContentProviderOutputWithContext(ctx context.Context) MessageTemplateBodyContentProviderOutput { + return o +} + +func (o MessageTemplateBodyContentProviderOutput) ToMessageTemplateBodyContentProviderPtrOutput() MessageTemplateBodyContentProviderPtrOutput { + return o.ToMessageTemplateBodyContentProviderPtrOutputWithContext(context.Background()) +} + +func (o MessageTemplateBodyContentProviderOutput) ToMessageTemplateBodyContentProviderPtrOutputWithContext(ctx context.Context) MessageTemplateBodyContentProviderPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MessageTemplateBodyContentProvider) *MessageTemplateBodyContentProvider { + return &v + }).(MessageTemplateBodyContentProviderPtrOutput) +} + +func (o MessageTemplateBodyContentProviderOutput) Content() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateBodyContentProvider) *string { return v.Content }).(pulumi.StringPtrOutput) +} + +type MessageTemplateBodyContentProviderPtrOutput struct{ *pulumi.OutputState } + +func (MessageTemplateBodyContentProviderPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateBodyContentProvider)(nil)).Elem() +} + +func (o MessageTemplateBodyContentProviderPtrOutput) ToMessageTemplateBodyContentProviderPtrOutput() MessageTemplateBodyContentProviderPtrOutput { + return o +} + +func (o MessageTemplateBodyContentProviderPtrOutput) ToMessageTemplateBodyContentProviderPtrOutputWithContext(ctx context.Context) MessageTemplateBodyContentProviderPtrOutput { + return o +} + +func (o MessageTemplateBodyContentProviderPtrOutput) Elem() MessageTemplateBodyContentProviderOutput { + return o.ApplyT(func(v *MessageTemplateBodyContentProvider) MessageTemplateBodyContentProvider { + if v != nil { + return *v + } + var ret MessageTemplateBodyContentProvider + return ret + }).(MessageTemplateBodyContentProviderOutput) +} + +func (o MessageTemplateBodyContentProviderPtrOutput) Content() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateBodyContentProvider) *string { + if v == nil { + return nil + } + return v.Content + }).(pulumi.StringPtrOutput) +} + +// The content of the message template. +type MessageTemplateContent struct { + EmailMessageTemplateContent *MessageTemplateEmailMessageTemplateContent `pulumi:"emailMessageTemplateContent"` + SmsMessageTemplateContent *MessageTemplateSmsMessageTemplateContent `pulumi:"smsMessageTemplateContent"` +} + +// MessageTemplateContentInput is an input type that accepts MessageTemplateContentArgs and MessageTemplateContentOutput values. +// You can construct a concrete instance of `MessageTemplateContentInput` via: +// +// MessageTemplateContentArgs{...} +type MessageTemplateContentInput interface { + pulumi.Input + + ToMessageTemplateContentOutput() MessageTemplateContentOutput + ToMessageTemplateContentOutputWithContext(context.Context) MessageTemplateContentOutput +} + +// The content of the message template. +type MessageTemplateContentArgs struct { + EmailMessageTemplateContent MessageTemplateEmailMessageTemplateContentPtrInput `pulumi:"emailMessageTemplateContent"` + SmsMessageTemplateContent MessageTemplateSmsMessageTemplateContentPtrInput `pulumi:"smsMessageTemplateContent"` +} + +func (MessageTemplateContentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateContent)(nil)).Elem() +} + +func (i MessageTemplateContentArgs) ToMessageTemplateContentOutput() MessageTemplateContentOutput { + return i.ToMessageTemplateContentOutputWithContext(context.Background()) +} + +func (i MessageTemplateContentArgs) ToMessageTemplateContentOutputWithContext(ctx context.Context) MessageTemplateContentOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateContentOutput) +} + +// The content of the message template. +type MessageTemplateContentOutput struct{ *pulumi.OutputState } + +func (MessageTemplateContentOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateContent)(nil)).Elem() +} + +func (o MessageTemplateContentOutput) ToMessageTemplateContentOutput() MessageTemplateContentOutput { + return o +} + +func (o MessageTemplateContentOutput) ToMessageTemplateContentOutputWithContext(ctx context.Context) MessageTemplateContentOutput { + return o +} + +func (o MessageTemplateContentOutput) EmailMessageTemplateContent() MessageTemplateEmailMessageTemplateContentPtrOutput { + return o.ApplyT(func(v MessageTemplateContent) *MessageTemplateEmailMessageTemplateContent { + return v.EmailMessageTemplateContent + }).(MessageTemplateEmailMessageTemplateContentPtrOutput) +} + +func (o MessageTemplateContentOutput) SmsMessageTemplateContent() MessageTemplateSmsMessageTemplateContentPtrOutput { + return o.ApplyT(func(v MessageTemplateContent) *MessageTemplateSmsMessageTemplateContent { + return v.SmsMessageTemplateContent + }).(MessageTemplateSmsMessageTemplateContentPtrOutput) +} + +type MessageTemplateContentPtrOutput struct{ *pulumi.OutputState } + +func (MessageTemplateContentPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateContent)(nil)).Elem() +} + +func (o MessageTemplateContentPtrOutput) ToMessageTemplateContentPtrOutput() MessageTemplateContentPtrOutput { + return o +} + +func (o MessageTemplateContentPtrOutput) ToMessageTemplateContentPtrOutputWithContext(ctx context.Context) MessageTemplateContentPtrOutput { + return o +} + +func (o MessageTemplateContentPtrOutput) Elem() MessageTemplateContentOutput { + return o.ApplyT(func(v *MessageTemplateContent) MessageTemplateContent { + if v != nil { + return *v + } + var ret MessageTemplateContent + return ret + }).(MessageTemplateContentOutput) +} + +func (o MessageTemplateContentPtrOutput) EmailMessageTemplateContent() MessageTemplateEmailMessageTemplateContentPtrOutput { + return o.ApplyT(func(v *MessageTemplateContent) *MessageTemplateEmailMessageTemplateContent { + if v == nil { + return nil + } + return v.EmailMessageTemplateContent + }).(MessageTemplateEmailMessageTemplateContentPtrOutput) +} + +func (o MessageTemplateContentPtrOutput) SmsMessageTemplateContent() MessageTemplateSmsMessageTemplateContentPtrOutput { + return o.ApplyT(func(v *MessageTemplateContent) *MessageTemplateSmsMessageTemplateContent { + if v == nil { + return nil + } + return v.SmsMessageTemplateContent + }).(MessageTemplateSmsMessageTemplateContentPtrOutput) +} + +// The customer profile attributes that are used with the message template. +type MessageTemplateCustomerProfileAttributes struct { + // A unique account number that you have given to the customer. + AccountNumber *string `pulumi:"accountNumber"` + // Any additional information relevant to the customer's profile. + AdditionalInformation *string `pulumi:"additionalInformation"` + // The first line of a customer address. + Address1 *string `pulumi:"address1"` + // The second line of a customer address. + Address2 *string `pulumi:"address2"` + // The third line of a customer address. + Address3 *string `pulumi:"address3"` + // The fourth line of a customer address. + Address4 *string `pulumi:"address4"` + // The first line of a customer’s billing address. + BillingAddress1 *string `pulumi:"billingAddress1"` + // The second line of a customer’s billing address. + BillingAddress2 *string `pulumi:"billingAddress2"` + // The third line of a customer’s billing address. + BillingAddress3 *string `pulumi:"billingAddress3"` + // The fourth line of a customer’s billing address. + BillingAddress4 *string `pulumi:"billingAddress4"` + // The city of a customer’s billing address. + BillingCity *string `pulumi:"billingCity"` + // The country of a customer’s billing address. + BillingCountry *string `pulumi:"billingCountry"` + // The county of a customer’s billing address. + BillingCounty *string `pulumi:"billingCounty"` + // The postal code of a customer’s billing address. + BillingPostalCode *string `pulumi:"billingPostalCode"` + // The province of a customer’s billing address. + BillingProvince *string `pulumi:"billingProvince"` + // The state of a customer’s billing address. + BillingState *string `pulumi:"billingState"` + // The customer's birth date. + BirthDate *string `pulumi:"birthDate"` + // The customer's business email address. + BusinessEmailAddress *string `pulumi:"businessEmailAddress"` + // The name of the customer's business. + BusinessName *string `pulumi:"businessName"` + // The customer's business phone number. + BusinessPhoneNumber *string `pulumi:"businessPhoneNumber"` + // The city in which a customer lives. + City *string `pulumi:"city"` + // The country in which a customer lives. + Country *string `pulumi:"country"` + // The county in which a customer lives. + County *string `pulumi:"county"` + Custom map[string]string `pulumi:"custom"` + // The customer's email address, which has not been specified as a personal or business address. + EmailAddress *string `pulumi:"emailAddress"` + // The customer's first name. + FirstName *string `pulumi:"firstName"` + // The customer's gender. + Gender *string `pulumi:"gender"` + // The customer's home phone number. + HomePhoneNumber *string `pulumi:"homePhoneNumber"` + // The customer's last name. + LastName *string `pulumi:"lastName"` + // The first line of a customer’s mailing address. + MailingAddress1 *string `pulumi:"mailingAddress1"` + // The second line of a customer’s mailing address. + MailingAddress2 *string `pulumi:"mailingAddress2"` + // The third line of a customer’s mailing address. + MailingAddress3 *string `pulumi:"mailingAddress3"` + // The fourth line of a customer’s mailing address. + MailingAddress4 *string `pulumi:"mailingAddress4"` + // The city of a customer’s mailing address. + MailingCity *string `pulumi:"mailingCity"` + // The country of a customer’s mailing address. + MailingCountry *string `pulumi:"mailingCountry"` + // The county of a customer’s mailing address. + MailingCounty *string `pulumi:"mailingCounty"` + // The postal code of a customer’s mailing address + MailingPostalCode *string `pulumi:"mailingPostalCode"` + // The province of a customer’s mailing address. + MailingProvince *string `pulumi:"mailingProvince"` + // The state of a customer’s mailing address. + MailingState *string `pulumi:"mailingState"` + // The customer's middle name. + MiddleName *string `pulumi:"middleName"` + // The customer's mobile phone number. + MobilePhoneNumber *string `pulumi:"mobilePhoneNumber"` + // The customer's party type. + PartyType *string `pulumi:"partyType"` + // The customer's phone number, which has not been specified as a mobile, home, or business number. + PhoneNumber *string `pulumi:"phoneNumber"` + // The postal code of a customer address. + PostalCode *string `pulumi:"postalCode"` + // The ARN of a customer profile. + ProfileArn *string `pulumi:"profileArn"` + // The unique identifier of a customer profile. + ProfileId *string `pulumi:"profileId"` + // The province in which a customer lives. + Province *string `pulumi:"province"` + // The first line of a customer’s shipping address. + ShippingAddress1 *string `pulumi:"shippingAddress1"` + // The second line of a customer’s shipping address. + ShippingAddress2 *string `pulumi:"shippingAddress2"` + // The third line of a customer’s shipping address. + ShippingAddress3 *string `pulumi:"shippingAddress3"` + // The fourth line of a customer’s shipping address + ShippingAddress4 *string `pulumi:"shippingAddress4"` + // The city of a customer’s shipping address. + ShippingCity *string `pulumi:"shippingCity"` + // The country of a customer’s shipping address. + ShippingCountry *string `pulumi:"shippingCountry"` + // The county of a customer’s shipping address. + ShippingCounty *string `pulumi:"shippingCounty"` + // The postal code of a customer’s shipping address. + ShippingPostalCode *string `pulumi:"shippingPostalCode"` + // The province of a customer’s shipping address. + ShippingProvince *string `pulumi:"shippingProvince"` + // The state of a customer’s shipping address. + ShippingState *string `pulumi:"shippingState"` + // The state in which a customer lives. + State *string `pulumi:"state"` +} + +// MessageTemplateCustomerProfileAttributesInput is an input type that accepts MessageTemplateCustomerProfileAttributesArgs and MessageTemplateCustomerProfileAttributesOutput values. +// You can construct a concrete instance of `MessageTemplateCustomerProfileAttributesInput` via: +// +// MessageTemplateCustomerProfileAttributesArgs{...} +type MessageTemplateCustomerProfileAttributesInput interface { + pulumi.Input + + ToMessageTemplateCustomerProfileAttributesOutput() MessageTemplateCustomerProfileAttributesOutput + ToMessageTemplateCustomerProfileAttributesOutputWithContext(context.Context) MessageTemplateCustomerProfileAttributesOutput +} + +// The customer profile attributes that are used with the message template. +type MessageTemplateCustomerProfileAttributesArgs struct { + // A unique account number that you have given to the customer. + AccountNumber pulumi.StringPtrInput `pulumi:"accountNumber"` + // Any additional information relevant to the customer's profile. + AdditionalInformation pulumi.StringPtrInput `pulumi:"additionalInformation"` + // The first line of a customer address. + Address1 pulumi.StringPtrInput `pulumi:"address1"` + // The second line of a customer address. + Address2 pulumi.StringPtrInput `pulumi:"address2"` + // The third line of a customer address. + Address3 pulumi.StringPtrInput `pulumi:"address3"` + // The fourth line of a customer address. + Address4 pulumi.StringPtrInput `pulumi:"address4"` + // The first line of a customer’s billing address. + BillingAddress1 pulumi.StringPtrInput `pulumi:"billingAddress1"` + // The second line of a customer’s billing address. + BillingAddress2 pulumi.StringPtrInput `pulumi:"billingAddress2"` + // The third line of a customer’s billing address. + BillingAddress3 pulumi.StringPtrInput `pulumi:"billingAddress3"` + // The fourth line of a customer’s billing address. + BillingAddress4 pulumi.StringPtrInput `pulumi:"billingAddress4"` + // The city of a customer’s billing address. + BillingCity pulumi.StringPtrInput `pulumi:"billingCity"` + // The country of a customer’s billing address. + BillingCountry pulumi.StringPtrInput `pulumi:"billingCountry"` + // The county of a customer’s billing address. + BillingCounty pulumi.StringPtrInput `pulumi:"billingCounty"` + // The postal code of a customer’s billing address. + BillingPostalCode pulumi.StringPtrInput `pulumi:"billingPostalCode"` + // The province of a customer’s billing address. + BillingProvince pulumi.StringPtrInput `pulumi:"billingProvince"` + // The state of a customer’s billing address. + BillingState pulumi.StringPtrInput `pulumi:"billingState"` + // The customer's birth date. + BirthDate pulumi.StringPtrInput `pulumi:"birthDate"` + // The customer's business email address. + BusinessEmailAddress pulumi.StringPtrInput `pulumi:"businessEmailAddress"` + // The name of the customer's business. + BusinessName pulumi.StringPtrInput `pulumi:"businessName"` + // The customer's business phone number. + BusinessPhoneNumber pulumi.StringPtrInput `pulumi:"businessPhoneNumber"` + // The city in which a customer lives. + City pulumi.StringPtrInput `pulumi:"city"` + // The country in which a customer lives. + Country pulumi.StringPtrInput `pulumi:"country"` + // The county in which a customer lives. + County pulumi.StringPtrInput `pulumi:"county"` + Custom pulumi.StringMapInput `pulumi:"custom"` + // The customer's email address, which has not been specified as a personal or business address. + EmailAddress pulumi.StringPtrInput `pulumi:"emailAddress"` + // The customer's first name. + FirstName pulumi.StringPtrInput `pulumi:"firstName"` + // The customer's gender. + Gender pulumi.StringPtrInput `pulumi:"gender"` + // The customer's home phone number. + HomePhoneNumber pulumi.StringPtrInput `pulumi:"homePhoneNumber"` + // The customer's last name. + LastName pulumi.StringPtrInput `pulumi:"lastName"` + // The first line of a customer’s mailing address. + MailingAddress1 pulumi.StringPtrInput `pulumi:"mailingAddress1"` + // The second line of a customer’s mailing address. + MailingAddress2 pulumi.StringPtrInput `pulumi:"mailingAddress2"` + // The third line of a customer’s mailing address. + MailingAddress3 pulumi.StringPtrInput `pulumi:"mailingAddress3"` + // The fourth line of a customer’s mailing address. + MailingAddress4 pulumi.StringPtrInput `pulumi:"mailingAddress4"` + // The city of a customer’s mailing address. + MailingCity pulumi.StringPtrInput `pulumi:"mailingCity"` + // The country of a customer’s mailing address. + MailingCountry pulumi.StringPtrInput `pulumi:"mailingCountry"` + // The county of a customer’s mailing address. + MailingCounty pulumi.StringPtrInput `pulumi:"mailingCounty"` + // The postal code of a customer’s mailing address + MailingPostalCode pulumi.StringPtrInput `pulumi:"mailingPostalCode"` + // The province of a customer’s mailing address. + MailingProvince pulumi.StringPtrInput `pulumi:"mailingProvince"` + // The state of a customer’s mailing address. + MailingState pulumi.StringPtrInput `pulumi:"mailingState"` + // The customer's middle name. + MiddleName pulumi.StringPtrInput `pulumi:"middleName"` + // The customer's mobile phone number. + MobilePhoneNumber pulumi.StringPtrInput `pulumi:"mobilePhoneNumber"` + // The customer's party type. + PartyType pulumi.StringPtrInput `pulumi:"partyType"` + // The customer's phone number, which has not been specified as a mobile, home, or business number. + PhoneNumber pulumi.StringPtrInput `pulumi:"phoneNumber"` + // The postal code of a customer address. + PostalCode pulumi.StringPtrInput `pulumi:"postalCode"` + // The ARN of a customer profile. + ProfileArn pulumi.StringPtrInput `pulumi:"profileArn"` + // The unique identifier of a customer profile. + ProfileId pulumi.StringPtrInput `pulumi:"profileId"` + // The province in which a customer lives. + Province pulumi.StringPtrInput `pulumi:"province"` + // The first line of a customer’s shipping address. + ShippingAddress1 pulumi.StringPtrInput `pulumi:"shippingAddress1"` + // The second line of a customer’s shipping address. + ShippingAddress2 pulumi.StringPtrInput `pulumi:"shippingAddress2"` + // The third line of a customer’s shipping address. + ShippingAddress3 pulumi.StringPtrInput `pulumi:"shippingAddress3"` + // The fourth line of a customer’s shipping address + ShippingAddress4 pulumi.StringPtrInput `pulumi:"shippingAddress4"` + // The city of a customer’s shipping address. + ShippingCity pulumi.StringPtrInput `pulumi:"shippingCity"` + // The country of a customer’s shipping address. + ShippingCountry pulumi.StringPtrInput `pulumi:"shippingCountry"` + // The county of a customer’s shipping address. + ShippingCounty pulumi.StringPtrInput `pulumi:"shippingCounty"` + // The postal code of a customer’s shipping address. + ShippingPostalCode pulumi.StringPtrInput `pulumi:"shippingPostalCode"` + // The province of a customer’s shipping address. + ShippingProvince pulumi.StringPtrInput `pulumi:"shippingProvince"` + // The state of a customer’s shipping address. + ShippingState pulumi.StringPtrInput `pulumi:"shippingState"` + // The state in which a customer lives. + State pulumi.StringPtrInput `pulumi:"state"` +} + +func (MessageTemplateCustomerProfileAttributesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateCustomerProfileAttributes)(nil)).Elem() +} + +func (i MessageTemplateCustomerProfileAttributesArgs) ToMessageTemplateCustomerProfileAttributesOutput() MessageTemplateCustomerProfileAttributesOutput { + return i.ToMessageTemplateCustomerProfileAttributesOutputWithContext(context.Background()) +} + +func (i MessageTemplateCustomerProfileAttributesArgs) ToMessageTemplateCustomerProfileAttributesOutputWithContext(ctx context.Context) MessageTemplateCustomerProfileAttributesOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateCustomerProfileAttributesOutput) +} + +func (i MessageTemplateCustomerProfileAttributesArgs) ToMessageTemplateCustomerProfileAttributesPtrOutput() MessageTemplateCustomerProfileAttributesPtrOutput { + return i.ToMessageTemplateCustomerProfileAttributesPtrOutputWithContext(context.Background()) +} + +func (i MessageTemplateCustomerProfileAttributesArgs) ToMessageTemplateCustomerProfileAttributesPtrOutputWithContext(ctx context.Context) MessageTemplateCustomerProfileAttributesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateCustomerProfileAttributesOutput).ToMessageTemplateCustomerProfileAttributesPtrOutputWithContext(ctx) +} + +// MessageTemplateCustomerProfileAttributesPtrInput is an input type that accepts MessageTemplateCustomerProfileAttributesArgs, MessageTemplateCustomerProfileAttributesPtr and MessageTemplateCustomerProfileAttributesPtrOutput values. +// You can construct a concrete instance of `MessageTemplateCustomerProfileAttributesPtrInput` via: +// +// MessageTemplateCustomerProfileAttributesArgs{...} +// +// or: +// +// nil +type MessageTemplateCustomerProfileAttributesPtrInput interface { + pulumi.Input + + ToMessageTemplateCustomerProfileAttributesPtrOutput() MessageTemplateCustomerProfileAttributesPtrOutput + ToMessageTemplateCustomerProfileAttributesPtrOutputWithContext(context.Context) MessageTemplateCustomerProfileAttributesPtrOutput +} + +type messageTemplateCustomerProfileAttributesPtrType MessageTemplateCustomerProfileAttributesArgs + +func MessageTemplateCustomerProfileAttributesPtr(v *MessageTemplateCustomerProfileAttributesArgs) MessageTemplateCustomerProfileAttributesPtrInput { + return (*messageTemplateCustomerProfileAttributesPtrType)(v) +} + +func (*messageTemplateCustomerProfileAttributesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateCustomerProfileAttributes)(nil)).Elem() +} + +func (i *messageTemplateCustomerProfileAttributesPtrType) ToMessageTemplateCustomerProfileAttributesPtrOutput() MessageTemplateCustomerProfileAttributesPtrOutput { + return i.ToMessageTemplateCustomerProfileAttributesPtrOutputWithContext(context.Background()) +} + +func (i *messageTemplateCustomerProfileAttributesPtrType) ToMessageTemplateCustomerProfileAttributesPtrOutputWithContext(ctx context.Context) MessageTemplateCustomerProfileAttributesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateCustomerProfileAttributesPtrOutput) +} + +// The customer profile attributes that are used with the message template. +type MessageTemplateCustomerProfileAttributesOutput struct{ *pulumi.OutputState } + +func (MessageTemplateCustomerProfileAttributesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateCustomerProfileAttributes)(nil)).Elem() +} + +func (o MessageTemplateCustomerProfileAttributesOutput) ToMessageTemplateCustomerProfileAttributesOutput() MessageTemplateCustomerProfileAttributesOutput { + return o +} + +func (o MessageTemplateCustomerProfileAttributesOutput) ToMessageTemplateCustomerProfileAttributesOutputWithContext(ctx context.Context) MessageTemplateCustomerProfileAttributesOutput { + return o +} + +func (o MessageTemplateCustomerProfileAttributesOutput) ToMessageTemplateCustomerProfileAttributesPtrOutput() MessageTemplateCustomerProfileAttributesPtrOutput { + return o.ToMessageTemplateCustomerProfileAttributesPtrOutputWithContext(context.Background()) +} + +func (o MessageTemplateCustomerProfileAttributesOutput) ToMessageTemplateCustomerProfileAttributesPtrOutputWithContext(ctx context.Context) MessageTemplateCustomerProfileAttributesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MessageTemplateCustomerProfileAttributes) *MessageTemplateCustomerProfileAttributes { + return &v + }).(MessageTemplateCustomerProfileAttributesPtrOutput) +} + +// A unique account number that you have given to the customer. +func (o MessageTemplateCustomerProfileAttributesOutput) AccountNumber() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.AccountNumber }).(pulumi.StringPtrOutput) +} + +// Any additional information relevant to the customer's profile. +func (o MessageTemplateCustomerProfileAttributesOutput) AdditionalInformation() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.AdditionalInformation }).(pulumi.StringPtrOutput) +} + +// The first line of a customer address. +func (o MessageTemplateCustomerProfileAttributesOutput) Address1() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.Address1 }).(pulumi.StringPtrOutput) +} + +// The second line of a customer address. +func (o MessageTemplateCustomerProfileAttributesOutput) Address2() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.Address2 }).(pulumi.StringPtrOutput) +} + +// The third line of a customer address. +func (o MessageTemplateCustomerProfileAttributesOutput) Address3() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.Address3 }).(pulumi.StringPtrOutput) +} + +// The fourth line of a customer address. +func (o MessageTemplateCustomerProfileAttributesOutput) Address4() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.Address4 }).(pulumi.StringPtrOutput) +} + +// The first line of a customer’s billing address. +func (o MessageTemplateCustomerProfileAttributesOutput) BillingAddress1() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.BillingAddress1 }).(pulumi.StringPtrOutput) +} + +// The second line of a customer’s billing address. +func (o MessageTemplateCustomerProfileAttributesOutput) BillingAddress2() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.BillingAddress2 }).(pulumi.StringPtrOutput) +} + +// The third line of a customer’s billing address. +func (o MessageTemplateCustomerProfileAttributesOutput) BillingAddress3() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.BillingAddress3 }).(pulumi.StringPtrOutput) +} + +// The fourth line of a customer’s billing address. +func (o MessageTemplateCustomerProfileAttributesOutput) BillingAddress4() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.BillingAddress4 }).(pulumi.StringPtrOutput) +} + +// The city of a customer’s billing address. +func (o MessageTemplateCustomerProfileAttributesOutput) BillingCity() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.BillingCity }).(pulumi.StringPtrOutput) +} + +// The country of a customer’s billing address. +func (o MessageTemplateCustomerProfileAttributesOutput) BillingCountry() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.BillingCountry }).(pulumi.StringPtrOutput) +} + +// The county of a customer’s billing address. +func (o MessageTemplateCustomerProfileAttributesOutput) BillingCounty() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.BillingCounty }).(pulumi.StringPtrOutput) +} + +// The postal code of a customer’s billing address. +func (o MessageTemplateCustomerProfileAttributesOutput) BillingPostalCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.BillingPostalCode }).(pulumi.StringPtrOutput) +} + +// The province of a customer’s billing address. +func (o MessageTemplateCustomerProfileAttributesOutput) BillingProvince() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.BillingProvince }).(pulumi.StringPtrOutput) +} + +// The state of a customer’s billing address. +func (o MessageTemplateCustomerProfileAttributesOutput) BillingState() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.BillingState }).(pulumi.StringPtrOutput) +} + +// The customer's birth date. +func (o MessageTemplateCustomerProfileAttributesOutput) BirthDate() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.BirthDate }).(pulumi.StringPtrOutput) +} + +// The customer's business email address. +func (o MessageTemplateCustomerProfileAttributesOutput) BusinessEmailAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.BusinessEmailAddress }).(pulumi.StringPtrOutput) +} + +// The name of the customer's business. +func (o MessageTemplateCustomerProfileAttributesOutput) BusinessName() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.BusinessName }).(pulumi.StringPtrOutput) +} + +// The customer's business phone number. +func (o MessageTemplateCustomerProfileAttributesOutput) BusinessPhoneNumber() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.BusinessPhoneNumber }).(pulumi.StringPtrOutput) +} + +// The city in which a customer lives. +func (o MessageTemplateCustomerProfileAttributesOutput) City() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.City }).(pulumi.StringPtrOutput) +} + +// The country in which a customer lives. +func (o MessageTemplateCustomerProfileAttributesOutput) Country() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.Country }).(pulumi.StringPtrOutput) +} + +// The county in which a customer lives. +func (o MessageTemplateCustomerProfileAttributesOutput) County() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.County }).(pulumi.StringPtrOutput) +} + +func (o MessageTemplateCustomerProfileAttributesOutput) Custom() pulumi.StringMapOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) map[string]string { return v.Custom }).(pulumi.StringMapOutput) +} + +// The customer's email address, which has not been specified as a personal or business address. +func (o MessageTemplateCustomerProfileAttributesOutput) EmailAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.EmailAddress }).(pulumi.StringPtrOutput) +} + +// The customer's first name. +func (o MessageTemplateCustomerProfileAttributesOutput) FirstName() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.FirstName }).(pulumi.StringPtrOutput) +} + +// The customer's gender. +func (o MessageTemplateCustomerProfileAttributesOutput) Gender() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.Gender }).(pulumi.StringPtrOutput) +} + +// The customer's home phone number. +func (o MessageTemplateCustomerProfileAttributesOutput) HomePhoneNumber() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.HomePhoneNumber }).(pulumi.StringPtrOutput) +} + +// The customer's last name. +func (o MessageTemplateCustomerProfileAttributesOutput) LastName() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.LastName }).(pulumi.StringPtrOutput) +} + +// The first line of a customer’s mailing address. +func (o MessageTemplateCustomerProfileAttributesOutput) MailingAddress1() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.MailingAddress1 }).(pulumi.StringPtrOutput) +} + +// The second line of a customer’s mailing address. +func (o MessageTemplateCustomerProfileAttributesOutput) MailingAddress2() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.MailingAddress2 }).(pulumi.StringPtrOutput) +} + +// The third line of a customer’s mailing address. +func (o MessageTemplateCustomerProfileAttributesOutput) MailingAddress3() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.MailingAddress3 }).(pulumi.StringPtrOutput) +} + +// The fourth line of a customer’s mailing address. +func (o MessageTemplateCustomerProfileAttributesOutput) MailingAddress4() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.MailingAddress4 }).(pulumi.StringPtrOutput) +} + +// The city of a customer’s mailing address. +func (o MessageTemplateCustomerProfileAttributesOutput) MailingCity() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.MailingCity }).(pulumi.StringPtrOutput) +} + +// The country of a customer’s mailing address. +func (o MessageTemplateCustomerProfileAttributesOutput) MailingCountry() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.MailingCountry }).(pulumi.StringPtrOutput) +} + +// The county of a customer’s mailing address. +func (o MessageTemplateCustomerProfileAttributesOutput) MailingCounty() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.MailingCounty }).(pulumi.StringPtrOutput) +} + +// The postal code of a customer’s mailing address +func (o MessageTemplateCustomerProfileAttributesOutput) MailingPostalCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.MailingPostalCode }).(pulumi.StringPtrOutput) +} + +// The province of a customer’s mailing address. +func (o MessageTemplateCustomerProfileAttributesOutput) MailingProvince() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.MailingProvince }).(pulumi.StringPtrOutput) +} + +// The state of a customer’s mailing address. +func (o MessageTemplateCustomerProfileAttributesOutput) MailingState() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.MailingState }).(pulumi.StringPtrOutput) +} + +// The customer's middle name. +func (o MessageTemplateCustomerProfileAttributesOutput) MiddleName() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.MiddleName }).(pulumi.StringPtrOutput) +} + +// The customer's mobile phone number. +func (o MessageTemplateCustomerProfileAttributesOutput) MobilePhoneNumber() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.MobilePhoneNumber }).(pulumi.StringPtrOutput) +} + +// The customer's party type. +func (o MessageTemplateCustomerProfileAttributesOutput) PartyType() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.PartyType }).(pulumi.StringPtrOutput) +} + +// The customer's phone number, which has not been specified as a mobile, home, or business number. +func (o MessageTemplateCustomerProfileAttributesOutput) PhoneNumber() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.PhoneNumber }).(pulumi.StringPtrOutput) +} + +// The postal code of a customer address. +func (o MessageTemplateCustomerProfileAttributesOutput) PostalCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.PostalCode }).(pulumi.StringPtrOutput) +} + +// The ARN of a customer profile. +func (o MessageTemplateCustomerProfileAttributesOutput) ProfileArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.ProfileArn }).(pulumi.StringPtrOutput) +} + +// The unique identifier of a customer profile. +func (o MessageTemplateCustomerProfileAttributesOutput) ProfileId() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.ProfileId }).(pulumi.StringPtrOutput) +} + +// The province in which a customer lives. +func (o MessageTemplateCustomerProfileAttributesOutput) Province() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.Province }).(pulumi.StringPtrOutput) +} + +// The first line of a customer’s shipping address. +func (o MessageTemplateCustomerProfileAttributesOutput) ShippingAddress1() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.ShippingAddress1 }).(pulumi.StringPtrOutput) +} + +// The second line of a customer’s shipping address. +func (o MessageTemplateCustomerProfileAttributesOutput) ShippingAddress2() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.ShippingAddress2 }).(pulumi.StringPtrOutput) +} + +// The third line of a customer’s shipping address. +func (o MessageTemplateCustomerProfileAttributesOutput) ShippingAddress3() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.ShippingAddress3 }).(pulumi.StringPtrOutput) +} + +// The fourth line of a customer’s shipping address +func (o MessageTemplateCustomerProfileAttributesOutput) ShippingAddress4() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.ShippingAddress4 }).(pulumi.StringPtrOutput) +} + +// The city of a customer’s shipping address. +func (o MessageTemplateCustomerProfileAttributesOutput) ShippingCity() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.ShippingCity }).(pulumi.StringPtrOutput) +} + +// The country of a customer’s shipping address. +func (o MessageTemplateCustomerProfileAttributesOutput) ShippingCountry() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.ShippingCountry }).(pulumi.StringPtrOutput) +} + +// The county of a customer’s shipping address. +func (o MessageTemplateCustomerProfileAttributesOutput) ShippingCounty() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.ShippingCounty }).(pulumi.StringPtrOutput) +} + +// The postal code of a customer’s shipping address. +func (o MessageTemplateCustomerProfileAttributesOutput) ShippingPostalCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.ShippingPostalCode }).(pulumi.StringPtrOutput) +} + +// The province of a customer’s shipping address. +func (o MessageTemplateCustomerProfileAttributesOutput) ShippingProvince() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.ShippingProvince }).(pulumi.StringPtrOutput) +} + +// The state of a customer’s shipping address. +func (o MessageTemplateCustomerProfileAttributesOutput) ShippingState() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.ShippingState }).(pulumi.StringPtrOutput) +} + +// The state in which a customer lives. +func (o MessageTemplateCustomerProfileAttributesOutput) State() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateCustomerProfileAttributes) *string { return v.State }).(pulumi.StringPtrOutput) +} + +type MessageTemplateCustomerProfileAttributesPtrOutput struct{ *pulumi.OutputState } + +func (MessageTemplateCustomerProfileAttributesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateCustomerProfileAttributes)(nil)).Elem() +} + +func (o MessageTemplateCustomerProfileAttributesPtrOutput) ToMessageTemplateCustomerProfileAttributesPtrOutput() MessageTemplateCustomerProfileAttributesPtrOutput { + return o +} + +func (o MessageTemplateCustomerProfileAttributesPtrOutput) ToMessageTemplateCustomerProfileAttributesPtrOutputWithContext(ctx context.Context) MessageTemplateCustomerProfileAttributesPtrOutput { + return o +} + +func (o MessageTemplateCustomerProfileAttributesPtrOutput) Elem() MessageTemplateCustomerProfileAttributesOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) MessageTemplateCustomerProfileAttributes { + if v != nil { + return *v + } + var ret MessageTemplateCustomerProfileAttributes + return ret + }).(MessageTemplateCustomerProfileAttributesOutput) +} + +// A unique account number that you have given to the customer. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) AccountNumber() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.AccountNumber + }).(pulumi.StringPtrOutput) +} + +// Any additional information relevant to the customer's profile. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) AdditionalInformation() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.AdditionalInformation + }).(pulumi.StringPtrOutput) +} + +// The first line of a customer address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) Address1() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.Address1 + }).(pulumi.StringPtrOutput) +} + +// The second line of a customer address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) Address2() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.Address2 + }).(pulumi.StringPtrOutput) +} + +// The third line of a customer address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) Address3() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.Address3 + }).(pulumi.StringPtrOutput) +} + +// The fourth line of a customer address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) Address4() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.Address4 + }).(pulumi.StringPtrOutput) +} + +// The first line of a customer’s billing address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) BillingAddress1() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.BillingAddress1 + }).(pulumi.StringPtrOutput) +} + +// The second line of a customer’s billing address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) BillingAddress2() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.BillingAddress2 + }).(pulumi.StringPtrOutput) +} + +// The third line of a customer’s billing address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) BillingAddress3() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.BillingAddress3 + }).(pulumi.StringPtrOutput) +} + +// The fourth line of a customer’s billing address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) BillingAddress4() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.BillingAddress4 + }).(pulumi.StringPtrOutput) +} + +// The city of a customer’s billing address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) BillingCity() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.BillingCity + }).(pulumi.StringPtrOutput) +} + +// The country of a customer’s billing address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) BillingCountry() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.BillingCountry + }).(pulumi.StringPtrOutput) +} + +// The county of a customer’s billing address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) BillingCounty() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.BillingCounty + }).(pulumi.StringPtrOutput) +} + +// The postal code of a customer’s billing address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) BillingPostalCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.BillingPostalCode + }).(pulumi.StringPtrOutput) +} + +// The province of a customer’s billing address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) BillingProvince() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.BillingProvince + }).(pulumi.StringPtrOutput) +} + +// The state of a customer’s billing address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) BillingState() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.BillingState + }).(pulumi.StringPtrOutput) +} + +// The customer's birth date. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) BirthDate() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.BirthDate + }).(pulumi.StringPtrOutput) +} + +// The customer's business email address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) BusinessEmailAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.BusinessEmailAddress + }).(pulumi.StringPtrOutput) +} + +// The name of the customer's business. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) BusinessName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.BusinessName + }).(pulumi.StringPtrOutput) +} + +// The customer's business phone number. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) BusinessPhoneNumber() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.BusinessPhoneNumber + }).(pulumi.StringPtrOutput) +} + +// The city in which a customer lives. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) City() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.City + }).(pulumi.StringPtrOutput) +} + +// The country in which a customer lives. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) Country() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.Country + }).(pulumi.StringPtrOutput) +} + +// The county in which a customer lives. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) County() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.County + }).(pulumi.StringPtrOutput) +} + +func (o MessageTemplateCustomerProfileAttributesPtrOutput) Custom() pulumi.StringMapOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) map[string]string { + if v == nil { + return nil + } + return v.Custom + }).(pulumi.StringMapOutput) +} + +// The customer's email address, which has not been specified as a personal or business address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) EmailAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.EmailAddress + }).(pulumi.StringPtrOutput) +} + +// The customer's first name. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) FirstName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.FirstName + }).(pulumi.StringPtrOutput) +} + +// The customer's gender. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) Gender() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.Gender + }).(pulumi.StringPtrOutput) +} + +// The customer's home phone number. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) HomePhoneNumber() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.HomePhoneNumber + }).(pulumi.StringPtrOutput) +} + +// The customer's last name. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) LastName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.LastName + }).(pulumi.StringPtrOutput) +} + +// The first line of a customer’s mailing address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) MailingAddress1() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.MailingAddress1 + }).(pulumi.StringPtrOutput) +} + +// The second line of a customer’s mailing address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) MailingAddress2() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.MailingAddress2 + }).(pulumi.StringPtrOutput) +} + +// The third line of a customer’s mailing address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) MailingAddress3() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.MailingAddress3 + }).(pulumi.StringPtrOutput) +} + +// The fourth line of a customer’s mailing address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) MailingAddress4() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.MailingAddress4 + }).(pulumi.StringPtrOutput) +} + +// The city of a customer’s mailing address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) MailingCity() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.MailingCity + }).(pulumi.StringPtrOutput) +} + +// The country of a customer’s mailing address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) MailingCountry() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.MailingCountry + }).(pulumi.StringPtrOutput) +} + +// The county of a customer’s mailing address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) MailingCounty() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.MailingCounty + }).(pulumi.StringPtrOutput) +} + +// The postal code of a customer’s mailing address +func (o MessageTemplateCustomerProfileAttributesPtrOutput) MailingPostalCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.MailingPostalCode + }).(pulumi.StringPtrOutput) +} + +// The province of a customer’s mailing address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) MailingProvince() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.MailingProvince + }).(pulumi.StringPtrOutput) +} + +// The state of a customer’s mailing address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) MailingState() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.MailingState + }).(pulumi.StringPtrOutput) +} + +// The customer's middle name. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) MiddleName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.MiddleName + }).(pulumi.StringPtrOutput) +} + +// The customer's mobile phone number. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) MobilePhoneNumber() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.MobilePhoneNumber + }).(pulumi.StringPtrOutput) +} + +// The customer's party type. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) PartyType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.PartyType + }).(pulumi.StringPtrOutput) +} + +// The customer's phone number, which has not been specified as a mobile, home, or business number. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) PhoneNumber() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.PhoneNumber + }).(pulumi.StringPtrOutput) +} + +// The postal code of a customer address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) PostalCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.PostalCode + }).(pulumi.StringPtrOutput) +} + +// The ARN of a customer profile. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) ProfileArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.ProfileArn + }).(pulumi.StringPtrOutput) +} + +// The unique identifier of a customer profile. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) ProfileId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.ProfileId + }).(pulumi.StringPtrOutput) +} + +// The province in which a customer lives. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) Province() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.Province + }).(pulumi.StringPtrOutput) +} + +// The first line of a customer’s shipping address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) ShippingAddress1() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.ShippingAddress1 + }).(pulumi.StringPtrOutput) +} + +// The second line of a customer’s shipping address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) ShippingAddress2() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.ShippingAddress2 + }).(pulumi.StringPtrOutput) +} + +// The third line of a customer’s shipping address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) ShippingAddress3() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.ShippingAddress3 + }).(pulumi.StringPtrOutput) +} + +// The fourth line of a customer’s shipping address +func (o MessageTemplateCustomerProfileAttributesPtrOutput) ShippingAddress4() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.ShippingAddress4 + }).(pulumi.StringPtrOutput) +} + +// The city of a customer’s shipping address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) ShippingCity() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.ShippingCity + }).(pulumi.StringPtrOutput) +} + +// The country of a customer’s shipping address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) ShippingCountry() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.ShippingCountry + }).(pulumi.StringPtrOutput) +} + +// The county of a customer’s shipping address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) ShippingCounty() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.ShippingCounty + }).(pulumi.StringPtrOutput) +} + +// The postal code of a customer’s shipping address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) ShippingPostalCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.ShippingPostalCode + }).(pulumi.StringPtrOutput) +} + +// The province of a customer’s shipping address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) ShippingProvince() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.ShippingProvince + }).(pulumi.StringPtrOutput) +} + +// The state of a customer’s shipping address. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) ShippingState() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.ShippingState + }).(pulumi.StringPtrOutput) +} + +// The state in which a customer lives. +func (o MessageTemplateCustomerProfileAttributesPtrOutput) State() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateCustomerProfileAttributes) *string { + if v == nil { + return nil + } + return v.State + }).(pulumi.StringPtrOutput) +} + +// The content of message template that applies to email channel subtype. +type MessageTemplateEmailMessageTemplateContent struct { + Body MessageTemplateEmailMessageTemplateContentBody `pulumi:"body"` + // The email headers to include in email messages. + Headers []MessageTemplateEmailMessageTemplateHeader `pulumi:"headers"` + // The subject line, or title, to use in email messages. + Subject string `pulumi:"subject"` +} + +// MessageTemplateEmailMessageTemplateContentInput is an input type that accepts MessageTemplateEmailMessageTemplateContentArgs and MessageTemplateEmailMessageTemplateContentOutput values. +// You can construct a concrete instance of `MessageTemplateEmailMessageTemplateContentInput` via: +// +// MessageTemplateEmailMessageTemplateContentArgs{...} +type MessageTemplateEmailMessageTemplateContentInput interface { + pulumi.Input + + ToMessageTemplateEmailMessageTemplateContentOutput() MessageTemplateEmailMessageTemplateContentOutput + ToMessageTemplateEmailMessageTemplateContentOutputWithContext(context.Context) MessageTemplateEmailMessageTemplateContentOutput +} + +// The content of message template that applies to email channel subtype. +type MessageTemplateEmailMessageTemplateContentArgs struct { + Body MessageTemplateEmailMessageTemplateContentBodyInput `pulumi:"body"` + // The email headers to include in email messages. + Headers MessageTemplateEmailMessageTemplateHeaderArrayInput `pulumi:"headers"` + // The subject line, or title, to use in email messages. + Subject pulumi.StringInput `pulumi:"subject"` +} + +func (MessageTemplateEmailMessageTemplateContentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateEmailMessageTemplateContent)(nil)).Elem() +} + +func (i MessageTemplateEmailMessageTemplateContentArgs) ToMessageTemplateEmailMessageTemplateContentOutput() MessageTemplateEmailMessageTemplateContentOutput { + return i.ToMessageTemplateEmailMessageTemplateContentOutputWithContext(context.Background()) +} + +func (i MessageTemplateEmailMessageTemplateContentArgs) ToMessageTemplateEmailMessageTemplateContentOutputWithContext(ctx context.Context) MessageTemplateEmailMessageTemplateContentOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateEmailMessageTemplateContentOutput) +} + +func (i MessageTemplateEmailMessageTemplateContentArgs) ToMessageTemplateEmailMessageTemplateContentPtrOutput() MessageTemplateEmailMessageTemplateContentPtrOutput { + return i.ToMessageTemplateEmailMessageTemplateContentPtrOutputWithContext(context.Background()) +} + +func (i MessageTemplateEmailMessageTemplateContentArgs) ToMessageTemplateEmailMessageTemplateContentPtrOutputWithContext(ctx context.Context) MessageTemplateEmailMessageTemplateContentPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateEmailMessageTemplateContentOutput).ToMessageTemplateEmailMessageTemplateContentPtrOutputWithContext(ctx) +} + +// MessageTemplateEmailMessageTemplateContentPtrInput is an input type that accepts MessageTemplateEmailMessageTemplateContentArgs, MessageTemplateEmailMessageTemplateContentPtr and MessageTemplateEmailMessageTemplateContentPtrOutput values. +// You can construct a concrete instance of `MessageTemplateEmailMessageTemplateContentPtrInput` via: +// +// MessageTemplateEmailMessageTemplateContentArgs{...} +// +// or: +// +// nil +type MessageTemplateEmailMessageTemplateContentPtrInput interface { + pulumi.Input + + ToMessageTemplateEmailMessageTemplateContentPtrOutput() MessageTemplateEmailMessageTemplateContentPtrOutput + ToMessageTemplateEmailMessageTemplateContentPtrOutputWithContext(context.Context) MessageTemplateEmailMessageTemplateContentPtrOutput +} + +type messageTemplateEmailMessageTemplateContentPtrType MessageTemplateEmailMessageTemplateContentArgs + +func MessageTemplateEmailMessageTemplateContentPtr(v *MessageTemplateEmailMessageTemplateContentArgs) MessageTemplateEmailMessageTemplateContentPtrInput { + return (*messageTemplateEmailMessageTemplateContentPtrType)(v) +} + +func (*messageTemplateEmailMessageTemplateContentPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateEmailMessageTemplateContent)(nil)).Elem() +} + +func (i *messageTemplateEmailMessageTemplateContentPtrType) ToMessageTemplateEmailMessageTemplateContentPtrOutput() MessageTemplateEmailMessageTemplateContentPtrOutput { + return i.ToMessageTemplateEmailMessageTemplateContentPtrOutputWithContext(context.Background()) +} + +func (i *messageTemplateEmailMessageTemplateContentPtrType) ToMessageTemplateEmailMessageTemplateContentPtrOutputWithContext(ctx context.Context) MessageTemplateEmailMessageTemplateContentPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateEmailMessageTemplateContentPtrOutput) +} + +// The content of message template that applies to email channel subtype. +type MessageTemplateEmailMessageTemplateContentOutput struct{ *pulumi.OutputState } + +func (MessageTemplateEmailMessageTemplateContentOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateEmailMessageTemplateContent)(nil)).Elem() +} + +func (o MessageTemplateEmailMessageTemplateContentOutput) ToMessageTemplateEmailMessageTemplateContentOutput() MessageTemplateEmailMessageTemplateContentOutput { + return o +} + +func (o MessageTemplateEmailMessageTemplateContentOutput) ToMessageTemplateEmailMessageTemplateContentOutputWithContext(ctx context.Context) MessageTemplateEmailMessageTemplateContentOutput { + return o +} + +func (o MessageTemplateEmailMessageTemplateContentOutput) ToMessageTemplateEmailMessageTemplateContentPtrOutput() MessageTemplateEmailMessageTemplateContentPtrOutput { + return o.ToMessageTemplateEmailMessageTemplateContentPtrOutputWithContext(context.Background()) +} + +func (o MessageTemplateEmailMessageTemplateContentOutput) ToMessageTemplateEmailMessageTemplateContentPtrOutputWithContext(ctx context.Context) MessageTemplateEmailMessageTemplateContentPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MessageTemplateEmailMessageTemplateContent) *MessageTemplateEmailMessageTemplateContent { + return &v + }).(MessageTemplateEmailMessageTemplateContentPtrOutput) +} + +func (o MessageTemplateEmailMessageTemplateContentOutput) Body() MessageTemplateEmailMessageTemplateContentBodyOutput { + return o.ApplyT(func(v MessageTemplateEmailMessageTemplateContent) MessageTemplateEmailMessageTemplateContentBody { + return v.Body + }).(MessageTemplateEmailMessageTemplateContentBodyOutput) +} + +// The email headers to include in email messages. +func (o MessageTemplateEmailMessageTemplateContentOutput) Headers() MessageTemplateEmailMessageTemplateHeaderArrayOutput { + return o.ApplyT(func(v MessageTemplateEmailMessageTemplateContent) []MessageTemplateEmailMessageTemplateHeader { + return v.Headers + }).(MessageTemplateEmailMessageTemplateHeaderArrayOutput) +} + +// The subject line, or title, to use in email messages. +func (o MessageTemplateEmailMessageTemplateContentOutput) Subject() pulumi.StringOutput { + return o.ApplyT(func(v MessageTemplateEmailMessageTemplateContent) string { return v.Subject }).(pulumi.StringOutput) +} + +type MessageTemplateEmailMessageTemplateContentPtrOutput struct{ *pulumi.OutputState } + +func (MessageTemplateEmailMessageTemplateContentPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateEmailMessageTemplateContent)(nil)).Elem() +} + +func (o MessageTemplateEmailMessageTemplateContentPtrOutput) ToMessageTemplateEmailMessageTemplateContentPtrOutput() MessageTemplateEmailMessageTemplateContentPtrOutput { + return o +} + +func (o MessageTemplateEmailMessageTemplateContentPtrOutput) ToMessageTemplateEmailMessageTemplateContentPtrOutputWithContext(ctx context.Context) MessageTemplateEmailMessageTemplateContentPtrOutput { + return o +} + +func (o MessageTemplateEmailMessageTemplateContentPtrOutput) Elem() MessageTemplateEmailMessageTemplateContentOutput { + return o.ApplyT(func(v *MessageTemplateEmailMessageTemplateContent) MessageTemplateEmailMessageTemplateContent { + if v != nil { + return *v + } + var ret MessageTemplateEmailMessageTemplateContent + return ret + }).(MessageTemplateEmailMessageTemplateContentOutput) +} + +func (o MessageTemplateEmailMessageTemplateContentPtrOutput) Body() MessageTemplateEmailMessageTemplateContentBodyPtrOutput { + return o.ApplyT(func(v *MessageTemplateEmailMessageTemplateContent) *MessageTemplateEmailMessageTemplateContentBody { + if v == nil { + return nil + } + return &v.Body + }).(MessageTemplateEmailMessageTemplateContentBodyPtrOutput) +} + +// The email headers to include in email messages. +func (o MessageTemplateEmailMessageTemplateContentPtrOutput) Headers() MessageTemplateEmailMessageTemplateHeaderArrayOutput { + return o.ApplyT(func(v *MessageTemplateEmailMessageTemplateContent) []MessageTemplateEmailMessageTemplateHeader { + if v == nil { + return nil + } + return v.Headers + }).(MessageTemplateEmailMessageTemplateHeaderArrayOutput) +} + +// The subject line, or title, to use in email messages. +func (o MessageTemplateEmailMessageTemplateContentPtrOutput) Subject() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateEmailMessageTemplateContent) *string { + if v == nil { + return nil + } + return &v.Subject + }).(pulumi.StringPtrOutput) +} + +// The body to use in email messages. +type MessageTemplateEmailMessageTemplateContentBody struct { + // The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + Html *MessageTemplateBodyContentProvider `pulumi:"html"` + // The message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + PlainText *MessageTemplateBodyContentProvider `pulumi:"plainText"` +} + +// MessageTemplateEmailMessageTemplateContentBodyInput is an input type that accepts MessageTemplateEmailMessageTemplateContentBodyArgs and MessageTemplateEmailMessageTemplateContentBodyOutput values. +// You can construct a concrete instance of `MessageTemplateEmailMessageTemplateContentBodyInput` via: +// +// MessageTemplateEmailMessageTemplateContentBodyArgs{...} +type MessageTemplateEmailMessageTemplateContentBodyInput interface { + pulumi.Input + + ToMessageTemplateEmailMessageTemplateContentBodyOutput() MessageTemplateEmailMessageTemplateContentBodyOutput + ToMessageTemplateEmailMessageTemplateContentBodyOutputWithContext(context.Context) MessageTemplateEmailMessageTemplateContentBodyOutput +} + +// The body to use in email messages. +type MessageTemplateEmailMessageTemplateContentBodyArgs struct { + // The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + Html MessageTemplateBodyContentProviderPtrInput `pulumi:"html"` + // The message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + PlainText MessageTemplateBodyContentProviderPtrInput `pulumi:"plainText"` +} + +func (MessageTemplateEmailMessageTemplateContentBodyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateEmailMessageTemplateContentBody)(nil)).Elem() +} + +func (i MessageTemplateEmailMessageTemplateContentBodyArgs) ToMessageTemplateEmailMessageTemplateContentBodyOutput() MessageTemplateEmailMessageTemplateContentBodyOutput { + return i.ToMessageTemplateEmailMessageTemplateContentBodyOutputWithContext(context.Background()) +} + +func (i MessageTemplateEmailMessageTemplateContentBodyArgs) ToMessageTemplateEmailMessageTemplateContentBodyOutputWithContext(ctx context.Context) MessageTemplateEmailMessageTemplateContentBodyOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateEmailMessageTemplateContentBodyOutput) +} + +func (i MessageTemplateEmailMessageTemplateContentBodyArgs) ToMessageTemplateEmailMessageTemplateContentBodyPtrOutput() MessageTemplateEmailMessageTemplateContentBodyPtrOutput { + return i.ToMessageTemplateEmailMessageTemplateContentBodyPtrOutputWithContext(context.Background()) +} + +func (i MessageTemplateEmailMessageTemplateContentBodyArgs) ToMessageTemplateEmailMessageTemplateContentBodyPtrOutputWithContext(ctx context.Context) MessageTemplateEmailMessageTemplateContentBodyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateEmailMessageTemplateContentBodyOutput).ToMessageTemplateEmailMessageTemplateContentBodyPtrOutputWithContext(ctx) +} + +// MessageTemplateEmailMessageTemplateContentBodyPtrInput is an input type that accepts MessageTemplateEmailMessageTemplateContentBodyArgs, MessageTemplateEmailMessageTemplateContentBodyPtr and MessageTemplateEmailMessageTemplateContentBodyPtrOutput values. +// You can construct a concrete instance of `MessageTemplateEmailMessageTemplateContentBodyPtrInput` via: +// +// MessageTemplateEmailMessageTemplateContentBodyArgs{...} +// +// or: +// +// nil +type MessageTemplateEmailMessageTemplateContentBodyPtrInput interface { + pulumi.Input + + ToMessageTemplateEmailMessageTemplateContentBodyPtrOutput() MessageTemplateEmailMessageTemplateContentBodyPtrOutput + ToMessageTemplateEmailMessageTemplateContentBodyPtrOutputWithContext(context.Context) MessageTemplateEmailMessageTemplateContentBodyPtrOutput +} + +type messageTemplateEmailMessageTemplateContentBodyPtrType MessageTemplateEmailMessageTemplateContentBodyArgs + +func MessageTemplateEmailMessageTemplateContentBodyPtr(v *MessageTemplateEmailMessageTemplateContentBodyArgs) MessageTemplateEmailMessageTemplateContentBodyPtrInput { + return (*messageTemplateEmailMessageTemplateContentBodyPtrType)(v) +} + +func (*messageTemplateEmailMessageTemplateContentBodyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateEmailMessageTemplateContentBody)(nil)).Elem() +} + +func (i *messageTemplateEmailMessageTemplateContentBodyPtrType) ToMessageTemplateEmailMessageTemplateContentBodyPtrOutput() MessageTemplateEmailMessageTemplateContentBodyPtrOutput { + return i.ToMessageTemplateEmailMessageTemplateContentBodyPtrOutputWithContext(context.Background()) +} + +func (i *messageTemplateEmailMessageTemplateContentBodyPtrType) ToMessageTemplateEmailMessageTemplateContentBodyPtrOutputWithContext(ctx context.Context) MessageTemplateEmailMessageTemplateContentBodyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateEmailMessageTemplateContentBodyPtrOutput) +} + +// The body to use in email messages. +type MessageTemplateEmailMessageTemplateContentBodyOutput struct{ *pulumi.OutputState } + +func (MessageTemplateEmailMessageTemplateContentBodyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateEmailMessageTemplateContentBody)(nil)).Elem() +} + +func (o MessageTemplateEmailMessageTemplateContentBodyOutput) ToMessageTemplateEmailMessageTemplateContentBodyOutput() MessageTemplateEmailMessageTemplateContentBodyOutput { + return o +} + +func (o MessageTemplateEmailMessageTemplateContentBodyOutput) ToMessageTemplateEmailMessageTemplateContentBodyOutputWithContext(ctx context.Context) MessageTemplateEmailMessageTemplateContentBodyOutput { + return o +} + +func (o MessageTemplateEmailMessageTemplateContentBodyOutput) ToMessageTemplateEmailMessageTemplateContentBodyPtrOutput() MessageTemplateEmailMessageTemplateContentBodyPtrOutput { + return o.ToMessageTemplateEmailMessageTemplateContentBodyPtrOutputWithContext(context.Background()) +} + +func (o MessageTemplateEmailMessageTemplateContentBodyOutput) ToMessageTemplateEmailMessageTemplateContentBodyPtrOutputWithContext(ctx context.Context) MessageTemplateEmailMessageTemplateContentBodyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MessageTemplateEmailMessageTemplateContentBody) *MessageTemplateEmailMessageTemplateContentBody { + return &v + }).(MessageTemplateEmailMessageTemplateContentBodyPtrOutput) +} + +// The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. +func (o MessageTemplateEmailMessageTemplateContentBodyOutput) Html() MessageTemplateBodyContentProviderPtrOutput { + return o.ApplyT(func(v MessageTemplateEmailMessageTemplateContentBody) *MessageTemplateBodyContentProvider { + return v.Html + }).(MessageTemplateBodyContentProviderPtrOutput) +} + +// The message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. +func (o MessageTemplateEmailMessageTemplateContentBodyOutput) PlainText() MessageTemplateBodyContentProviderPtrOutput { + return o.ApplyT(func(v MessageTemplateEmailMessageTemplateContentBody) *MessageTemplateBodyContentProvider { + return v.PlainText + }).(MessageTemplateBodyContentProviderPtrOutput) +} + +type MessageTemplateEmailMessageTemplateContentBodyPtrOutput struct{ *pulumi.OutputState } + +func (MessageTemplateEmailMessageTemplateContentBodyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateEmailMessageTemplateContentBody)(nil)).Elem() +} + +func (o MessageTemplateEmailMessageTemplateContentBodyPtrOutput) ToMessageTemplateEmailMessageTemplateContentBodyPtrOutput() MessageTemplateEmailMessageTemplateContentBodyPtrOutput { + return o +} + +func (o MessageTemplateEmailMessageTemplateContentBodyPtrOutput) ToMessageTemplateEmailMessageTemplateContentBodyPtrOutputWithContext(ctx context.Context) MessageTemplateEmailMessageTemplateContentBodyPtrOutput { + return o +} + +func (o MessageTemplateEmailMessageTemplateContentBodyPtrOutput) Elem() MessageTemplateEmailMessageTemplateContentBodyOutput { + return o.ApplyT(func(v *MessageTemplateEmailMessageTemplateContentBody) MessageTemplateEmailMessageTemplateContentBody { + if v != nil { + return *v + } + var ret MessageTemplateEmailMessageTemplateContentBody + return ret + }).(MessageTemplateEmailMessageTemplateContentBodyOutput) +} + +// The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. +func (o MessageTemplateEmailMessageTemplateContentBodyPtrOutput) Html() MessageTemplateBodyContentProviderPtrOutput { + return o.ApplyT(func(v *MessageTemplateEmailMessageTemplateContentBody) *MessageTemplateBodyContentProvider { + if v == nil { + return nil + } + return v.Html + }).(MessageTemplateBodyContentProviderPtrOutput) +} + +// The message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. +func (o MessageTemplateEmailMessageTemplateContentBodyPtrOutput) PlainText() MessageTemplateBodyContentProviderPtrOutput { + return o.ApplyT(func(v *MessageTemplateEmailMessageTemplateContentBody) *MessageTemplateBodyContentProvider { + if v == nil { + return nil + } + return v.PlainText + }).(MessageTemplateBodyContentProviderPtrOutput) +} + +// The email header to include in email messages. +type MessageTemplateEmailMessageTemplateHeader struct { + // The name of the email header. + Name *string `pulumi:"name"` + // The value of the email header. + Value *string `pulumi:"value"` +} + +// MessageTemplateEmailMessageTemplateHeaderInput is an input type that accepts MessageTemplateEmailMessageTemplateHeaderArgs and MessageTemplateEmailMessageTemplateHeaderOutput values. +// You can construct a concrete instance of `MessageTemplateEmailMessageTemplateHeaderInput` via: +// +// MessageTemplateEmailMessageTemplateHeaderArgs{...} +type MessageTemplateEmailMessageTemplateHeaderInput interface { + pulumi.Input + + ToMessageTemplateEmailMessageTemplateHeaderOutput() MessageTemplateEmailMessageTemplateHeaderOutput + ToMessageTemplateEmailMessageTemplateHeaderOutputWithContext(context.Context) MessageTemplateEmailMessageTemplateHeaderOutput +} + +// The email header to include in email messages. +type MessageTemplateEmailMessageTemplateHeaderArgs struct { + // The name of the email header. + Name pulumi.StringPtrInput `pulumi:"name"` + // The value of the email header. + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (MessageTemplateEmailMessageTemplateHeaderArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateEmailMessageTemplateHeader)(nil)).Elem() +} + +func (i MessageTemplateEmailMessageTemplateHeaderArgs) ToMessageTemplateEmailMessageTemplateHeaderOutput() MessageTemplateEmailMessageTemplateHeaderOutput { + return i.ToMessageTemplateEmailMessageTemplateHeaderOutputWithContext(context.Background()) +} + +func (i MessageTemplateEmailMessageTemplateHeaderArgs) ToMessageTemplateEmailMessageTemplateHeaderOutputWithContext(ctx context.Context) MessageTemplateEmailMessageTemplateHeaderOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateEmailMessageTemplateHeaderOutput) +} + +// MessageTemplateEmailMessageTemplateHeaderArrayInput is an input type that accepts MessageTemplateEmailMessageTemplateHeaderArray and MessageTemplateEmailMessageTemplateHeaderArrayOutput values. +// You can construct a concrete instance of `MessageTemplateEmailMessageTemplateHeaderArrayInput` via: +// +// MessageTemplateEmailMessageTemplateHeaderArray{ MessageTemplateEmailMessageTemplateHeaderArgs{...} } +type MessageTemplateEmailMessageTemplateHeaderArrayInput interface { + pulumi.Input + + ToMessageTemplateEmailMessageTemplateHeaderArrayOutput() MessageTemplateEmailMessageTemplateHeaderArrayOutput + ToMessageTemplateEmailMessageTemplateHeaderArrayOutputWithContext(context.Context) MessageTemplateEmailMessageTemplateHeaderArrayOutput +} + +type MessageTemplateEmailMessageTemplateHeaderArray []MessageTemplateEmailMessageTemplateHeaderInput + +func (MessageTemplateEmailMessageTemplateHeaderArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]MessageTemplateEmailMessageTemplateHeader)(nil)).Elem() +} + +func (i MessageTemplateEmailMessageTemplateHeaderArray) ToMessageTemplateEmailMessageTemplateHeaderArrayOutput() MessageTemplateEmailMessageTemplateHeaderArrayOutput { + return i.ToMessageTemplateEmailMessageTemplateHeaderArrayOutputWithContext(context.Background()) +} + +func (i MessageTemplateEmailMessageTemplateHeaderArray) ToMessageTemplateEmailMessageTemplateHeaderArrayOutputWithContext(ctx context.Context) MessageTemplateEmailMessageTemplateHeaderArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateEmailMessageTemplateHeaderArrayOutput) +} + +// The email header to include in email messages. +type MessageTemplateEmailMessageTemplateHeaderOutput struct{ *pulumi.OutputState } + +func (MessageTemplateEmailMessageTemplateHeaderOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateEmailMessageTemplateHeader)(nil)).Elem() +} + +func (o MessageTemplateEmailMessageTemplateHeaderOutput) ToMessageTemplateEmailMessageTemplateHeaderOutput() MessageTemplateEmailMessageTemplateHeaderOutput { + return o +} + +func (o MessageTemplateEmailMessageTemplateHeaderOutput) ToMessageTemplateEmailMessageTemplateHeaderOutputWithContext(ctx context.Context) MessageTemplateEmailMessageTemplateHeaderOutput { + return o +} + +// The name of the email header. +func (o MessageTemplateEmailMessageTemplateHeaderOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateEmailMessageTemplateHeader) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// The value of the email header. +func (o MessageTemplateEmailMessageTemplateHeaderOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateEmailMessageTemplateHeader) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type MessageTemplateEmailMessageTemplateHeaderArrayOutput struct{ *pulumi.OutputState } + +func (MessageTemplateEmailMessageTemplateHeaderArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]MessageTemplateEmailMessageTemplateHeader)(nil)).Elem() +} + +func (o MessageTemplateEmailMessageTemplateHeaderArrayOutput) ToMessageTemplateEmailMessageTemplateHeaderArrayOutput() MessageTemplateEmailMessageTemplateHeaderArrayOutput { + return o +} + +func (o MessageTemplateEmailMessageTemplateHeaderArrayOutput) ToMessageTemplateEmailMessageTemplateHeaderArrayOutputWithContext(ctx context.Context) MessageTemplateEmailMessageTemplateHeaderArrayOutput { + return o +} + +func (o MessageTemplateEmailMessageTemplateHeaderArrayOutput) Index(i pulumi.IntInput) MessageTemplateEmailMessageTemplateHeaderOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) MessageTemplateEmailMessageTemplateHeader { + return vs[0].([]MessageTemplateEmailMessageTemplateHeader)[vs[1].(int)] + }).(MessageTemplateEmailMessageTemplateHeaderOutput) +} + +// The configuration information of the user groups that the message template is accessible to. +type MessageTemplateGroupingConfiguration struct { + // The criteria used for grouping Amazon Q in Connect users. + Criteria string `pulumi:"criteria"` + // The list of values that define different groups of Amazon Q in Connect users. + Values []string `pulumi:"values"` +} + +// MessageTemplateGroupingConfigurationInput is an input type that accepts MessageTemplateGroupingConfigurationArgs and MessageTemplateGroupingConfigurationOutput values. +// You can construct a concrete instance of `MessageTemplateGroupingConfigurationInput` via: +// +// MessageTemplateGroupingConfigurationArgs{...} +type MessageTemplateGroupingConfigurationInput interface { + pulumi.Input + + ToMessageTemplateGroupingConfigurationOutput() MessageTemplateGroupingConfigurationOutput + ToMessageTemplateGroupingConfigurationOutputWithContext(context.Context) MessageTemplateGroupingConfigurationOutput +} + +// The configuration information of the user groups that the message template is accessible to. +type MessageTemplateGroupingConfigurationArgs struct { + // The criteria used for grouping Amazon Q in Connect users. + Criteria pulumi.StringInput `pulumi:"criteria"` + // The list of values that define different groups of Amazon Q in Connect users. + Values pulumi.StringArrayInput `pulumi:"values"` +} + +func (MessageTemplateGroupingConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateGroupingConfiguration)(nil)).Elem() +} + +func (i MessageTemplateGroupingConfigurationArgs) ToMessageTemplateGroupingConfigurationOutput() MessageTemplateGroupingConfigurationOutput { + return i.ToMessageTemplateGroupingConfigurationOutputWithContext(context.Background()) +} + +func (i MessageTemplateGroupingConfigurationArgs) ToMessageTemplateGroupingConfigurationOutputWithContext(ctx context.Context) MessageTemplateGroupingConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateGroupingConfigurationOutput) +} + +func (i MessageTemplateGroupingConfigurationArgs) ToMessageTemplateGroupingConfigurationPtrOutput() MessageTemplateGroupingConfigurationPtrOutput { + return i.ToMessageTemplateGroupingConfigurationPtrOutputWithContext(context.Background()) +} + +func (i MessageTemplateGroupingConfigurationArgs) ToMessageTemplateGroupingConfigurationPtrOutputWithContext(ctx context.Context) MessageTemplateGroupingConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateGroupingConfigurationOutput).ToMessageTemplateGroupingConfigurationPtrOutputWithContext(ctx) +} + +// MessageTemplateGroupingConfigurationPtrInput is an input type that accepts MessageTemplateGroupingConfigurationArgs, MessageTemplateGroupingConfigurationPtr and MessageTemplateGroupingConfigurationPtrOutput values. +// You can construct a concrete instance of `MessageTemplateGroupingConfigurationPtrInput` via: +// +// MessageTemplateGroupingConfigurationArgs{...} +// +// or: +// +// nil +type MessageTemplateGroupingConfigurationPtrInput interface { + pulumi.Input + + ToMessageTemplateGroupingConfigurationPtrOutput() MessageTemplateGroupingConfigurationPtrOutput + ToMessageTemplateGroupingConfigurationPtrOutputWithContext(context.Context) MessageTemplateGroupingConfigurationPtrOutput +} + +type messageTemplateGroupingConfigurationPtrType MessageTemplateGroupingConfigurationArgs + +func MessageTemplateGroupingConfigurationPtr(v *MessageTemplateGroupingConfigurationArgs) MessageTemplateGroupingConfigurationPtrInput { + return (*messageTemplateGroupingConfigurationPtrType)(v) +} + +func (*messageTemplateGroupingConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateGroupingConfiguration)(nil)).Elem() +} + +func (i *messageTemplateGroupingConfigurationPtrType) ToMessageTemplateGroupingConfigurationPtrOutput() MessageTemplateGroupingConfigurationPtrOutput { + return i.ToMessageTemplateGroupingConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *messageTemplateGroupingConfigurationPtrType) ToMessageTemplateGroupingConfigurationPtrOutputWithContext(ctx context.Context) MessageTemplateGroupingConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateGroupingConfigurationPtrOutput) +} + +// The configuration information of the user groups that the message template is accessible to. +type MessageTemplateGroupingConfigurationOutput struct{ *pulumi.OutputState } + +func (MessageTemplateGroupingConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateGroupingConfiguration)(nil)).Elem() +} + +func (o MessageTemplateGroupingConfigurationOutput) ToMessageTemplateGroupingConfigurationOutput() MessageTemplateGroupingConfigurationOutput { + return o +} + +func (o MessageTemplateGroupingConfigurationOutput) ToMessageTemplateGroupingConfigurationOutputWithContext(ctx context.Context) MessageTemplateGroupingConfigurationOutput { + return o +} + +func (o MessageTemplateGroupingConfigurationOutput) ToMessageTemplateGroupingConfigurationPtrOutput() MessageTemplateGroupingConfigurationPtrOutput { + return o.ToMessageTemplateGroupingConfigurationPtrOutputWithContext(context.Background()) +} + +func (o MessageTemplateGroupingConfigurationOutput) ToMessageTemplateGroupingConfigurationPtrOutputWithContext(ctx context.Context) MessageTemplateGroupingConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MessageTemplateGroupingConfiguration) *MessageTemplateGroupingConfiguration { + return &v + }).(MessageTemplateGroupingConfigurationPtrOutput) +} + +// The criteria used for grouping Amazon Q in Connect users. +func (o MessageTemplateGroupingConfigurationOutput) Criteria() pulumi.StringOutput { + return o.ApplyT(func(v MessageTemplateGroupingConfiguration) string { return v.Criteria }).(pulumi.StringOutput) +} + +// The list of values that define different groups of Amazon Q in Connect users. +func (o MessageTemplateGroupingConfigurationOutput) Values() pulumi.StringArrayOutput { + return o.ApplyT(func(v MessageTemplateGroupingConfiguration) []string { return v.Values }).(pulumi.StringArrayOutput) +} + +type MessageTemplateGroupingConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (MessageTemplateGroupingConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateGroupingConfiguration)(nil)).Elem() +} + +func (o MessageTemplateGroupingConfigurationPtrOutput) ToMessageTemplateGroupingConfigurationPtrOutput() MessageTemplateGroupingConfigurationPtrOutput { + return o +} + +func (o MessageTemplateGroupingConfigurationPtrOutput) ToMessageTemplateGroupingConfigurationPtrOutputWithContext(ctx context.Context) MessageTemplateGroupingConfigurationPtrOutput { + return o +} + +func (o MessageTemplateGroupingConfigurationPtrOutput) Elem() MessageTemplateGroupingConfigurationOutput { + return o.ApplyT(func(v *MessageTemplateGroupingConfiguration) MessageTemplateGroupingConfiguration { + if v != nil { + return *v + } + var ret MessageTemplateGroupingConfiguration + return ret + }).(MessageTemplateGroupingConfigurationOutput) +} + +// The criteria used for grouping Amazon Q in Connect users. +func (o MessageTemplateGroupingConfigurationPtrOutput) Criteria() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateGroupingConfiguration) *string { + if v == nil { + return nil + } + return &v.Criteria + }).(pulumi.StringPtrOutput) +} + +// The list of values that define different groups of Amazon Q in Connect users. +func (o MessageTemplateGroupingConfigurationPtrOutput) Values() pulumi.StringArrayOutput { + return o.ApplyT(func(v *MessageTemplateGroupingConfiguration) []string { + if v == nil { + return nil + } + return v.Values + }).(pulumi.StringArrayOutput) +} + +// The content of message template that applies to SMS channel subtype. +type MessageTemplateSmsMessageTemplateContent struct { + Body MessageTemplateSmsMessageTemplateContentBody `pulumi:"body"` +} + +// MessageTemplateSmsMessageTemplateContentInput is an input type that accepts MessageTemplateSmsMessageTemplateContentArgs and MessageTemplateSmsMessageTemplateContentOutput values. +// You can construct a concrete instance of `MessageTemplateSmsMessageTemplateContentInput` via: +// +// MessageTemplateSmsMessageTemplateContentArgs{...} +type MessageTemplateSmsMessageTemplateContentInput interface { + pulumi.Input + + ToMessageTemplateSmsMessageTemplateContentOutput() MessageTemplateSmsMessageTemplateContentOutput + ToMessageTemplateSmsMessageTemplateContentOutputWithContext(context.Context) MessageTemplateSmsMessageTemplateContentOutput +} + +// The content of message template that applies to SMS channel subtype. +type MessageTemplateSmsMessageTemplateContentArgs struct { + Body MessageTemplateSmsMessageTemplateContentBodyInput `pulumi:"body"` +} + +func (MessageTemplateSmsMessageTemplateContentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateSmsMessageTemplateContent)(nil)).Elem() +} + +func (i MessageTemplateSmsMessageTemplateContentArgs) ToMessageTemplateSmsMessageTemplateContentOutput() MessageTemplateSmsMessageTemplateContentOutput { + return i.ToMessageTemplateSmsMessageTemplateContentOutputWithContext(context.Background()) +} + +func (i MessageTemplateSmsMessageTemplateContentArgs) ToMessageTemplateSmsMessageTemplateContentOutputWithContext(ctx context.Context) MessageTemplateSmsMessageTemplateContentOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateSmsMessageTemplateContentOutput) +} + +func (i MessageTemplateSmsMessageTemplateContentArgs) ToMessageTemplateSmsMessageTemplateContentPtrOutput() MessageTemplateSmsMessageTemplateContentPtrOutput { + return i.ToMessageTemplateSmsMessageTemplateContentPtrOutputWithContext(context.Background()) +} + +func (i MessageTemplateSmsMessageTemplateContentArgs) ToMessageTemplateSmsMessageTemplateContentPtrOutputWithContext(ctx context.Context) MessageTemplateSmsMessageTemplateContentPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateSmsMessageTemplateContentOutput).ToMessageTemplateSmsMessageTemplateContentPtrOutputWithContext(ctx) +} + +// MessageTemplateSmsMessageTemplateContentPtrInput is an input type that accepts MessageTemplateSmsMessageTemplateContentArgs, MessageTemplateSmsMessageTemplateContentPtr and MessageTemplateSmsMessageTemplateContentPtrOutput values. +// You can construct a concrete instance of `MessageTemplateSmsMessageTemplateContentPtrInput` via: +// +// MessageTemplateSmsMessageTemplateContentArgs{...} +// +// or: +// +// nil +type MessageTemplateSmsMessageTemplateContentPtrInput interface { + pulumi.Input + + ToMessageTemplateSmsMessageTemplateContentPtrOutput() MessageTemplateSmsMessageTemplateContentPtrOutput + ToMessageTemplateSmsMessageTemplateContentPtrOutputWithContext(context.Context) MessageTemplateSmsMessageTemplateContentPtrOutput +} + +type messageTemplateSmsMessageTemplateContentPtrType MessageTemplateSmsMessageTemplateContentArgs + +func MessageTemplateSmsMessageTemplateContentPtr(v *MessageTemplateSmsMessageTemplateContentArgs) MessageTemplateSmsMessageTemplateContentPtrInput { + return (*messageTemplateSmsMessageTemplateContentPtrType)(v) +} + +func (*messageTemplateSmsMessageTemplateContentPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateSmsMessageTemplateContent)(nil)).Elem() +} + +func (i *messageTemplateSmsMessageTemplateContentPtrType) ToMessageTemplateSmsMessageTemplateContentPtrOutput() MessageTemplateSmsMessageTemplateContentPtrOutput { + return i.ToMessageTemplateSmsMessageTemplateContentPtrOutputWithContext(context.Background()) +} + +func (i *messageTemplateSmsMessageTemplateContentPtrType) ToMessageTemplateSmsMessageTemplateContentPtrOutputWithContext(ctx context.Context) MessageTemplateSmsMessageTemplateContentPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateSmsMessageTemplateContentPtrOutput) +} + +// The content of message template that applies to SMS channel subtype. +type MessageTemplateSmsMessageTemplateContentOutput struct{ *pulumi.OutputState } + +func (MessageTemplateSmsMessageTemplateContentOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateSmsMessageTemplateContent)(nil)).Elem() +} + +func (o MessageTemplateSmsMessageTemplateContentOutput) ToMessageTemplateSmsMessageTemplateContentOutput() MessageTemplateSmsMessageTemplateContentOutput { + return o +} + +func (o MessageTemplateSmsMessageTemplateContentOutput) ToMessageTemplateSmsMessageTemplateContentOutputWithContext(ctx context.Context) MessageTemplateSmsMessageTemplateContentOutput { + return o +} + +func (o MessageTemplateSmsMessageTemplateContentOutput) ToMessageTemplateSmsMessageTemplateContentPtrOutput() MessageTemplateSmsMessageTemplateContentPtrOutput { + return o.ToMessageTemplateSmsMessageTemplateContentPtrOutputWithContext(context.Background()) +} + +func (o MessageTemplateSmsMessageTemplateContentOutput) ToMessageTemplateSmsMessageTemplateContentPtrOutputWithContext(ctx context.Context) MessageTemplateSmsMessageTemplateContentPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MessageTemplateSmsMessageTemplateContent) *MessageTemplateSmsMessageTemplateContent { + return &v + }).(MessageTemplateSmsMessageTemplateContentPtrOutput) +} + +func (o MessageTemplateSmsMessageTemplateContentOutput) Body() MessageTemplateSmsMessageTemplateContentBodyOutput { + return o.ApplyT(func(v MessageTemplateSmsMessageTemplateContent) MessageTemplateSmsMessageTemplateContentBody { + return v.Body + }).(MessageTemplateSmsMessageTemplateContentBodyOutput) +} + +type MessageTemplateSmsMessageTemplateContentPtrOutput struct{ *pulumi.OutputState } + +func (MessageTemplateSmsMessageTemplateContentPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateSmsMessageTemplateContent)(nil)).Elem() +} + +func (o MessageTemplateSmsMessageTemplateContentPtrOutput) ToMessageTemplateSmsMessageTemplateContentPtrOutput() MessageTemplateSmsMessageTemplateContentPtrOutput { + return o +} + +func (o MessageTemplateSmsMessageTemplateContentPtrOutput) ToMessageTemplateSmsMessageTemplateContentPtrOutputWithContext(ctx context.Context) MessageTemplateSmsMessageTemplateContentPtrOutput { + return o +} + +func (o MessageTemplateSmsMessageTemplateContentPtrOutput) Elem() MessageTemplateSmsMessageTemplateContentOutput { + return o.ApplyT(func(v *MessageTemplateSmsMessageTemplateContent) MessageTemplateSmsMessageTemplateContent { + if v != nil { + return *v + } + var ret MessageTemplateSmsMessageTemplateContent + return ret + }).(MessageTemplateSmsMessageTemplateContentOutput) +} + +func (o MessageTemplateSmsMessageTemplateContentPtrOutput) Body() MessageTemplateSmsMessageTemplateContentBodyPtrOutput { + return o.ApplyT(func(v *MessageTemplateSmsMessageTemplateContent) *MessageTemplateSmsMessageTemplateContentBody { + if v == nil { + return nil + } + return &v.Body + }).(MessageTemplateSmsMessageTemplateContentBodyPtrOutput) +} + +// The body to use in SMS messages. +type MessageTemplateSmsMessageTemplateContentBody struct { + PlainText *MessageTemplateBodyContentProvider `pulumi:"plainText"` +} + +// MessageTemplateSmsMessageTemplateContentBodyInput is an input type that accepts MessageTemplateSmsMessageTemplateContentBodyArgs and MessageTemplateSmsMessageTemplateContentBodyOutput values. +// You can construct a concrete instance of `MessageTemplateSmsMessageTemplateContentBodyInput` via: +// +// MessageTemplateSmsMessageTemplateContentBodyArgs{...} +type MessageTemplateSmsMessageTemplateContentBodyInput interface { + pulumi.Input + + ToMessageTemplateSmsMessageTemplateContentBodyOutput() MessageTemplateSmsMessageTemplateContentBodyOutput + ToMessageTemplateSmsMessageTemplateContentBodyOutputWithContext(context.Context) MessageTemplateSmsMessageTemplateContentBodyOutput +} + +// The body to use in SMS messages. +type MessageTemplateSmsMessageTemplateContentBodyArgs struct { + PlainText MessageTemplateBodyContentProviderPtrInput `pulumi:"plainText"` +} + +func (MessageTemplateSmsMessageTemplateContentBodyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateSmsMessageTemplateContentBody)(nil)).Elem() +} + +func (i MessageTemplateSmsMessageTemplateContentBodyArgs) ToMessageTemplateSmsMessageTemplateContentBodyOutput() MessageTemplateSmsMessageTemplateContentBodyOutput { + return i.ToMessageTemplateSmsMessageTemplateContentBodyOutputWithContext(context.Background()) +} + +func (i MessageTemplateSmsMessageTemplateContentBodyArgs) ToMessageTemplateSmsMessageTemplateContentBodyOutputWithContext(ctx context.Context) MessageTemplateSmsMessageTemplateContentBodyOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateSmsMessageTemplateContentBodyOutput) +} + +func (i MessageTemplateSmsMessageTemplateContentBodyArgs) ToMessageTemplateSmsMessageTemplateContentBodyPtrOutput() MessageTemplateSmsMessageTemplateContentBodyPtrOutput { + return i.ToMessageTemplateSmsMessageTemplateContentBodyPtrOutputWithContext(context.Background()) +} + +func (i MessageTemplateSmsMessageTemplateContentBodyArgs) ToMessageTemplateSmsMessageTemplateContentBodyPtrOutputWithContext(ctx context.Context) MessageTemplateSmsMessageTemplateContentBodyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateSmsMessageTemplateContentBodyOutput).ToMessageTemplateSmsMessageTemplateContentBodyPtrOutputWithContext(ctx) +} + +// MessageTemplateSmsMessageTemplateContentBodyPtrInput is an input type that accepts MessageTemplateSmsMessageTemplateContentBodyArgs, MessageTemplateSmsMessageTemplateContentBodyPtr and MessageTemplateSmsMessageTemplateContentBodyPtrOutput values. +// You can construct a concrete instance of `MessageTemplateSmsMessageTemplateContentBodyPtrInput` via: +// +// MessageTemplateSmsMessageTemplateContentBodyArgs{...} +// +// or: +// +// nil +type MessageTemplateSmsMessageTemplateContentBodyPtrInput interface { + pulumi.Input + + ToMessageTemplateSmsMessageTemplateContentBodyPtrOutput() MessageTemplateSmsMessageTemplateContentBodyPtrOutput + ToMessageTemplateSmsMessageTemplateContentBodyPtrOutputWithContext(context.Context) MessageTemplateSmsMessageTemplateContentBodyPtrOutput +} + +type messageTemplateSmsMessageTemplateContentBodyPtrType MessageTemplateSmsMessageTemplateContentBodyArgs + +func MessageTemplateSmsMessageTemplateContentBodyPtr(v *MessageTemplateSmsMessageTemplateContentBodyArgs) MessageTemplateSmsMessageTemplateContentBodyPtrInput { + return (*messageTemplateSmsMessageTemplateContentBodyPtrType)(v) +} + +func (*messageTemplateSmsMessageTemplateContentBodyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateSmsMessageTemplateContentBody)(nil)).Elem() +} + +func (i *messageTemplateSmsMessageTemplateContentBodyPtrType) ToMessageTemplateSmsMessageTemplateContentBodyPtrOutput() MessageTemplateSmsMessageTemplateContentBodyPtrOutput { + return i.ToMessageTemplateSmsMessageTemplateContentBodyPtrOutputWithContext(context.Background()) +} + +func (i *messageTemplateSmsMessageTemplateContentBodyPtrType) ToMessageTemplateSmsMessageTemplateContentBodyPtrOutputWithContext(ctx context.Context) MessageTemplateSmsMessageTemplateContentBodyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateSmsMessageTemplateContentBodyPtrOutput) +} + +// The body to use in SMS messages. +type MessageTemplateSmsMessageTemplateContentBodyOutput struct{ *pulumi.OutputState } + +func (MessageTemplateSmsMessageTemplateContentBodyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateSmsMessageTemplateContentBody)(nil)).Elem() +} + +func (o MessageTemplateSmsMessageTemplateContentBodyOutput) ToMessageTemplateSmsMessageTemplateContentBodyOutput() MessageTemplateSmsMessageTemplateContentBodyOutput { + return o +} + +func (o MessageTemplateSmsMessageTemplateContentBodyOutput) ToMessageTemplateSmsMessageTemplateContentBodyOutputWithContext(ctx context.Context) MessageTemplateSmsMessageTemplateContentBodyOutput { + return o +} + +func (o MessageTemplateSmsMessageTemplateContentBodyOutput) ToMessageTemplateSmsMessageTemplateContentBodyPtrOutput() MessageTemplateSmsMessageTemplateContentBodyPtrOutput { + return o.ToMessageTemplateSmsMessageTemplateContentBodyPtrOutputWithContext(context.Background()) +} + +func (o MessageTemplateSmsMessageTemplateContentBodyOutput) ToMessageTemplateSmsMessageTemplateContentBodyPtrOutputWithContext(ctx context.Context) MessageTemplateSmsMessageTemplateContentBodyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MessageTemplateSmsMessageTemplateContentBody) *MessageTemplateSmsMessageTemplateContentBody { + return &v + }).(MessageTemplateSmsMessageTemplateContentBodyPtrOutput) +} + +func (o MessageTemplateSmsMessageTemplateContentBodyOutput) PlainText() MessageTemplateBodyContentProviderPtrOutput { + return o.ApplyT(func(v MessageTemplateSmsMessageTemplateContentBody) *MessageTemplateBodyContentProvider { + return v.PlainText + }).(MessageTemplateBodyContentProviderPtrOutput) +} + +type MessageTemplateSmsMessageTemplateContentBodyPtrOutput struct{ *pulumi.OutputState } + +func (MessageTemplateSmsMessageTemplateContentBodyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateSmsMessageTemplateContentBody)(nil)).Elem() +} + +func (o MessageTemplateSmsMessageTemplateContentBodyPtrOutput) ToMessageTemplateSmsMessageTemplateContentBodyPtrOutput() MessageTemplateSmsMessageTemplateContentBodyPtrOutput { + return o +} + +func (o MessageTemplateSmsMessageTemplateContentBodyPtrOutput) ToMessageTemplateSmsMessageTemplateContentBodyPtrOutputWithContext(ctx context.Context) MessageTemplateSmsMessageTemplateContentBodyPtrOutput { + return o +} + +func (o MessageTemplateSmsMessageTemplateContentBodyPtrOutput) Elem() MessageTemplateSmsMessageTemplateContentBodyOutput { + return o.ApplyT(func(v *MessageTemplateSmsMessageTemplateContentBody) MessageTemplateSmsMessageTemplateContentBody { + if v != nil { + return *v + } + var ret MessageTemplateSmsMessageTemplateContentBody + return ret + }).(MessageTemplateSmsMessageTemplateContentBodyOutput) +} + +func (o MessageTemplateSmsMessageTemplateContentBodyPtrOutput) PlainText() MessageTemplateBodyContentProviderPtrOutput { + return o.ApplyT(func(v *MessageTemplateSmsMessageTemplateContentBody) *MessageTemplateBodyContentProvider { + if v == nil { + return nil + } + return v.PlainText + }).(MessageTemplateBodyContentProviderPtrOutput) +} + +// The system attributes that are used with the message template. +type MessageTemplateSystemAttributes struct { + // The CustomerEndpoint attribute. + CustomerEndpoint *MessageTemplateSystemEndpointAttributes `pulumi:"customerEndpoint"` + // The name of the task. + Name *string `pulumi:"name"` + // The SystemEndpoint attribute. + SystemEndpoint *MessageTemplateSystemEndpointAttributes `pulumi:"systemEndpoint"` +} + +// MessageTemplateSystemAttributesInput is an input type that accepts MessageTemplateSystemAttributesArgs and MessageTemplateSystemAttributesOutput values. +// You can construct a concrete instance of `MessageTemplateSystemAttributesInput` via: +// +// MessageTemplateSystemAttributesArgs{...} +type MessageTemplateSystemAttributesInput interface { + pulumi.Input + + ToMessageTemplateSystemAttributesOutput() MessageTemplateSystemAttributesOutput + ToMessageTemplateSystemAttributesOutputWithContext(context.Context) MessageTemplateSystemAttributesOutput +} + +// The system attributes that are used with the message template. +type MessageTemplateSystemAttributesArgs struct { + // The CustomerEndpoint attribute. + CustomerEndpoint MessageTemplateSystemEndpointAttributesPtrInput `pulumi:"customerEndpoint"` + // The name of the task. + Name pulumi.StringPtrInput `pulumi:"name"` + // The SystemEndpoint attribute. + SystemEndpoint MessageTemplateSystemEndpointAttributesPtrInput `pulumi:"systemEndpoint"` +} + +func (MessageTemplateSystemAttributesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateSystemAttributes)(nil)).Elem() +} + +func (i MessageTemplateSystemAttributesArgs) ToMessageTemplateSystemAttributesOutput() MessageTemplateSystemAttributesOutput { + return i.ToMessageTemplateSystemAttributesOutputWithContext(context.Background()) +} + +func (i MessageTemplateSystemAttributesArgs) ToMessageTemplateSystemAttributesOutputWithContext(ctx context.Context) MessageTemplateSystemAttributesOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateSystemAttributesOutput) +} + +func (i MessageTemplateSystemAttributesArgs) ToMessageTemplateSystemAttributesPtrOutput() MessageTemplateSystemAttributesPtrOutput { + return i.ToMessageTemplateSystemAttributesPtrOutputWithContext(context.Background()) +} + +func (i MessageTemplateSystemAttributesArgs) ToMessageTemplateSystemAttributesPtrOutputWithContext(ctx context.Context) MessageTemplateSystemAttributesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateSystemAttributesOutput).ToMessageTemplateSystemAttributesPtrOutputWithContext(ctx) +} + +// MessageTemplateSystemAttributesPtrInput is an input type that accepts MessageTemplateSystemAttributesArgs, MessageTemplateSystemAttributesPtr and MessageTemplateSystemAttributesPtrOutput values. +// You can construct a concrete instance of `MessageTemplateSystemAttributesPtrInput` via: +// +// MessageTemplateSystemAttributesArgs{...} +// +// or: +// +// nil +type MessageTemplateSystemAttributesPtrInput interface { + pulumi.Input + + ToMessageTemplateSystemAttributesPtrOutput() MessageTemplateSystemAttributesPtrOutput + ToMessageTemplateSystemAttributesPtrOutputWithContext(context.Context) MessageTemplateSystemAttributesPtrOutput +} + +type messageTemplateSystemAttributesPtrType MessageTemplateSystemAttributesArgs + +func MessageTemplateSystemAttributesPtr(v *MessageTemplateSystemAttributesArgs) MessageTemplateSystemAttributesPtrInput { + return (*messageTemplateSystemAttributesPtrType)(v) +} + +func (*messageTemplateSystemAttributesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateSystemAttributes)(nil)).Elem() +} + +func (i *messageTemplateSystemAttributesPtrType) ToMessageTemplateSystemAttributesPtrOutput() MessageTemplateSystemAttributesPtrOutput { + return i.ToMessageTemplateSystemAttributesPtrOutputWithContext(context.Background()) +} + +func (i *messageTemplateSystemAttributesPtrType) ToMessageTemplateSystemAttributesPtrOutputWithContext(ctx context.Context) MessageTemplateSystemAttributesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateSystemAttributesPtrOutput) +} + +// The system attributes that are used with the message template. +type MessageTemplateSystemAttributesOutput struct{ *pulumi.OutputState } + +func (MessageTemplateSystemAttributesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateSystemAttributes)(nil)).Elem() +} + +func (o MessageTemplateSystemAttributesOutput) ToMessageTemplateSystemAttributesOutput() MessageTemplateSystemAttributesOutput { + return o +} + +func (o MessageTemplateSystemAttributesOutput) ToMessageTemplateSystemAttributesOutputWithContext(ctx context.Context) MessageTemplateSystemAttributesOutput { + return o +} + +func (o MessageTemplateSystemAttributesOutput) ToMessageTemplateSystemAttributesPtrOutput() MessageTemplateSystemAttributesPtrOutput { + return o.ToMessageTemplateSystemAttributesPtrOutputWithContext(context.Background()) +} + +func (o MessageTemplateSystemAttributesOutput) ToMessageTemplateSystemAttributesPtrOutputWithContext(ctx context.Context) MessageTemplateSystemAttributesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MessageTemplateSystemAttributes) *MessageTemplateSystemAttributes { + return &v + }).(MessageTemplateSystemAttributesPtrOutput) +} + +// The CustomerEndpoint attribute. +func (o MessageTemplateSystemAttributesOutput) CustomerEndpoint() MessageTemplateSystemEndpointAttributesPtrOutput { + return o.ApplyT(func(v MessageTemplateSystemAttributes) *MessageTemplateSystemEndpointAttributes { + return v.CustomerEndpoint + }).(MessageTemplateSystemEndpointAttributesPtrOutput) +} + +// The name of the task. +func (o MessageTemplateSystemAttributesOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateSystemAttributes) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// The SystemEndpoint attribute. +func (o MessageTemplateSystemAttributesOutput) SystemEndpoint() MessageTemplateSystemEndpointAttributesPtrOutput { + return o.ApplyT(func(v MessageTemplateSystemAttributes) *MessageTemplateSystemEndpointAttributes { + return v.SystemEndpoint + }).(MessageTemplateSystemEndpointAttributesPtrOutput) +} + +type MessageTemplateSystemAttributesPtrOutput struct{ *pulumi.OutputState } + +func (MessageTemplateSystemAttributesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateSystemAttributes)(nil)).Elem() +} + +func (o MessageTemplateSystemAttributesPtrOutput) ToMessageTemplateSystemAttributesPtrOutput() MessageTemplateSystemAttributesPtrOutput { + return o +} + +func (o MessageTemplateSystemAttributesPtrOutput) ToMessageTemplateSystemAttributesPtrOutputWithContext(ctx context.Context) MessageTemplateSystemAttributesPtrOutput { + return o +} + +func (o MessageTemplateSystemAttributesPtrOutput) Elem() MessageTemplateSystemAttributesOutput { + return o.ApplyT(func(v *MessageTemplateSystemAttributes) MessageTemplateSystemAttributes { + if v != nil { + return *v + } + var ret MessageTemplateSystemAttributes + return ret + }).(MessageTemplateSystemAttributesOutput) +} + +// The CustomerEndpoint attribute. +func (o MessageTemplateSystemAttributesPtrOutput) CustomerEndpoint() MessageTemplateSystemEndpointAttributesPtrOutput { + return o.ApplyT(func(v *MessageTemplateSystemAttributes) *MessageTemplateSystemEndpointAttributes { + if v == nil { + return nil + } + return v.CustomerEndpoint + }).(MessageTemplateSystemEndpointAttributesPtrOutput) +} + +// The name of the task. +func (o MessageTemplateSystemAttributesPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateSystemAttributes) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +// The SystemEndpoint attribute. +func (o MessageTemplateSystemAttributesPtrOutput) SystemEndpoint() MessageTemplateSystemEndpointAttributesPtrOutput { + return o.ApplyT(func(v *MessageTemplateSystemAttributes) *MessageTemplateSystemEndpointAttributes { + if v == nil { + return nil + } + return v.SystemEndpoint + }).(MessageTemplateSystemEndpointAttributesPtrOutput) +} + +// The system endpoint attributes that are used with the message template. +type MessageTemplateSystemEndpointAttributes struct { + // The customer's phone number if used with customerEndpoint, or the number the customer dialed to call your contact center if used with systemEndpoint. + Address *string `pulumi:"address"` +} + +// MessageTemplateSystemEndpointAttributesInput is an input type that accepts MessageTemplateSystemEndpointAttributesArgs and MessageTemplateSystemEndpointAttributesOutput values. +// You can construct a concrete instance of `MessageTemplateSystemEndpointAttributesInput` via: +// +// MessageTemplateSystemEndpointAttributesArgs{...} +type MessageTemplateSystemEndpointAttributesInput interface { + pulumi.Input + + ToMessageTemplateSystemEndpointAttributesOutput() MessageTemplateSystemEndpointAttributesOutput + ToMessageTemplateSystemEndpointAttributesOutputWithContext(context.Context) MessageTemplateSystemEndpointAttributesOutput +} + +// The system endpoint attributes that are used with the message template. +type MessageTemplateSystemEndpointAttributesArgs struct { + // The customer's phone number if used with customerEndpoint, or the number the customer dialed to call your contact center if used with systemEndpoint. + Address pulumi.StringPtrInput `pulumi:"address"` +} + +func (MessageTemplateSystemEndpointAttributesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateSystemEndpointAttributes)(nil)).Elem() +} + +func (i MessageTemplateSystemEndpointAttributesArgs) ToMessageTemplateSystemEndpointAttributesOutput() MessageTemplateSystemEndpointAttributesOutput { + return i.ToMessageTemplateSystemEndpointAttributesOutputWithContext(context.Background()) +} + +func (i MessageTemplateSystemEndpointAttributesArgs) ToMessageTemplateSystemEndpointAttributesOutputWithContext(ctx context.Context) MessageTemplateSystemEndpointAttributesOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateSystemEndpointAttributesOutput) +} + +func (i MessageTemplateSystemEndpointAttributesArgs) ToMessageTemplateSystemEndpointAttributesPtrOutput() MessageTemplateSystemEndpointAttributesPtrOutput { + return i.ToMessageTemplateSystemEndpointAttributesPtrOutputWithContext(context.Background()) +} + +func (i MessageTemplateSystemEndpointAttributesArgs) ToMessageTemplateSystemEndpointAttributesPtrOutputWithContext(ctx context.Context) MessageTemplateSystemEndpointAttributesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateSystemEndpointAttributesOutput).ToMessageTemplateSystemEndpointAttributesPtrOutputWithContext(ctx) +} + +// MessageTemplateSystemEndpointAttributesPtrInput is an input type that accepts MessageTemplateSystemEndpointAttributesArgs, MessageTemplateSystemEndpointAttributesPtr and MessageTemplateSystemEndpointAttributesPtrOutput values. +// You can construct a concrete instance of `MessageTemplateSystemEndpointAttributesPtrInput` via: +// +// MessageTemplateSystemEndpointAttributesArgs{...} +// +// or: +// +// nil +type MessageTemplateSystemEndpointAttributesPtrInput interface { + pulumi.Input + + ToMessageTemplateSystemEndpointAttributesPtrOutput() MessageTemplateSystemEndpointAttributesPtrOutput + ToMessageTemplateSystemEndpointAttributesPtrOutputWithContext(context.Context) MessageTemplateSystemEndpointAttributesPtrOutput +} + +type messageTemplateSystemEndpointAttributesPtrType MessageTemplateSystemEndpointAttributesArgs + +func MessageTemplateSystemEndpointAttributesPtr(v *MessageTemplateSystemEndpointAttributesArgs) MessageTemplateSystemEndpointAttributesPtrInput { + return (*messageTemplateSystemEndpointAttributesPtrType)(v) +} + +func (*messageTemplateSystemEndpointAttributesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateSystemEndpointAttributes)(nil)).Elem() +} + +func (i *messageTemplateSystemEndpointAttributesPtrType) ToMessageTemplateSystemEndpointAttributesPtrOutput() MessageTemplateSystemEndpointAttributesPtrOutput { + return i.ToMessageTemplateSystemEndpointAttributesPtrOutputWithContext(context.Background()) +} + +func (i *messageTemplateSystemEndpointAttributesPtrType) ToMessageTemplateSystemEndpointAttributesPtrOutputWithContext(ctx context.Context) MessageTemplateSystemEndpointAttributesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MessageTemplateSystemEndpointAttributesPtrOutput) +} + +// The system endpoint attributes that are used with the message template. +type MessageTemplateSystemEndpointAttributesOutput struct{ *pulumi.OutputState } + +func (MessageTemplateSystemEndpointAttributesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MessageTemplateSystemEndpointAttributes)(nil)).Elem() +} + +func (o MessageTemplateSystemEndpointAttributesOutput) ToMessageTemplateSystemEndpointAttributesOutput() MessageTemplateSystemEndpointAttributesOutput { + return o +} + +func (o MessageTemplateSystemEndpointAttributesOutput) ToMessageTemplateSystemEndpointAttributesOutputWithContext(ctx context.Context) MessageTemplateSystemEndpointAttributesOutput { + return o +} + +func (o MessageTemplateSystemEndpointAttributesOutput) ToMessageTemplateSystemEndpointAttributesPtrOutput() MessageTemplateSystemEndpointAttributesPtrOutput { + return o.ToMessageTemplateSystemEndpointAttributesPtrOutputWithContext(context.Background()) +} + +func (o MessageTemplateSystemEndpointAttributesOutput) ToMessageTemplateSystemEndpointAttributesPtrOutputWithContext(ctx context.Context) MessageTemplateSystemEndpointAttributesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MessageTemplateSystemEndpointAttributes) *MessageTemplateSystemEndpointAttributes { + return &v + }).(MessageTemplateSystemEndpointAttributesPtrOutput) +} + +// The customer's phone number if used with customerEndpoint, or the number the customer dialed to call your contact center if used with systemEndpoint. +func (o MessageTemplateSystemEndpointAttributesOutput) Address() pulumi.StringPtrOutput { + return o.ApplyT(func(v MessageTemplateSystemEndpointAttributes) *string { return v.Address }).(pulumi.StringPtrOutput) +} + +type MessageTemplateSystemEndpointAttributesPtrOutput struct{ *pulumi.OutputState } + +func (MessageTemplateSystemEndpointAttributesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MessageTemplateSystemEndpointAttributes)(nil)).Elem() +} + +func (o MessageTemplateSystemEndpointAttributesPtrOutput) ToMessageTemplateSystemEndpointAttributesPtrOutput() MessageTemplateSystemEndpointAttributesPtrOutput { + return o +} + +func (o MessageTemplateSystemEndpointAttributesPtrOutput) ToMessageTemplateSystemEndpointAttributesPtrOutputWithContext(ctx context.Context) MessageTemplateSystemEndpointAttributesPtrOutput { + return o +} + +func (o MessageTemplateSystemEndpointAttributesPtrOutput) Elem() MessageTemplateSystemEndpointAttributesOutput { + return o.ApplyT(func(v *MessageTemplateSystemEndpointAttributes) MessageTemplateSystemEndpointAttributes { + if v != nil { + return *v + } + var ret MessageTemplateSystemEndpointAttributes + return ret + }).(MessageTemplateSystemEndpointAttributesOutput) +} + +// The customer's phone number if used with customerEndpoint, or the number the customer dialed to call your contact center if used with systemEndpoint. +func (o MessageTemplateSystemEndpointAttributesPtrOutput) Address() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MessageTemplateSystemEndpointAttributes) *string { + if v == nil { + return nil + } + return v.Address + }).(pulumi.StringPtrOutput) +} + +// A key-value pair to associate with a resource. +type MessageTemplateTag struct { + // The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and - + Key string `pulumi:"key"` + // The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and - + Value string `pulumi:"value"` +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*AiAgentAiAgentConfiguration0PropertiesInput)(nil)).Elem(), AiAgentAiAgentConfiguration0PropertiesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AiAgentAiAgentConfiguration1PropertiesInput)(nil)).Elem(), AiAgentAiAgentConfiguration1PropertiesArgs{}) @@ -2491,6 +5507,31 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBaseServerSideEncryptionConfigurationPtrInput)(nil)).Elem(), KnowledgeBaseServerSideEncryptionConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBaseSourceConfigurationInput)(nil)).Elem(), KnowledgeBaseSourceConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*KnowledgeBaseSourceConfigurationPtrInput)(nil)).Elem(), KnowledgeBaseSourceConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateAgentAttributesInput)(nil)).Elem(), MessageTemplateAgentAttributesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateAgentAttributesPtrInput)(nil)).Elem(), MessageTemplateAgentAttributesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateAttributesInput)(nil)).Elem(), MessageTemplateAttributesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateAttributesPtrInput)(nil)).Elem(), MessageTemplateAttributesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateBodyContentProviderInput)(nil)).Elem(), MessageTemplateBodyContentProviderArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateBodyContentProviderPtrInput)(nil)).Elem(), MessageTemplateBodyContentProviderArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateContentInput)(nil)).Elem(), MessageTemplateContentArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateCustomerProfileAttributesInput)(nil)).Elem(), MessageTemplateCustomerProfileAttributesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateCustomerProfileAttributesPtrInput)(nil)).Elem(), MessageTemplateCustomerProfileAttributesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateEmailMessageTemplateContentInput)(nil)).Elem(), MessageTemplateEmailMessageTemplateContentArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateEmailMessageTemplateContentPtrInput)(nil)).Elem(), MessageTemplateEmailMessageTemplateContentArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateEmailMessageTemplateContentBodyInput)(nil)).Elem(), MessageTemplateEmailMessageTemplateContentBodyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateEmailMessageTemplateContentBodyPtrInput)(nil)).Elem(), MessageTemplateEmailMessageTemplateContentBodyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateEmailMessageTemplateHeaderInput)(nil)).Elem(), MessageTemplateEmailMessageTemplateHeaderArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateEmailMessageTemplateHeaderArrayInput)(nil)).Elem(), MessageTemplateEmailMessageTemplateHeaderArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateGroupingConfigurationInput)(nil)).Elem(), MessageTemplateGroupingConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateGroupingConfigurationPtrInput)(nil)).Elem(), MessageTemplateGroupingConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateSmsMessageTemplateContentInput)(nil)).Elem(), MessageTemplateSmsMessageTemplateContentArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateSmsMessageTemplateContentPtrInput)(nil)).Elem(), MessageTemplateSmsMessageTemplateContentArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateSmsMessageTemplateContentBodyInput)(nil)).Elem(), MessageTemplateSmsMessageTemplateContentBodyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateSmsMessageTemplateContentBodyPtrInput)(nil)).Elem(), MessageTemplateSmsMessageTemplateContentBodyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateSystemAttributesInput)(nil)).Elem(), MessageTemplateSystemAttributesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateSystemAttributesPtrInput)(nil)).Elem(), MessageTemplateSystemAttributesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateSystemEndpointAttributesInput)(nil)).Elem(), MessageTemplateSystemEndpointAttributesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MessageTemplateSystemEndpointAttributesPtrInput)(nil)).Elem(), MessageTemplateSystemEndpointAttributesArgs{}) pulumi.RegisterOutputType(AiAgentAiAgentConfiguration0PropertiesOutput{}) pulumi.RegisterOutputType(AiAgentAiAgentConfiguration0PropertiesPtrOutput{}) pulumi.RegisterOutputType(AiAgentAiAgentConfiguration1PropertiesOutput{}) @@ -2529,4 +5570,30 @@ func init() { pulumi.RegisterOutputType(KnowledgeBaseServerSideEncryptionConfigurationPtrOutput{}) pulumi.RegisterOutputType(KnowledgeBaseSourceConfigurationOutput{}) pulumi.RegisterOutputType(KnowledgeBaseSourceConfigurationPtrOutput{}) + pulumi.RegisterOutputType(MessageTemplateAgentAttributesOutput{}) + pulumi.RegisterOutputType(MessageTemplateAgentAttributesPtrOutput{}) + pulumi.RegisterOutputType(MessageTemplateAttributesOutput{}) + pulumi.RegisterOutputType(MessageTemplateAttributesPtrOutput{}) + pulumi.RegisterOutputType(MessageTemplateBodyContentProviderOutput{}) + pulumi.RegisterOutputType(MessageTemplateBodyContentProviderPtrOutput{}) + pulumi.RegisterOutputType(MessageTemplateContentOutput{}) + pulumi.RegisterOutputType(MessageTemplateContentPtrOutput{}) + pulumi.RegisterOutputType(MessageTemplateCustomerProfileAttributesOutput{}) + pulumi.RegisterOutputType(MessageTemplateCustomerProfileAttributesPtrOutput{}) + pulumi.RegisterOutputType(MessageTemplateEmailMessageTemplateContentOutput{}) + pulumi.RegisterOutputType(MessageTemplateEmailMessageTemplateContentPtrOutput{}) + pulumi.RegisterOutputType(MessageTemplateEmailMessageTemplateContentBodyOutput{}) + pulumi.RegisterOutputType(MessageTemplateEmailMessageTemplateContentBodyPtrOutput{}) + pulumi.RegisterOutputType(MessageTemplateEmailMessageTemplateHeaderOutput{}) + pulumi.RegisterOutputType(MessageTemplateEmailMessageTemplateHeaderArrayOutput{}) + pulumi.RegisterOutputType(MessageTemplateGroupingConfigurationOutput{}) + pulumi.RegisterOutputType(MessageTemplateGroupingConfigurationPtrOutput{}) + pulumi.RegisterOutputType(MessageTemplateSmsMessageTemplateContentOutput{}) + pulumi.RegisterOutputType(MessageTemplateSmsMessageTemplateContentPtrOutput{}) + pulumi.RegisterOutputType(MessageTemplateSmsMessageTemplateContentBodyOutput{}) + pulumi.RegisterOutputType(MessageTemplateSmsMessageTemplateContentBodyPtrOutput{}) + pulumi.RegisterOutputType(MessageTemplateSystemAttributesOutput{}) + pulumi.RegisterOutputType(MessageTemplateSystemAttributesPtrOutput{}) + pulumi.RegisterOutputType(MessageTemplateSystemEndpointAttributesOutput{}) + pulumi.RegisterOutputType(MessageTemplateSystemEndpointAttributesPtrOutput{}) } diff --git a/sdk/nodejs/autoscaling/autoScalingGroup.ts b/sdk/nodejs/autoscaling/autoScalingGroup.ts index 5dc08f441f..884022a4b6 100644 --- a/sdk/nodejs/autoscaling/autoScalingGroup.ts +++ b/sdk/nodejs/autoscaling/autoScalingGroup.ts @@ -62,6 +62,9 @@ export class AutoScalingGroup extends pulumi.CustomResource { * Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see [Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the in the *Amazon EC2 Auto Scaling User Guide*. */ public readonly capacityRebalance!: pulumi.Output; + /** + * The capacity reservation specification. + */ public readonly capacityReservationSpecification!: pulumi.Output; /** * Reserved. @@ -319,6 +322,9 @@ export interface AutoScalingGroupArgs { * Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see [Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the in the *Amazon EC2 Auto Scaling User Guide*. */ capacityRebalance?: pulumi.Input; + /** + * The capacity reservation specification. + */ capacityReservationSpecification?: pulumi.Input; /** * Reserved. diff --git a/sdk/nodejs/autoscaling/getAutoScalingGroup.ts b/sdk/nodejs/autoscaling/getAutoScalingGroup.ts index 5d0bad7af0..007710541f 100644 --- a/sdk/nodejs/autoscaling/getAutoScalingGroup.ts +++ b/sdk/nodejs/autoscaling/getAutoScalingGroup.ts @@ -46,6 +46,9 @@ export interface GetAutoScalingGroupResult { * Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see [Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the in the *Amazon EC2 Auto Scaling User Guide*. */ readonly capacityRebalance?: boolean; + /** + * The capacity reservation specification. + */ readonly capacityReservationSpecification?: outputs.autoscaling.AutoScalingGroupCapacityReservationSpecification; /** * Reserved. diff --git a/sdk/nodejs/chatbot/customAction.ts b/sdk/nodejs/chatbot/customAction.ts new file mode 100644 index 0000000000..be9893b5f4 --- /dev/null +++ b/sdk/nodejs/chatbot/customAction.ts @@ -0,0 +1,91 @@ +// *** 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"; + +/** + * Definition of AWS::Chatbot::CustomAction Resource Type + */ +export class CustomAction extends pulumi.CustomResource { + /** + * Get an existing CustomAction 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): CustomAction { + return new CustomAction(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:chatbot:CustomAction'; + + /** + * Returns true if the given object is an instance of CustomAction. 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 CustomAction { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === CustomAction.__pulumiType; + } + + public readonly actionName!: pulumi.Output; + public readonly aliasName!: pulumi.Output; + public readonly attachments!: pulumi.Output; + public /*out*/ readonly customActionArn!: pulumi.Output; + public readonly definition!: pulumi.Output; + public readonly tags!: pulumi.Output; + + /** + * Create a CustomAction 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: CustomActionArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.definition === undefined) && !opts.urn) { + throw new Error("Missing required property 'definition'"); + } + resourceInputs["actionName"] = args ? args.actionName : undefined; + resourceInputs["aliasName"] = args ? args.aliasName : undefined; + resourceInputs["attachments"] = args ? args.attachments : undefined; + resourceInputs["definition"] = args ? args.definition : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["customActionArn"] = undefined /*out*/; + } else { + resourceInputs["actionName"] = undefined /*out*/; + resourceInputs["aliasName"] = undefined /*out*/; + resourceInputs["attachments"] = undefined /*out*/; + resourceInputs["customActionArn"] = undefined /*out*/; + resourceInputs["definition"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["actionName"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(CustomAction.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a CustomAction resource. + */ +export interface CustomActionArgs { + actionName?: pulumi.Input; + aliasName?: pulumi.Input; + attachments?: pulumi.Input[]>; + definition: pulumi.Input; + tags?: pulumi.Input[]>; +} diff --git a/sdk/nodejs/chatbot/getCustomAction.ts b/sdk/nodejs/chatbot/getCustomAction.ts new file mode 100644 index 0000000000..60263af166 --- /dev/null +++ b/sdk/nodejs/chatbot/getCustomAction.ts @@ -0,0 +1,43 @@ +// *** 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"; + +/** + * Definition of AWS::Chatbot::CustomAction Resource Type + */ +export function getCustomAction(args: GetCustomActionArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:chatbot:getCustomAction", { + "customActionArn": args.customActionArn, + }, opts); +} + +export interface GetCustomActionArgs { + customActionArn: string; +} + +export interface GetCustomActionResult { + readonly aliasName?: string; + readonly attachments?: outputs.chatbot.CustomActionAttachment[]; + readonly customActionArn?: string; + readonly definition?: outputs.chatbot.CustomActionDefinition; + readonly tags?: outputs.Tag[]; +} +/** + * Definition of AWS::Chatbot::CustomAction Resource Type + */ +export function getCustomActionOutput(args: GetCustomActionOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("aws-native:chatbot:getCustomAction", { + "customActionArn": args.customActionArn, + }, opts); +} + +export interface GetCustomActionOutputArgs { + customActionArn: pulumi.Input; +} diff --git a/sdk/nodejs/chatbot/getMicrosoftTeamsChannelConfiguration.ts b/sdk/nodejs/chatbot/getMicrosoftTeamsChannelConfiguration.ts index 2626bdb3cd..de332d5c48 100644 --- a/sdk/nodejs/chatbot/getMicrosoftTeamsChannelConfiguration.ts +++ b/sdk/nodejs/chatbot/getMicrosoftTeamsChannelConfiguration.ts @@ -29,6 +29,10 @@ export interface GetMicrosoftTeamsChannelConfigurationResult { * Amazon Resource Name (ARN) of the configuration */ readonly arn?: string; + /** + * ARNs of Custom Actions to associate with notifications in the provided chat channel. + */ + readonly customizationResourceArns?: string[]; /** * The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. */ diff --git a/sdk/nodejs/chatbot/getSlackChannelConfiguration.ts b/sdk/nodejs/chatbot/getSlackChannelConfiguration.ts index eac0d84451..db3811a7fa 100644 --- a/sdk/nodejs/chatbot/getSlackChannelConfiguration.ts +++ b/sdk/nodejs/chatbot/getSlackChannelConfiguration.ts @@ -29,6 +29,10 @@ export interface GetSlackChannelConfigurationResult { * Amazon Resource Name (ARN) of the configuration */ readonly arn?: string; + /** + * ARNs of Custom Actions to associate with notifications in the provided chat channel. + */ + readonly customizationResourceArns?: string[]; /** * The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. */ diff --git a/sdk/nodejs/chatbot/index.ts b/sdk/nodejs/chatbot/index.ts index 212b0ebccd..d8bcfbf98c 100644 --- a/sdk/nodejs/chatbot/index.ts +++ b/sdk/nodejs/chatbot/index.ts @@ -5,6 +5,16 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; // Export members: +export { CustomActionArgs } from "./customAction"; +export type CustomAction = import("./customAction").CustomAction; +export const CustomAction: typeof import("./customAction").CustomAction = null as any; +utilities.lazyLoad(exports, ["CustomAction"], () => require("./customAction")); + +export { GetCustomActionArgs, GetCustomActionResult, GetCustomActionOutputArgs } from "./getCustomAction"; +export const getCustomAction: typeof import("./getCustomAction").getCustomAction = null as any; +export const getCustomActionOutput: typeof import("./getCustomAction").getCustomActionOutput = null as any; +utilities.lazyLoad(exports, ["getCustomAction","getCustomActionOutput"], () => require("./getCustomAction")); + export { GetMicrosoftTeamsChannelConfigurationArgs, GetMicrosoftTeamsChannelConfigurationResult, GetMicrosoftTeamsChannelConfigurationOutputArgs } from "./getMicrosoftTeamsChannelConfiguration"; export const getMicrosoftTeamsChannelConfiguration: typeof import("./getMicrosoftTeamsChannelConfiguration").getMicrosoftTeamsChannelConfiguration = null as any; export const getMicrosoftTeamsChannelConfigurationOutput: typeof import("./getMicrosoftTeamsChannelConfiguration").getMicrosoftTeamsChannelConfigurationOutput = null as any; @@ -26,10 +36,15 @@ export const SlackChannelConfiguration: typeof import("./slackChannelConfigurati utilities.lazyLoad(exports, ["SlackChannelConfiguration"], () => require("./slackChannelConfiguration")); +// Export enums: +export * from "../types/enums/chatbot"; + const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { switch (type) { + case "aws-native:chatbot:CustomAction": + return new CustomAction(name, undefined, { urn }) case "aws-native:chatbot:MicrosoftTeamsChannelConfiguration": return new MicrosoftTeamsChannelConfiguration(name, undefined, { urn }) case "aws-native:chatbot:SlackChannelConfiguration": diff --git a/sdk/nodejs/chatbot/microsoftTeamsChannelConfiguration.ts b/sdk/nodejs/chatbot/microsoftTeamsChannelConfiguration.ts index 54525996a8..e1686e84ba 100644 --- a/sdk/nodejs/chatbot/microsoftTeamsChannelConfiguration.ts +++ b/sdk/nodejs/chatbot/microsoftTeamsChannelConfiguration.ts @@ -45,6 +45,10 @@ export class MicrosoftTeamsChannelConfiguration extends pulumi.CustomResource { * The name of the configuration */ public readonly configurationName!: pulumi.Output; + /** + * ARNs of Custom Actions to associate with notifications in the provided chat channel. + */ + public readonly customizationResourceArns!: pulumi.Output; /** * The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. */ @@ -106,6 +110,7 @@ export class MicrosoftTeamsChannelConfiguration extends pulumi.CustomResource { throw new Error("Missing required property 'teamsTenantId'"); } resourceInputs["configurationName"] = args ? args.configurationName : undefined; + resourceInputs["customizationResourceArns"] = args ? args.customizationResourceArns : undefined; resourceInputs["guardrailPolicies"] = args ? args.guardrailPolicies : undefined; resourceInputs["iamRoleArn"] = args ? args.iamRoleArn : undefined; resourceInputs["loggingLevel"] = args ? args.loggingLevel : undefined; @@ -119,6 +124,7 @@ export class MicrosoftTeamsChannelConfiguration extends pulumi.CustomResource { } else { resourceInputs["arn"] = undefined /*out*/; resourceInputs["configurationName"] = undefined /*out*/; + resourceInputs["customizationResourceArns"] = undefined /*out*/; resourceInputs["guardrailPolicies"] = undefined /*out*/; resourceInputs["iamRoleArn"] = undefined /*out*/; resourceInputs["loggingLevel"] = undefined /*out*/; @@ -144,6 +150,10 @@ export interface MicrosoftTeamsChannelConfigurationArgs { * The name of the configuration */ configurationName?: pulumi.Input; + /** + * ARNs of Custom Actions to associate with notifications in the provided chat channel. + */ + customizationResourceArns?: pulumi.Input[]>; /** * The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. */ diff --git a/sdk/nodejs/chatbot/slackChannelConfiguration.ts b/sdk/nodejs/chatbot/slackChannelConfiguration.ts index af798ed924..6923719528 100644 --- a/sdk/nodejs/chatbot/slackChannelConfiguration.ts +++ b/sdk/nodejs/chatbot/slackChannelConfiguration.ts @@ -45,6 +45,10 @@ export class SlackChannelConfiguration extends pulumi.CustomResource { * The name of the configuration */ public readonly configurationName!: pulumi.Output; + /** + * ARNs of Custom Actions to associate with notifications in the provided chat channel. + */ + public readonly customizationResourceArns!: pulumi.Output; /** * The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. */ @@ -99,6 +103,7 @@ export class SlackChannelConfiguration extends pulumi.CustomResource { throw new Error("Missing required property 'slackWorkspaceId'"); } resourceInputs["configurationName"] = args ? args.configurationName : undefined; + resourceInputs["customizationResourceArns"] = args ? args.customizationResourceArns : undefined; resourceInputs["guardrailPolicies"] = args ? args.guardrailPolicies : undefined; resourceInputs["iamRoleArn"] = args ? args.iamRoleArn : undefined; resourceInputs["loggingLevel"] = args ? args.loggingLevel : undefined; @@ -111,6 +116,7 @@ export class SlackChannelConfiguration extends pulumi.CustomResource { } else { resourceInputs["arn"] = undefined /*out*/; resourceInputs["configurationName"] = undefined /*out*/; + resourceInputs["customizationResourceArns"] = undefined /*out*/; resourceInputs["guardrailPolicies"] = undefined /*out*/; resourceInputs["iamRoleArn"] = undefined /*out*/; resourceInputs["loggingLevel"] = undefined /*out*/; @@ -135,6 +141,10 @@ export interface SlackChannelConfigurationArgs { * The name of the configuration */ configurationName?: pulumi.Input; + /** + * ARNs of Custom Actions to associate with notifications in the provided chat channel. + */ + customizationResourceArns?: pulumi.Input[]>; /** * The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. */ diff --git a/sdk/nodejs/cloudtrail/dashboard.ts b/sdk/nodejs/cloudtrail/dashboard.ts new file mode 100644 index 0000000000..ad1802d731 --- /dev/null +++ b/sdk/nodejs/cloudtrail/dashboard.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"; + +/** + * The Amazon CloudTrail dashboard resource allows customers to manage managed dashboards and create custom dashboards. You can manually refresh custom and managed dashboards. For custom dashboards, you can also set up an automatic refresh schedule and modify dashboard widgets. + */ +export class Dashboard extends pulumi.CustomResource { + /** + * Get an existing Dashboard 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): Dashboard { + return new Dashboard(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:cloudtrail:Dashboard'; + + /** + * Returns true if the given object is an instance of Dashboard. 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 Dashboard { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Dashboard.__pulumiType; + } + + /** + * The timestamp of the dashboard creation. + */ + public /*out*/ readonly createdTimestamp!: pulumi.Output; + /** + * The ARN of the dashboard. + */ + public /*out*/ readonly dashboardArn!: pulumi.Output; + /** + * The name of the dashboard. + */ + public readonly name!: pulumi.Output; + /** + * Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + */ + public readonly refreshSchedule!: pulumi.Output; + /** + * The status of the dashboard. Values are CREATING, CREATED, UPDATING, UPDATED and DELETING. + */ + public /*out*/ readonly status!: pulumi.Output; + public readonly tags!: pulumi.Output; + /** + * Indicates whether the dashboard is protected from termination. + */ + public readonly terminationProtectionEnabled!: pulumi.Output; + /** + * The type of the dashboard. Values are CUSTOM and MANAGED. + */ + public /*out*/ readonly type!: pulumi.Output; + /** + * The timestamp showing when the dashboard was updated, if applicable. UpdatedTimestamp is always either the same or newer than the time shown in CreatedTimestamp. + */ + public /*out*/ readonly updatedTimestamp!: pulumi.Output; + /** + * List of widgets on the dashboard + */ + public readonly widgets!: pulumi.Output; + + /** + * Create a Dashboard 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?: DashboardArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["refreshSchedule"] = args ? args.refreshSchedule : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["terminationProtectionEnabled"] = args ? args.terminationProtectionEnabled : undefined; + resourceInputs["widgets"] = args ? args.widgets : undefined; + resourceInputs["createdTimestamp"] = undefined /*out*/; + resourceInputs["dashboardArn"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + resourceInputs["type"] = undefined /*out*/; + resourceInputs["updatedTimestamp"] = undefined /*out*/; + } else { + resourceInputs["createdTimestamp"] = undefined /*out*/; + resourceInputs["dashboardArn"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["refreshSchedule"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; + resourceInputs["terminationProtectionEnabled"] = undefined /*out*/; + resourceInputs["type"] = undefined /*out*/; + resourceInputs["updatedTimestamp"] = undefined /*out*/; + resourceInputs["widgets"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Dashboard.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a Dashboard resource. + */ +export interface DashboardArgs { + /** + * The name of the dashboard. + */ + name?: pulumi.Input; + /** + * Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + */ + refreshSchedule?: pulumi.Input; + tags?: pulumi.Input[]>; + /** + * Indicates whether the dashboard is protected from termination. + */ + terminationProtectionEnabled?: pulumi.Input; + /** + * List of widgets on the dashboard + */ + widgets?: pulumi.Input[]>; +} diff --git a/sdk/nodejs/cloudtrail/getDashboard.ts b/sdk/nodejs/cloudtrail/getDashboard.ts new file mode 100644 index 0000000000..9c6dcfa4f1 --- /dev/null +++ b/sdk/nodejs/cloudtrail/getDashboard.ts @@ -0,0 +1,81 @@ +// *** 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"; + +/** + * The Amazon CloudTrail dashboard resource allows customers to manage managed dashboards and create custom dashboards. You can manually refresh custom and managed dashboards. For custom dashboards, you can also set up an automatic refresh schedule and modify dashboard widgets. + */ +export function getDashboard(args: GetDashboardArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:cloudtrail:getDashboard", { + "dashboardArn": args.dashboardArn, + }, opts); +} + +export interface GetDashboardArgs { + /** + * The ARN of the dashboard. + */ + dashboardArn: string; +} + +export interface GetDashboardResult { + /** + * The timestamp of the dashboard creation. + */ + readonly createdTimestamp?: string; + /** + * The ARN of the dashboard. + */ + readonly dashboardArn?: string; + /** + * The name of the dashboard. + */ + readonly name?: string; + /** + * Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + */ + readonly refreshSchedule?: outputs.cloudtrail.DashboardRefreshSchedule; + /** + * The status of the dashboard. Values are CREATING, CREATED, UPDATING, UPDATED and DELETING. + */ + readonly status?: enums.cloudtrail.DashboardStatus; + readonly tags?: outputs.Tag[]; + /** + * Indicates whether the dashboard is protected from termination. + */ + readonly terminationProtectionEnabled?: boolean; + /** + * The type of the dashboard. Values are CUSTOM and MANAGED. + */ + readonly type?: enums.cloudtrail.DashboardType; + /** + * The timestamp showing when the dashboard was updated, if applicable. UpdatedTimestamp is always either the same or newer than the time shown in CreatedTimestamp. + */ + readonly updatedTimestamp?: string; + /** + * List of widgets on the dashboard + */ + readonly widgets?: outputs.cloudtrail.DashboardWidget[]; +} +/** + * The Amazon CloudTrail dashboard resource allows customers to manage managed dashboards and create custom dashboards. You can manually refresh custom and managed dashboards. For custom dashboards, you can also set up an automatic refresh schedule and modify dashboard widgets. + */ +export function getDashboardOutput(args: GetDashboardOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("aws-native:cloudtrail:getDashboard", { + "dashboardArn": args.dashboardArn, + }, opts); +} + +export interface GetDashboardOutputArgs { + /** + * The ARN of the dashboard. + */ + dashboardArn: pulumi.Input; +} diff --git a/sdk/nodejs/cloudtrail/index.ts b/sdk/nodejs/cloudtrail/index.ts index 506f49ab06..159f3b4f48 100644 --- a/sdk/nodejs/cloudtrail/index.ts +++ b/sdk/nodejs/cloudtrail/index.ts @@ -10,6 +10,11 @@ export type Channel = import("./channel").Channel; export const Channel: typeof import("./channel").Channel = null as any; utilities.lazyLoad(exports, ["Channel"], () => require("./channel")); +export { DashboardArgs } from "./dashboard"; +export type Dashboard = import("./dashboard").Dashboard; +export const Dashboard: typeof import("./dashboard").Dashboard = null as any; +utilities.lazyLoad(exports, ["Dashboard"], () => require("./dashboard")); + export { EventDataStoreArgs } from "./eventDataStore"; export type EventDataStore = import("./eventDataStore").EventDataStore; export const EventDataStore: typeof import("./eventDataStore").EventDataStore = null as any; @@ -20,6 +25,11 @@ export const getChannel: typeof import("./getChannel").getChannel = null as any; export const getChannelOutput: typeof import("./getChannel").getChannelOutput = null as any; utilities.lazyLoad(exports, ["getChannel","getChannelOutput"], () => require("./getChannel")); +export { GetDashboardArgs, GetDashboardResult, GetDashboardOutputArgs } from "./getDashboard"; +export const getDashboard: typeof import("./getDashboard").getDashboard = null as any; +export const getDashboardOutput: typeof import("./getDashboard").getDashboardOutput = null as any; +utilities.lazyLoad(exports, ["getDashboard","getDashboardOutput"], () => require("./getDashboard")); + export { GetEventDataStoreArgs, GetEventDataStoreResult, GetEventDataStoreOutputArgs } from "./getEventDataStore"; export const getEventDataStore: typeof import("./getEventDataStore").getEventDataStore = null as any; export const getEventDataStoreOutput: typeof import("./getEventDataStore").getEventDataStoreOutput = null as any; @@ -55,6 +65,8 @@ const _module = { switch (type) { case "aws-native:cloudtrail:Channel": return new Channel(name, undefined, { urn }) + case "aws-native:cloudtrail:Dashboard": + return new Dashboard(name, undefined, { urn }) case "aws-native:cloudtrail:EventDataStore": return new EventDataStore(name, undefined, { urn }) case "aws-native:cloudtrail:ResourcePolicy": diff --git a/sdk/nodejs/ecs/getService.ts b/sdk/nodejs/ecs/getService.ts index d0639a4bc3..92165b3509 100644 --- a/sdk/nodejs/ecs/getService.ts +++ b/sdk/nodejs/ecs/getService.ts @@ -32,6 +32,11 @@ export interface GetServiceArgs { } export interface GetServiceResult { + /** + * Indicates whether to use Availability Zone rebalancing for the service. + * + * For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* . + */ readonly availabilityZoneRebalancing?: enums.ecs.ServiceAvailabilityZoneRebalancing; /** * The capacity provider strategy to use for the service. diff --git a/sdk/nodejs/ecs/service.ts b/sdk/nodejs/ecs/service.ts index 5f85723378..6a26f9f997 100644 --- a/sdk/nodejs/ecs/service.ts +++ b/sdk/nodejs/ecs/service.ts @@ -39,6 +39,11 @@ export class Service extends pulumi.CustomResource { return obj['__pulumiType'] === Service.__pulumiType; } + /** + * Indicates whether to use Availability Zone rebalancing for the service. + * + * For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* . + */ public readonly availabilityZoneRebalancing!: pulumi.Output; /** * The capacity provider strategy to use for the service. @@ -251,6 +256,11 @@ export class Service extends pulumi.CustomResource { * The set of arguments for constructing a Service resource. */ export interface ServiceArgs { + /** + * Indicates whether to use Availability Zone rebalancing for the service. + * + * For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* . + */ availabilityZoneRebalancing?: pulumi.Input; /** * The capacity provider strategy to use for the service. diff --git a/sdk/nodejs/elasticloadbalancingv2/getListener.ts b/sdk/nodejs/elasticloadbalancingv2/getListener.ts index 9cc74c458e..3130d111df 100644 --- a/sdk/nodejs/elasticloadbalancingv2/getListener.ts +++ b/sdk/nodejs/elasticloadbalancingv2/getListener.ts @@ -52,11 +52,11 @@ export interface GetListenerResult { */ readonly mutualAuthentication?: outputs.elasticloadbalancingv2.ListenerMutualAuthentication; /** - * The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer. + * The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer. */ readonly port?: number; /** - * The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer. + * The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer. */ readonly protocol?: string; /** diff --git a/sdk/nodejs/elasticloadbalancingv2/getLoadBalancer.ts b/sdk/nodejs/elasticloadbalancingv2/getLoadBalancer.ts index b767beec7a..fee27df112 100644 --- a/sdk/nodejs/elasticloadbalancingv2/getLoadBalancer.ts +++ b/sdk/nodejs/elasticloadbalancingv2/getLoadBalancer.ts @@ -34,7 +34,7 @@ export interface GetLoadBalancerResult { */ readonly dnsName?: string; /** - * [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + * [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``. */ readonly enablePrefixForIpv6SourceNat?: string; /** @@ -42,11 +42,10 @@ export interface GetLoadBalancerResult { */ readonly enforceSecurityGroupInboundRulesOnPrivateLinkTraffic?: string; /** - * Note: Internal load balancers must use the ``ipv4`` IP address type. - * [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses). - * Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors. - * [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener. - * [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). + * The IP address type. Internal load balancers must use ``ipv4``. + * [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). + * Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. + * [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses). */ readonly ipAddressType?: string; /** @@ -65,17 +64,18 @@ export interface GetLoadBalancerResult { * The name of the load balancer. For example, `my-load-balancer` . */ readonly loadBalancerName?: string; + readonly minimumLoadBalancerCapacity?: outputs.elasticloadbalancingv2.LoadBalancerMinimumLoadBalancerCapacity; /** * [Application Load Balancers and Network Load Balancers] The IDs of the security groups for the load balancer. */ readonly securityGroups?: string[]; /** * The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. - * [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets. + * [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets. * [Application Load Balancers on Outposts] You must specify one Outpost subnet. * [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. * [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet. - * [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets. + * [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets. */ readonly subnetMappings?: outputs.elasticloadbalancingv2.LoadBalancerSubnetMapping[]; /** @@ -83,8 +83,7 @@ export interface GetLoadBalancerResult { * [Application Load Balancers] You must specify subnets from at least two Availability Zones. * [Application Load Balancers on Outposts] You must specify one Outpost subnet. * [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. - * [Network Load Balancers] You can specify subnets from one or more Availability Zones. - * [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. + * [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones. */ readonly subnets?: string[]; /** diff --git a/sdk/nodejs/elasticloadbalancingv2/listener.ts b/sdk/nodejs/elasticloadbalancingv2/listener.ts index eeffdceffc..14d5f4b8c4 100644 --- a/sdk/nodejs/elasticloadbalancingv2/listener.ts +++ b/sdk/nodejs/elasticloadbalancingv2/listener.ts @@ -68,11 +68,11 @@ export class Listener extends pulumi.CustomResource { */ public readonly mutualAuthentication!: pulumi.Output; /** - * The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer. + * The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer. */ public readonly port!: pulumi.Output; /** - * The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer. + * The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer. */ public readonly protocol!: pulumi.Output; /** @@ -159,11 +159,11 @@ export interface ListenerArgs { */ mutualAuthentication?: pulumi.Input; /** - * The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer. + * The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer. */ port?: pulumi.Input; /** - * The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer. + * The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer. */ protocol?: pulumi.Input; /** diff --git a/sdk/nodejs/elasticloadbalancingv2/loadBalancer.ts b/sdk/nodejs/elasticloadbalancingv2/loadBalancer.ts index b522ebd5e6..3359da3a3d 100644 --- a/sdk/nodejs/elasticloadbalancingv2/loadBalancer.ts +++ b/sdk/nodejs/elasticloadbalancingv2/loadBalancer.ts @@ -46,7 +46,7 @@ export class LoadBalancer extends pulumi.CustomResource { */ public /*out*/ readonly dnsName!: pulumi.Output; /** - * [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + * [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``. */ public readonly enablePrefixForIpv6SourceNat!: pulumi.Output; /** @@ -54,11 +54,10 @@ export class LoadBalancer extends pulumi.CustomResource { */ public readonly enforceSecurityGroupInboundRulesOnPrivateLinkTraffic!: pulumi.Output; /** - * Note: Internal load balancers must use the ``ipv4`` IP address type. - * [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses). - * Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors. - * [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener. - * [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). + * The IP address type. Internal load balancers must use ``ipv4``. + * [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). + * Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. + * [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses). */ public readonly ipAddressType!: pulumi.Output; /** @@ -77,6 +76,7 @@ export class LoadBalancer extends pulumi.CustomResource { * The name of the load balancer. For example, `my-load-balancer` . */ public /*out*/ readonly loadBalancerName!: pulumi.Output; + public readonly minimumLoadBalancerCapacity!: pulumi.Output; /** * The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with "internal-". * If you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates. To replace the resource, specify a new name. @@ -86,7 +86,7 @@ export class LoadBalancer extends pulumi.CustomResource { * The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet. * The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer. * The default is an Internet-facing load balancer. - * You cannot specify a scheme for a Gateway Load Balancer. + * You can't specify a scheme for a Gateway Load Balancer. */ public readonly scheme!: pulumi.Output; /** @@ -95,11 +95,11 @@ export class LoadBalancer extends pulumi.CustomResource { public readonly securityGroups!: pulumi.Output; /** * The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. - * [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets. + * [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets. * [Application Load Balancers on Outposts] You must specify one Outpost subnet. * [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. * [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet. - * [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets. + * [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets. */ public readonly subnetMappings!: pulumi.Output; /** @@ -107,8 +107,7 @@ export class LoadBalancer extends pulumi.CustomResource { * [Application Load Balancers] You must specify subnets from at least two Availability Zones. * [Application Load Balancers on Outposts] You must specify one Outpost subnet. * [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. - * [Network Load Balancers] You can specify subnets from one or more Availability Zones. - * [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. + * [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones. */ public readonly subnets!: pulumi.Output; /** @@ -135,6 +134,7 @@ export class LoadBalancer extends pulumi.CustomResource { resourceInputs["enforceSecurityGroupInboundRulesOnPrivateLinkTraffic"] = args ? args.enforceSecurityGroupInboundRulesOnPrivateLinkTraffic : undefined; resourceInputs["ipAddressType"] = args ? args.ipAddressType : undefined; resourceInputs["loadBalancerAttributes"] = args ? args.loadBalancerAttributes : undefined; + resourceInputs["minimumLoadBalancerCapacity"] = args ? args.minimumLoadBalancerCapacity : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["scheme"] = args ? args.scheme : undefined; resourceInputs["securityGroups"] = args ? args.securityGroups : undefined; @@ -157,6 +157,7 @@ export class LoadBalancer extends pulumi.CustomResource { resourceInputs["loadBalancerAttributes"] = undefined /*out*/; resourceInputs["loadBalancerFullName"] = undefined /*out*/; resourceInputs["loadBalancerName"] = undefined /*out*/; + resourceInputs["minimumLoadBalancerCapacity"] = undefined /*out*/; resourceInputs["name"] = undefined /*out*/; resourceInputs["scheme"] = undefined /*out*/; resourceInputs["securityGroups"] = undefined /*out*/; @@ -177,7 +178,7 @@ export class LoadBalancer extends pulumi.CustomResource { */ export interface LoadBalancerArgs { /** - * [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + * [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``. */ enablePrefixForIpv6SourceNat?: pulumi.Input; /** @@ -185,17 +186,17 @@ export interface LoadBalancerArgs { */ enforceSecurityGroupInboundRulesOnPrivateLinkTraffic?: pulumi.Input; /** - * Note: Internal load balancers must use the ``ipv4`` IP address type. - * [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses). - * Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors. - * [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener. - * [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). + * The IP address type. Internal load balancers must use ``ipv4``. + * [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). + * Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. + * [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses). */ ipAddressType?: pulumi.Input; /** * The load balancer attributes. */ loadBalancerAttributes?: pulumi.Input[]>; + minimumLoadBalancerCapacity?: pulumi.Input; /** * The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with "internal-". * If you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates. To replace the resource, specify a new name. @@ -205,7 +206,7 @@ export interface LoadBalancerArgs { * The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet. * The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer. * The default is an Internet-facing load balancer. - * You cannot specify a scheme for a Gateway Load Balancer. + * You can't specify a scheme for a Gateway Load Balancer. */ scheme?: pulumi.Input; /** @@ -214,11 +215,11 @@ export interface LoadBalancerArgs { securityGroups?: pulumi.Input[]>; /** * The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. - * [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets. + * [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets. * [Application Load Balancers on Outposts] You must specify one Outpost subnet. * [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. * [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet. - * [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets. + * [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets. */ subnetMappings?: pulumi.Input[]>; /** @@ -226,8 +227,7 @@ export interface LoadBalancerArgs { * [Application Load Balancers] You must specify subnets from at least two Availability Zones. * [Application Load Balancers on Outposts] You must specify one Outpost subnet. * [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. - * [Network Load Balancers] You can specify subnets from one or more Availability Zones. - * [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. + * [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones. */ subnets?: pulumi.Input[]>; /** diff --git a/sdk/nodejs/lambda/eventInvokeConfig.ts b/sdk/nodejs/lambda/eventInvokeConfig.ts index 2c76c4c6f1..b512b6a065 100644 --- a/sdk/nodejs/lambda/eventInvokeConfig.ts +++ b/sdk/nodejs/lambda/eventInvokeConfig.ts @@ -42,8 +42,11 @@ export class EventInvokeConfig extends pulumi.CustomResource { * * **Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function. * - *Queue* - The ARN of a standard SQS queue. + * - *Bucket* - The ARN of an Amazon S3 bucket. * - *Topic* - The ARN of a standard SNS topic. * - *Event Bus* - The ARN of an Amazon EventBridge event bus. + * + * > S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. */ public readonly destinationConfig!: pulumi.Output; /** @@ -108,8 +111,11 @@ export interface EventInvokeConfigArgs { * * **Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function. * - *Queue* - The ARN of a standard SQS queue. + * - *Bucket* - The ARN of an Amazon S3 bucket. * - *Topic* - The ARN of a standard SNS topic. * - *Event Bus* - The ARN of an Amazon EventBridge event bus. + * + * > S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. */ destinationConfig?: pulumi.Input; /** diff --git a/sdk/nodejs/lambda/getEventInvokeConfig.ts b/sdk/nodejs/lambda/getEventInvokeConfig.ts index 45a5b16af1..a4693890d2 100644 --- a/sdk/nodejs/lambda/getEventInvokeConfig.ts +++ b/sdk/nodejs/lambda/getEventInvokeConfig.ts @@ -35,8 +35,11 @@ export interface GetEventInvokeConfigResult { * * **Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function. * - *Queue* - The ARN of a standard SQS queue. + * - *Bucket* - The ARN of an Amazon S3 bucket. * - *Topic* - The ARN of a standard SNS topic. * - *Event Bus* - The ARN of an Amazon EventBridge event bus. + * + * > S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. */ readonly destinationConfig?: outputs.lambda.EventInvokeConfigDestinationConfig; /** diff --git a/sdk/nodejs/rds/getGlobalCluster.ts b/sdk/nodejs/rds/getGlobalCluster.ts index aa2000b22a..3302eba08f 100644 --- a/sdk/nodejs/rds/getGlobalCluster.ts +++ b/sdk/nodejs/rds/getGlobalCluster.ts @@ -37,6 +37,9 @@ export interface GetGlobalClusterResult { * The version number of the database engine to use. If you specify the SourceDBClusterIdentifier property, don't specify this property. The value is inherited from the cluster. */ readonly engineVersion?: string; + /** + * The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster. + */ readonly globalEndpoint?: outputs.rds.GlobalClusterGlobalEndpoint; /** * An array of key-value pairs to apply to this resource. diff --git a/sdk/nodejs/rds/globalCluster.ts b/sdk/nodejs/rds/globalCluster.ts index b9121e35c1..7d5be58798 100644 --- a/sdk/nodejs/rds/globalCluster.ts +++ b/sdk/nodejs/rds/globalCluster.ts @@ -58,6 +58,9 @@ export class GlobalCluster extends pulumi.CustomResource { * The cluster identifier of the new global database cluster. This parameter is stored as a lowercase string. */ public readonly globalClusterIdentifier!: pulumi.Output; + /** + * The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster. + */ public readonly globalEndpoint!: pulumi.Output; /** * The Amazon Resource Name (ARN) to use as the primary cluster of the global database. This parameter is optional. This parameter is stored as a lowercase string. @@ -136,6 +139,9 @@ export interface GlobalClusterArgs { * The cluster identifier of the new global database cluster. This parameter is stored as a lowercase string. */ globalClusterIdentifier?: pulumi.Input; + /** + * The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster. + */ globalEndpoint?: pulumi.Input; /** * The Amazon Resource Name (ARN) to use as the primary cluster of the global database. This parameter is optional. This parameter is stored as a lowercase string. diff --git a/sdk/nodejs/resourcegroups/getTagSyncTask.ts b/sdk/nodejs/resourcegroups/getTagSyncTask.ts new file mode 100644 index 0000000000..cf99cf928a --- /dev/null +++ b/sdk/nodejs/resourcegroups/getTagSyncTask.ts @@ -0,0 +1,60 @@ +// *** 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"; + +/** + * Schema for ResourceGroups::TagSyncTask + */ +export function getTagSyncTask(args: GetTagSyncTaskArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:resourcegroups:getTagSyncTask", { + "taskArn": args.taskArn, + }, opts); +} + +export interface GetTagSyncTaskArgs { + /** + * The ARN of the TagSyncTask resource + */ + taskArn: string; +} + +export interface GetTagSyncTaskResult { + /** + * The Amazon resource name (ARN) of the ApplicationGroup for which the TagSyncTask is created + */ + readonly groupArn?: string; + /** + * The Name of the application group for which the TagSyncTask is created + */ + readonly groupName?: string; + /** + * The status of the TagSyncTask + */ + readonly status?: enums.resourcegroups.TagSyncTaskStatus; + /** + * The ARN of the TagSyncTask resource + */ + readonly taskArn?: string; +} +/** + * Schema for ResourceGroups::TagSyncTask + */ +export function getTagSyncTaskOutput(args: GetTagSyncTaskOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("aws-native:resourcegroups:getTagSyncTask", { + "taskArn": args.taskArn, + }, opts); +} + +export interface GetTagSyncTaskOutputArgs { + /** + * The ARN of the TagSyncTask resource + */ + taskArn: pulumi.Input; +} diff --git a/sdk/nodejs/resourcegroups/index.ts b/sdk/nodejs/resourcegroups/index.ts index 5be67788e0..ccf351141d 100644 --- a/sdk/nodejs/resourcegroups/index.ts +++ b/sdk/nodejs/resourcegroups/index.ts @@ -10,11 +10,21 @@ export const getGroup: typeof import("./getGroup").getGroup = null as any; export const getGroupOutput: typeof import("./getGroup").getGroupOutput = null as any; utilities.lazyLoad(exports, ["getGroup","getGroupOutput"], () => require("./getGroup")); +export { GetTagSyncTaskArgs, GetTagSyncTaskResult, GetTagSyncTaskOutputArgs } from "./getTagSyncTask"; +export const getTagSyncTask: typeof import("./getTagSyncTask").getTagSyncTask = null as any; +export const getTagSyncTaskOutput: typeof import("./getTagSyncTask").getTagSyncTaskOutput = null as any; +utilities.lazyLoad(exports, ["getTagSyncTask","getTagSyncTaskOutput"], () => require("./getTagSyncTask")); + export { GroupArgs } from "./group"; export type Group = import("./group").Group; export const Group: typeof import("./group").Group = null as any; utilities.lazyLoad(exports, ["Group"], () => require("./group")); +export { TagSyncTaskArgs } from "./tagSyncTask"; +export type TagSyncTask = import("./tagSyncTask").TagSyncTask; +export const TagSyncTask: typeof import("./tagSyncTask").TagSyncTask = null as any; +utilities.lazyLoad(exports, ["TagSyncTask"], () => require("./tagSyncTask")); + // Export enums: export * from "../types/enums/resourcegroups"; @@ -25,6 +35,8 @@ const _module = { switch (type) { case "aws-native:resourcegroups:Group": return new Group(name, undefined, { urn }) + case "aws-native:resourcegroups:TagSyncTask": + return new TagSyncTask(name, undefined, { urn }) default: throw new Error(`unknown resource type ${type}`); } diff --git a/sdk/nodejs/resourcegroups/tagSyncTask.ts b/sdk/nodejs/resourcegroups/tagSyncTask.ts new file mode 100644 index 0000000000..b9671c309f --- /dev/null +++ b/sdk/nodejs/resourcegroups/tagSyncTask.ts @@ -0,0 +1,141 @@ +// *** 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"; + +/** + * Schema for ResourceGroups::TagSyncTask + */ +export class TagSyncTask extends pulumi.CustomResource { + /** + * Get an existing TagSyncTask 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): TagSyncTask { + return new TagSyncTask(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:resourcegroups:TagSyncTask'; + + /** + * Returns true if the given object is an instance of TagSyncTask. 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 TagSyncTask { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === TagSyncTask.__pulumiType; + } + + /** + * The Amazon resource name (ARN) or name of the application group for which you want to create a tag-sync task + */ + public readonly group!: pulumi.Output; + /** + * The Amazon resource name (ARN) of the ApplicationGroup for which the TagSyncTask is created + */ + public /*out*/ readonly groupArn!: pulumi.Output; + /** + * The Name of the application group for which the TagSyncTask is created + */ + public /*out*/ readonly groupName!: pulumi.Output; + /** + * The Amazon resource name (ARN) of the role assumed by the service to tag and untag resources on your behalf. + */ + public readonly roleArn!: pulumi.Output; + /** + * The status of the TagSyncTask + */ + public /*out*/ readonly status!: pulumi.Output; + /** + * The tag key. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. + */ + public readonly tagKey!: pulumi.Output; + /** + * The tag value. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. + */ + public readonly tagValue!: pulumi.Output; + /** + * The ARN of the TagSyncTask resource + */ + public /*out*/ readonly taskArn!: pulumi.Output; + + /** + * Create a TagSyncTask 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: TagSyncTaskArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.group === undefined) && !opts.urn) { + throw new Error("Missing required property 'group'"); + } + if ((!args || args.roleArn === undefined) && !opts.urn) { + throw new Error("Missing required property 'roleArn'"); + } + if ((!args || args.tagKey === undefined) && !opts.urn) { + throw new Error("Missing required property 'tagKey'"); + } + if ((!args || args.tagValue === undefined) && !opts.urn) { + throw new Error("Missing required property 'tagValue'"); + } + resourceInputs["group"] = args ? args.group : undefined; + resourceInputs["roleArn"] = args ? args.roleArn : undefined; + resourceInputs["tagKey"] = args ? args.tagKey : undefined; + resourceInputs["tagValue"] = args ? args.tagValue : undefined; + resourceInputs["groupArn"] = undefined /*out*/; + resourceInputs["groupName"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + resourceInputs["taskArn"] = undefined /*out*/; + } else { + resourceInputs["group"] = undefined /*out*/; + resourceInputs["groupArn"] = undefined /*out*/; + resourceInputs["groupName"] = undefined /*out*/; + resourceInputs["roleArn"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + resourceInputs["tagKey"] = undefined /*out*/; + resourceInputs["tagValue"] = undefined /*out*/; + resourceInputs["taskArn"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["group", "roleArn", "tagKey", "tagValue"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(TagSyncTask.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a TagSyncTask resource. + */ +export interface TagSyncTaskArgs { + /** + * The Amazon resource name (ARN) or name of the application group for which you want to create a tag-sync task + */ + group: pulumi.Input; + /** + * The Amazon resource name (ARN) of the role assumed by the service to tag and untag resources on your behalf. + */ + roleArn: pulumi.Input; + /** + * The tag key. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. + */ + tagKey: pulumi.Input; + /** + * The tag value. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. + */ + tagValue: pulumi.Input; +} diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 0876330e8b..d48a10a563 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -313,6 +313,8 @@ "certificatemanager/account.ts", "certificatemanager/getAccount.ts", "certificatemanager/index.ts", + "chatbot/customAction.ts", + "chatbot/getCustomAction.ts", "chatbot/getMicrosoftTeamsChannelConfiguration.ts", "chatbot/getSlackChannelConfiguration.ts", "chatbot/index.ts", @@ -396,8 +398,10 @@ "cloudfront/realtimeLogConfig.ts", "cloudfront/responseHeadersPolicy.ts", "cloudtrail/channel.ts", + "cloudtrail/dashboard.ts", "cloudtrail/eventDataStore.ts", "cloudtrail/getChannel.ts", + "cloudtrail/getDashboard.ts", "cloudtrail/getEventDataStore.ts", "cloudtrail/getResourcePolicy.ts", "cloudtrail/getTrail.ts", @@ -1911,8 +1915,10 @@ "resourceexplorer2/index_.ts", "resourceexplorer2/view.ts", "resourcegroups/getGroup.ts", + "resourcegroups/getTagSyncTask.ts", "resourcegroups/group.ts", "resourcegroups/index.ts", + "resourcegroups/tagSyncTask.ts", "robomaker/fleet.ts", "robomaker/getFleet.ts", "robomaker/getRobot.ts", @@ -2311,6 +2317,7 @@ "types/enums/budgets/index.ts", "types/enums/cassandra/index.ts", "types/enums/ce/index.ts", + "types/enums/chatbot/index.ts", "types/enums/cleanrooms/index.ts", "types/enums/cleanroomsml/index.ts", "types/enums/cloudformation/index.ts", @@ -2523,8 +2530,12 @@ "wisdom/getAssistant.ts", "wisdom/getAssistantAssociation.ts", "wisdom/getKnowledgeBase.ts", + "wisdom/getMessageTemplate.ts", + "wisdom/getMessageTemplateVersion.ts", "wisdom/index.ts", "wisdom/knowledgeBase.ts", + "wisdom/messageTemplate.ts", + "wisdom/messageTemplateVersion.ts", "workspaces/connectionAlias.ts", "workspaces/getConnectionAlias.ts", "workspaces/getWorkspacesPool.ts", diff --git a/sdk/nodejs/types/enums/chatbot/index.ts b/sdk/nodejs/types/enums/chatbot/index.ts new file mode 100644 index 0000000000..24c09d2286 --- /dev/null +++ b/sdk/nodejs/types/enums/chatbot/index.ts @@ -0,0 +1,10 @@ +// *** 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 CustomActionAttachmentCriteriaOperator = { + HasValue: "HAS_VALUE", + Equals: "EQUALS", +} as const; + +export type CustomActionAttachmentCriteriaOperator = (typeof CustomActionAttachmentCriteriaOperator)[keyof typeof CustomActionAttachmentCriteriaOperator]; diff --git a/sdk/nodejs/types/enums/cloudtrail/index.ts b/sdk/nodejs/types/enums/cloudtrail/index.ts index a8831d57ef..5c5eeb1102 100644 --- a/sdk/nodejs/types/enums/cloudtrail/index.ts +++ b/sdk/nodejs/types/enums/cloudtrail/index.ts @@ -11,6 +11,49 @@ export const ChannelDestinationType = { */ export type ChannelDestinationType = (typeof ChannelDestinationType)[keyof typeof ChannelDestinationType]; +export const DashboardRefreshScheduleFrequencyPropertiesUnit = { + Hours: "HOURS", + Days: "DAYS", +} as const; + +/** + * The frequency unit. Supported values are HOURS and DAYS. + */ +export type DashboardRefreshScheduleFrequencyPropertiesUnit = (typeof DashboardRefreshScheduleFrequencyPropertiesUnit)[keyof typeof DashboardRefreshScheduleFrequencyPropertiesUnit]; + +export const DashboardRefreshScheduleStatus = { + Enabled: "ENABLED", + Disabled: "DISABLED", +} as const; + +/** + * The status of the schedule. Supported values are ENABLED and DISABLED. + */ +export type DashboardRefreshScheduleStatus = (typeof DashboardRefreshScheduleStatus)[keyof typeof DashboardRefreshScheduleStatus]; + +export const DashboardStatus = { + Creating: "CREATING", + Created: "CREATED", + Updating: "UPDATING", + Updated: "UPDATED", + Deleting: "DELETING", +} as const; + +/** + * The status of the dashboard. Values are CREATING, CREATED, UPDATING, UPDATED and DELETING. + */ +export type DashboardStatus = (typeof DashboardStatus)[keyof typeof DashboardStatus]; + +export const DashboardType = { + Managed: "MANAGED", + Custom: "CUSTOM", +} as const; + +/** + * The type of the dashboard. Values are CUSTOM and MANAGED. + */ +export type DashboardType = (typeof DashboardType)[keyof typeof DashboardType]; + export const TrailEventSelectorReadWriteType = { All: "All", ReadOnly: "ReadOnly", diff --git a/sdk/nodejs/types/enums/ecs/index.ts b/sdk/nodejs/types/enums/ecs/index.ts index 3fa154cdd2..79de6d0d36 100644 --- a/sdk/nodejs/types/enums/ecs/index.ts +++ b/sdk/nodejs/types/enums/ecs/index.ts @@ -63,6 +63,11 @@ export const ServiceAvailabilityZoneRebalancing = { Disabled: "DISABLED", } as const; +/** + * Indicates whether to use Availability Zone rebalancing for the service. + * + * For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* . + */ export type ServiceAvailabilityZoneRebalancing = (typeof ServiceAvailabilityZoneRebalancing)[keyof typeof ServiceAvailabilityZoneRebalancing]; export const ServiceAwsVpcConfigurationAssignPublicIp = { diff --git a/sdk/nodejs/types/enums/index.ts b/sdk/nodejs/types/enums/index.ts index a61cf9d950..b4fadedef3 100644 --- a/sdk/nodejs/types/enums/index.ts +++ b/sdk/nodejs/types/enums/index.ts @@ -22,6 +22,7 @@ import * as bedrock from "./bedrock"; import * as budgets from "./budgets"; import * as cassandra from "./cassandra"; import * as ce from "./ce"; +import * as chatbot from "./chatbot"; import * as cleanrooms from "./cleanrooms"; import * as cleanroomsml from "./cleanroomsml"; import * as cloudformation from "./cloudformation"; @@ -193,6 +194,7 @@ export { budgets, cassandra, ce, + chatbot, cleanrooms, cleanroomsml, cloudformation, diff --git a/sdk/nodejs/types/enums/resourcegroups/index.ts b/sdk/nodejs/types/enums/resourcegroups/index.ts index 19996ee139..0e93cdb0ed 100644 --- a/sdk/nodejs/types/enums/resourcegroups/index.ts +++ b/sdk/nodejs/types/enums/resourcegroups/index.ts @@ -14,3 +14,13 @@ export const GroupResourceQueryType = { * - `CLOUDFORMATION_STACK_1_0` , the default, indicates that the group is a CloudFormation stack-based group. Group membership is based on the CloudFormation stack. You must specify the `StackIdentifier` property in the query to define which stack to associate the group with, or leave it empty to default to the stack where the group is defined. */ export type GroupResourceQueryType = (typeof GroupResourceQueryType)[keyof typeof GroupResourceQueryType]; + +export const TagSyncTaskStatus = { + Active: "ACTIVE", + Error: "ERROR", +} as const; + +/** + * The status of the TagSyncTask + */ +export type TagSyncTaskStatus = (typeof TagSyncTaskStatus)[keyof typeof TagSyncTaskStatus]; diff --git a/sdk/nodejs/types/enums/s3express/index.ts b/sdk/nodejs/types/enums/s3express/index.ts index 89e2311121..dd0cdde51d 100644 --- a/sdk/nodejs/types/enums/s3express/index.ts +++ b/sdk/nodejs/types/enums/s3express/index.ts @@ -16,6 +16,9 @@ export const DirectoryBucketRuleStatus = { Disabled: "Disabled", } as const; +/** + * If `Enabled` , the rule is currently being applied. If `Disabled` , the rule is not currently being applied. + */ export type DirectoryBucketRuleStatus = (typeof DirectoryBucketRuleStatus)[keyof typeof DirectoryBucketRuleStatus]; export const DirectoryBucketServerSideEncryptionByDefaultSseAlgorithm = { diff --git a/sdk/nodejs/types/enums/wisdom/index.ts b/sdk/nodejs/types/enums/wisdom/index.ts index 45149f2ef4..9dfb04ca09 100644 --- a/sdk/nodejs/types/enums/wisdom/index.ts +++ b/sdk/nodejs/types/enums/wisdom/index.ts @@ -62,3 +62,13 @@ export const KnowledgeBaseType = { } as const; export type KnowledgeBaseType = (typeof KnowledgeBaseType)[keyof typeof KnowledgeBaseType]; + +export const MessageTemplateChannelSubtype = { + Email: "EMAIL", + Sms: "SMS", +} as const; + +/** + * The channel subtype this message template applies to. + */ +export type MessageTemplateChannelSubtype = (typeof MessageTemplateChannelSubtype)[keyof typeof MessageTemplateChannelSubtype]; diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index fc1775ed28..12a15602f1 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -6616,20 +6616,45 @@ export namespace autoscaling { } export interface AutoScalingGroupBaselinePerformanceFactorsRequestArgs { + /** + * The CPU performance to consider, using an instance family as the baseline reference. + */ cpu?: pulumi.Input; } export interface AutoScalingGroupCapacityReservationSpecificationArgs { + /** + * The capacity reservation preference. The following options are available: + * + * - `capacity-reservations-only` - Auto Scaling will only launch instances into a Capacity Reservation or Capacity Reservation resource group. If capacity isn't available, instances will fail to launch. + * - `capacity-reservations-first` - Auto Scaling will try to launch instances into a Capacity Reservation or Capacity Reservation resource group first. If capacity isn't available, instances will run in On-Demand capacity. + * - `none` - Auto Scaling will not launch instances into a Capacity Reservation. Instances will run in On-Demand capacity. + * - `default` - Auto Scaling uses the Capacity Reservation preference from your launch template or an open Capacity Reservation. + */ capacityReservationPreference: pulumi.Input; + /** + * Describes a target Capacity Reservation or Capacity Reservation resource group. + */ capacityReservationTarget?: pulumi.Input; } export interface AutoScalingGroupCapacityReservationTargetArgs { + /** + * The Capacity Reservation IDs to launch instances into. + */ capacityReservationIds?: pulumi.Input[]>; + /** + * The resource group ARNs of the Capacity Reservation to launch instances into. + */ capacityReservationResourceGroupArns?: pulumi.Input[]>; } export interface AutoScalingGroupCpuPerformanceFactorRequestArgs { + /** + * Specify an instance family to use as the baseline reference for CPU performance. All instance types that match your specified attributes will be compared against the CPU performance of the referenced instance family, regardless of CPU manufacturer or architecture differences. + * + * > Currently only one instance family can be specified in the list. + */ references?: pulumi.Input[]>; } @@ -6723,6 +6748,9 @@ export namespace autoscaling { * Default: No minimum or maximum limits */ baselineEbsBandwidthMbps?: pulumi.Input; + /** + * The baseline performance factors for the instance requirements. + */ baselinePerformanceFactors?: pulumi.Input; /** * Indicates whether burstable performance instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*. @@ -11741,6 +11769,23 @@ export namespace certificatemanager { } export namespace chatbot { + export interface CustomActionAttachmentArgs { + buttonText?: pulumi.Input; + criteria?: pulumi.Input[]>; + notificationType?: pulumi.Input; + variables?: pulumi.Input<{[key: string]: pulumi.Input}>; + } + + export interface CustomActionAttachmentCriteriaArgs { + operator: pulumi.Input; + value?: pulumi.Input; + variableName: pulumi.Input; + } + + export interface CustomActionDefinitionArgs { + commandText: pulumi.Input; + } + } export namespace cleanrooms { @@ -14146,6 +14191,50 @@ export namespace cloudtrail { type: pulumi.Input; } + /** + * Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + */ + export interface DashboardRefreshScheduleArgs { + frequency?: pulumi.Input; + /** + * The status of the schedule. Supported values are ENABLED and DISABLED. + */ + status?: pulumi.Input; + /** + * StartTime of the automatic schedule refresh. + */ + timeOfDay?: pulumi.Input; + } + + export interface DashboardRefreshScheduleFrequencyPropertiesArgs { + /** + * The frequency unit. Supported values are HOURS and DAYS. + */ + unit: pulumi.Input; + /** + * The frequency value. + */ + value: pulumi.Input; + } + + /** + * The dashboard widget + */ + export interface DashboardWidgetArgs { + /** + * The placeholder keys in the QueryStatement. For example: $StartTime$, $EndTime$, $Period$. + */ + queryParameters?: pulumi.Input[]>; + /** + * The SQL query statement on one or more event data stores. + */ + queryStatement: pulumi.Input; + /** + * The view properties of the widget. + */ + viewProperties?: pulumi.Input<{[key: string]: pulumi.Input}>; + } + /** * Advanced event selectors let you create fine-grained selectors for the following AWS CloudTrail event record fields. They help you control costs by logging only those events that are important to you. */ @@ -18319,9 +18408,21 @@ export namespace customerprofiles { * An array that defines the set of segment criteria to evaluate when handling segment groups for the segment. */ export interface SegmentDefinitionGroupArgs { + /** + * Defines the attributes to segment on. + */ dimensions?: pulumi.Input[]>; + /** + * Defines the starting source of data. + */ sourceSegments?: pulumi.Input[]>; + /** + * Defines how to interact with the source data. + */ sourceType?: pulumi.Input; + /** + * Defines how to interact with the profiles found in the current filtering. + */ type?: pulumi.Input; } @@ -18379,7 +18480,13 @@ export namespace customerprofiles { } export interface SegmentDefinitionSegmentGroupArgs { + /** + * Holds the list of groups within the segment definition. + */ groups?: pulumi.Input[]>; + /** + * Defines whether to include or exclude the profiles that fit the segment criteria. + */ include?: pulumi.Input; } @@ -18387,6 +18494,9 @@ export namespace customerprofiles { * The base segment to build the segment on. */ export interface SegmentDefinitionSourceSegmentArgs { + /** + * The name of the source segment. + */ segmentDefinitionName?: pulumi.Input; } @@ -26488,7 +26598,7 @@ export namespace ecs { * ``[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]`` * You don't include the double quotes and brackets when you use the AWS Management Console. * ``CMD-SHELL, curl -f http://localhost/ || exit 1`` - * An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command + * An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command. */ command?: pulumi.Input[]>; /** @@ -26743,8 +26853,7 @@ export namespace ecs { */ hostPort?: pulumi.Input; /** - * The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. - * For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. + * The name that's used for the port mapping. This parameter is the name that you use in the ``serviceConnectConfiguration`` and the ``vpcLatticeConfigurations`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. */ name?: pulumi.Input; /** @@ -28089,7 +28198,7 @@ export namespace elasticloadbalancingv2 { */ port?: pulumi.Input; /** - * The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. + * The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. */ protocol?: pulumi.Input; /** @@ -28376,7 +28485,7 @@ export namespace elasticloadbalancingv2 { */ port?: pulumi.Input; /** - * The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. + * The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. */ protocol?: pulumi.Input; /** @@ -28521,7 +28630,7 @@ export namespace elasticloadbalancingv2 { * The name of the attribute. * The following attributes are supported by all load balancers: * + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``. - * + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and cannot be changed. + * + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and can't be changed. * * The following attributes are supported by both Application Load Balancers and Network Load Balancers: * + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``. @@ -28559,6 +28668,10 @@ export namespace elasticloadbalancingv2 { value?: pulumi.Input; } + export interface LoadBalancerMinimumLoadBalancerCapacityArgs { + capacityUnits: pulumi.Input; + } + /** * Specifies a subnet for a load balancer. */ @@ -28576,7 +28689,7 @@ export namespace elasticloadbalancingv2 { */ privateIPv4Address?: pulumi.Input; /** - * [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. + * [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or ``auto_assigned`` to use an IPv6 prefix selected at random from the subnet CIDR block. */ sourceNatIpv6Prefix?: pulumi.Input; /** @@ -83247,10 +83360,21 @@ export namespace s3express { export interface DirectoryBucketRuleArgs { abortIncompleteMultipartUpload?: pulumi.Input; expirationInDays?: pulumi.Input; + /** + * Unique identifier for the rule. The value can't be longer than 255 characters. + */ id?: pulumi.Input; objectSizeGreaterThan?: pulumi.Input; objectSizeLessThan?: pulumi.Input; + /** + * Object key prefix that identifies one or more objects to which this rule applies. + * + * > Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) . + */ prefix?: pulumi.Input; + /** + * If `Enabled` , the rule is currently being applied. If `Disabled` , the rule is not currently being applied. + */ status: pulumi.Input; } @@ -95800,6 +95924,379 @@ export namespace wisdom { appIntegrations?: pulumi.Input; } + /** + * The agent attributes that are used with the message template. + */ + export interface MessageTemplateAgentAttributesArgs { + /** + * The agent’s first name as entered in their Amazon Connect user account. + */ + firstName?: pulumi.Input; + /** + * The agent’s last name as entered in their Amazon Connect user account. + */ + lastName?: pulumi.Input; + } + + /** + * An object that specifies the default values to use for variables in the message template. This object contains different categories of key-value pairs. Each key defines a variable or placeholder in the message template. The corresponding value defines the default value for that variable. + */ + export interface MessageTemplateAttributesArgs { + agentAttributes?: pulumi.Input; + customAttributes?: pulumi.Input<{[key: string]: pulumi.Input}>; + customerProfileAttributes?: pulumi.Input; + systemAttributes?: pulumi.Input; + } + + /** + * The container of message template body. + */ + export interface MessageTemplateBodyContentProviderArgs { + content?: pulumi.Input; + } + + /** + * The content of the message template. + */ + export interface MessageTemplateContentArgs { + emailMessageTemplateContent?: pulumi.Input; + smsMessageTemplateContent?: pulumi.Input; + } + + /** + * The customer profile attributes that are used with the message template. + */ + export interface MessageTemplateCustomerProfileAttributesArgs { + /** + * A unique account number that you have given to the customer. + */ + accountNumber?: pulumi.Input; + /** + * Any additional information relevant to the customer's profile. + */ + additionalInformation?: pulumi.Input; + /** + * The first line of a customer address. + */ + address1?: pulumi.Input; + /** + * The second line of a customer address. + */ + address2?: pulumi.Input; + /** + * The third line of a customer address. + */ + address3?: pulumi.Input; + /** + * The fourth line of a customer address. + */ + address4?: pulumi.Input; + /** + * The first line of a customer’s billing address. + */ + billingAddress1?: pulumi.Input; + /** + * The second line of a customer’s billing address. + */ + billingAddress2?: pulumi.Input; + /** + * The third line of a customer’s billing address. + */ + billingAddress3?: pulumi.Input; + /** + * The fourth line of a customer’s billing address. + */ + billingAddress4?: pulumi.Input; + /** + * The city of a customer’s billing address. + */ + billingCity?: pulumi.Input; + /** + * The country of a customer’s billing address. + */ + billingCountry?: pulumi.Input; + /** + * The county of a customer’s billing address. + */ + billingCounty?: pulumi.Input; + /** + * The postal code of a customer’s billing address. + */ + billingPostalCode?: pulumi.Input; + /** + * The province of a customer’s billing address. + */ + billingProvince?: pulumi.Input; + /** + * The state of a customer’s billing address. + */ + billingState?: pulumi.Input; + /** + * The customer's birth date. + */ + birthDate?: pulumi.Input; + /** + * The customer's business email address. + */ + businessEmailAddress?: pulumi.Input; + /** + * The name of the customer's business. + */ + businessName?: pulumi.Input; + /** + * The customer's business phone number. + */ + businessPhoneNumber?: pulumi.Input; + /** + * The city in which a customer lives. + */ + city?: pulumi.Input; + /** + * The country in which a customer lives. + */ + country?: pulumi.Input; + /** + * The county in which a customer lives. + */ + county?: pulumi.Input; + custom?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The customer's email address, which has not been specified as a personal or business address. + */ + emailAddress?: pulumi.Input; + /** + * The customer's first name. + */ + firstName?: pulumi.Input; + /** + * The customer's gender. + */ + gender?: pulumi.Input; + /** + * The customer's home phone number. + */ + homePhoneNumber?: pulumi.Input; + /** + * The customer's last name. + */ + lastName?: pulumi.Input; + /** + * The first line of a customer’s mailing address. + */ + mailingAddress1?: pulumi.Input; + /** + * The second line of a customer’s mailing address. + */ + mailingAddress2?: pulumi.Input; + /** + * The third line of a customer’s mailing address. + */ + mailingAddress3?: pulumi.Input; + /** + * The fourth line of a customer’s mailing address. + */ + mailingAddress4?: pulumi.Input; + /** + * The city of a customer’s mailing address. + */ + mailingCity?: pulumi.Input; + /** + * The country of a customer’s mailing address. + */ + mailingCountry?: pulumi.Input; + /** + * The county of a customer’s mailing address. + */ + mailingCounty?: pulumi.Input; + /** + * The postal code of a customer’s mailing address + */ + mailingPostalCode?: pulumi.Input; + /** + * The province of a customer’s mailing address. + */ + mailingProvince?: pulumi.Input; + /** + * The state of a customer’s mailing address. + */ + mailingState?: pulumi.Input; + /** + * The customer's middle name. + */ + middleName?: pulumi.Input; + /** + * The customer's mobile phone number. + */ + mobilePhoneNumber?: pulumi.Input; + /** + * The customer's party type. + */ + partyType?: pulumi.Input; + /** + * The customer's phone number, which has not been specified as a mobile, home, or business number. + */ + phoneNumber?: pulumi.Input; + /** + * The postal code of a customer address. + */ + postalCode?: pulumi.Input; + /** + * The ARN of a customer profile. + */ + profileArn?: pulumi.Input; + /** + * The unique identifier of a customer profile. + */ + profileId?: pulumi.Input; + /** + * The province in which a customer lives. + */ + province?: pulumi.Input; + /** + * The first line of a customer’s shipping address. + */ + shippingAddress1?: pulumi.Input; + /** + * The second line of a customer’s shipping address. + */ + shippingAddress2?: pulumi.Input; + /** + * The third line of a customer’s shipping address. + */ + shippingAddress3?: pulumi.Input; + /** + * The fourth line of a customer’s shipping address + */ + shippingAddress4?: pulumi.Input; + /** + * The city of a customer’s shipping address. + */ + shippingCity?: pulumi.Input; + /** + * The country of a customer’s shipping address. + */ + shippingCountry?: pulumi.Input; + /** + * The county of a customer’s shipping address. + */ + shippingCounty?: pulumi.Input; + /** + * The postal code of a customer’s shipping address. + */ + shippingPostalCode?: pulumi.Input; + /** + * The province of a customer’s shipping address. + */ + shippingProvince?: pulumi.Input; + /** + * The state of a customer’s shipping address. + */ + shippingState?: pulumi.Input; + /** + * The state in which a customer lives. + */ + state?: pulumi.Input; + } + + /** + * The content of message template that applies to email channel subtype. + */ + export interface MessageTemplateEmailMessageTemplateContentArgs { + body: pulumi.Input; + /** + * The email headers to include in email messages. + */ + headers: pulumi.Input[]>; + /** + * The subject line, or title, to use in email messages. + */ + subject: pulumi.Input; + } + + /** + * The body to use in email messages. + */ + export interface MessageTemplateEmailMessageTemplateContentBodyArgs { + /** + * The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + */ + html?: pulumi.Input; + /** + * The message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + */ + plainText?: pulumi.Input; + } + + /** + * The email header to include in email messages. + */ + export interface MessageTemplateEmailMessageTemplateHeaderArgs { + /** + * The name of the email header. + */ + name?: pulumi.Input; + /** + * The value of the email header. + */ + value?: pulumi.Input; + } + + /** + * The configuration information of the user groups that the message template is accessible to. + */ + export interface MessageTemplateGroupingConfigurationArgs { + /** + * The criteria used for grouping Amazon Q in Connect users. + */ + criteria: pulumi.Input; + /** + * The list of values that define different groups of Amazon Q in Connect users. + */ + values: pulumi.Input[]>; + } + + /** + * The content of message template that applies to SMS channel subtype. + */ + export interface MessageTemplateSmsMessageTemplateContentArgs { + body: pulumi.Input; + } + + /** + * The body to use in SMS messages. + */ + export interface MessageTemplateSmsMessageTemplateContentBodyArgs { + plainText?: pulumi.Input; + } + + /** + * The system attributes that are used with the message template. + */ + export interface MessageTemplateSystemAttributesArgs { + /** + * The CustomerEndpoint attribute. + */ + customerEndpoint?: pulumi.Input; + /** + * The name of the task. + */ + name?: pulumi.Input; + /** + * The SystemEndpoint attribute. + */ + systemEndpoint?: pulumi.Input; + } + + /** + * The system endpoint attributes that are used with the message template. + */ + export interface MessageTemplateSystemEndpointAttributesArgs { + /** + * The customer's phone number if used with customerEndpoint, or the number the customer dialed to call your contact center if used with systemEndpoint. + */ + address?: pulumi.Input; + } + } export namespace workspaces { diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 56454d41bb..3223aa73ac 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -6534,20 +6534,45 @@ export namespace autoscaling { } export interface AutoScalingGroupBaselinePerformanceFactorsRequest { + /** + * The CPU performance to consider, using an instance family as the baseline reference. + */ cpu?: outputs.autoscaling.AutoScalingGroupCpuPerformanceFactorRequest; } export interface AutoScalingGroupCapacityReservationSpecification { + /** + * The capacity reservation preference. The following options are available: + * + * - `capacity-reservations-only` - Auto Scaling will only launch instances into a Capacity Reservation or Capacity Reservation resource group. If capacity isn't available, instances will fail to launch. + * - `capacity-reservations-first` - Auto Scaling will try to launch instances into a Capacity Reservation or Capacity Reservation resource group first. If capacity isn't available, instances will run in On-Demand capacity. + * - `none` - Auto Scaling will not launch instances into a Capacity Reservation. Instances will run in On-Demand capacity. + * - `default` - Auto Scaling uses the Capacity Reservation preference from your launch template or an open Capacity Reservation. + */ capacityReservationPreference: string; + /** + * Describes a target Capacity Reservation or Capacity Reservation resource group. + */ capacityReservationTarget?: outputs.autoscaling.AutoScalingGroupCapacityReservationTarget; } export interface AutoScalingGroupCapacityReservationTarget { + /** + * The Capacity Reservation IDs to launch instances into. + */ capacityReservationIds?: string[]; + /** + * The resource group ARNs of the Capacity Reservation to launch instances into. + */ capacityReservationResourceGroupArns?: string[]; } export interface AutoScalingGroupCpuPerformanceFactorRequest { + /** + * Specify an instance family to use as the baseline reference for CPU performance. All instance types that match your specified attributes will be compared against the CPU performance of the referenced instance family, regardless of CPU manufacturer or architecture differences. + * + * > Currently only one instance family can be specified in the list. + */ references?: outputs.autoscaling.AutoScalingGroupPerformanceFactorReferenceRequest[]; } @@ -6641,6 +6666,9 @@ export namespace autoscaling { * Default: No minimum or maximum limits */ baselineEbsBandwidthMbps?: outputs.autoscaling.AutoScalingGroupBaselineEbsBandwidthMbpsRequest; + /** + * The baseline performance factors for the instance requirements. + */ baselinePerformanceFactors?: outputs.autoscaling.AutoScalingGroupBaselinePerformanceFactorsRequest; /** * Indicates whether burstable performance instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*. @@ -12275,6 +12303,23 @@ export namespace certificatemanager { } export namespace chatbot { + export interface CustomActionAttachment { + buttonText?: string; + criteria?: outputs.chatbot.CustomActionAttachmentCriteria[]; + notificationType?: string; + variables?: {[key: string]: string}; + } + + export interface CustomActionAttachmentCriteria { + operator: enums.chatbot.CustomActionAttachmentCriteriaOperator; + value?: string; + variableName: string; + } + + export interface CustomActionDefinition { + commandText: string; + } + } export namespace cleanrooms { @@ -14740,6 +14785,50 @@ export namespace cloudtrail { type: enums.cloudtrail.ChannelDestinationType; } + /** + * Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + */ + export interface DashboardRefreshSchedule { + frequency?: outputs.cloudtrail.DashboardRefreshScheduleFrequencyProperties; + /** + * The status of the schedule. Supported values are ENABLED and DISABLED. + */ + status?: enums.cloudtrail.DashboardRefreshScheduleStatus; + /** + * StartTime of the automatic schedule refresh. + */ + timeOfDay?: string; + } + + export interface DashboardRefreshScheduleFrequencyProperties { + /** + * The frequency unit. Supported values are HOURS and DAYS. + */ + unit: enums.cloudtrail.DashboardRefreshScheduleFrequencyPropertiesUnit; + /** + * The frequency value. + */ + value: number; + } + + /** + * The dashboard widget + */ + export interface DashboardWidget { + /** + * The placeholder keys in the QueryStatement. For example: $StartTime$, $EndTime$, $Period$. + */ + queryParameters?: string[]; + /** + * The SQL query statement on one or more event data stores. + */ + queryStatement: string; + /** + * The view properties of the widget. + */ + viewProperties?: {[key: string]: string}; + } + /** * Advanced event selectors let you create fine-grained selectors for the following AWS CloudTrail event record fields. They help you control costs by logging only those events that are important to you. */ @@ -19068,9 +19157,21 @@ export namespace customerprofiles { * An array that defines the set of segment criteria to evaluate when handling segment groups for the segment. */ export interface SegmentDefinitionGroup { + /** + * Defines the attributes to segment on. + */ dimensions?: (outputs.customerprofiles.SegmentDefinitionDimension0Properties | outputs.customerprofiles.SegmentDefinitionDimension1Properties)[]; + /** + * Defines the starting source of data. + */ sourceSegments?: outputs.customerprofiles.SegmentDefinitionSourceSegment[]; + /** + * Defines how to interact with the source data. + */ sourceType?: enums.customerprofiles.SegmentDefinitionIncludeOptions; + /** + * Defines how to interact with the profiles found in the current filtering. + */ type?: enums.customerprofiles.SegmentDefinitionIncludeOptions; } @@ -19128,7 +19229,13 @@ export namespace customerprofiles { } export interface SegmentDefinitionSegmentGroup { + /** + * Holds the list of groups within the segment definition. + */ groups?: outputs.customerprofiles.SegmentDefinitionGroup[]; + /** + * Defines whether to include or exclude the profiles that fit the segment criteria. + */ include?: enums.customerprofiles.SegmentDefinitionIncludeOptions; } @@ -19136,6 +19243,9 @@ export namespace customerprofiles { * The base segment to build the segment on. */ export interface SegmentDefinitionSourceSegment { + /** + * The name of the source segment. + */ segmentDefinitionName?: string; } @@ -27845,7 +27955,7 @@ export namespace ecs { * ``[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]`` * You don't include the double quotes and brackets when you use the AWS Management Console. * ``CMD-SHELL, curl -f http://localhost/ || exit 1`` - * An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command + * An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command. */ command?: string[]; /** @@ -28100,8 +28210,7 @@ export namespace ecs { */ hostPort?: number; /** - * The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. - * For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. + * The name that's used for the port mapping. This parameter is the name that you use in the ``serviceConnectConfiguration`` and the ``vpcLatticeConfigurations`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. */ name?: string; /** @@ -29448,7 +29557,7 @@ export namespace elasticloadbalancingv2 { */ port?: string; /** - * The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. + * The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. */ protocol?: string; /** @@ -29735,7 +29844,7 @@ export namespace elasticloadbalancingv2 { */ port?: string; /** - * The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. + * The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. */ protocol?: string; /** @@ -29880,7 +29989,7 @@ export namespace elasticloadbalancingv2 { * The name of the attribute. * The following attributes are supported by all load balancers: * + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``. - * + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and cannot be changed. + * + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and can't be changed. * * The following attributes are supported by both Application Load Balancers and Network Load Balancers: * + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``. @@ -29918,6 +30027,10 @@ export namespace elasticloadbalancingv2 { value?: string; } + export interface LoadBalancerMinimumLoadBalancerCapacity { + capacityUnits: number; + } + /** * Specifies a subnet for a load balancer. */ @@ -29935,7 +30048,7 @@ export namespace elasticloadbalancingv2 { */ privateIPv4Address?: string; /** - * [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. + * [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or ``auto_assigned`` to use an IPv6 prefix selected at random from the subnet CIDR block. */ sourceNatIpv6Prefix?: string; /** @@ -85584,10 +85697,21 @@ export namespace s3express { export interface DirectoryBucketRule { abortIncompleteMultipartUpload?: outputs.s3express.DirectoryBucketAbortIncompleteMultipartUpload; expirationInDays?: number; + /** + * Unique identifier for the rule. The value can't be longer than 255 characters. + */ id?: string; objectSizeGreaterThan?: string; objectSizeLessThan?: string; + /** + * Object key prefix that identifies one or more objects to which this rule applies. + * + * > Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) . + */ prefix?: string; + /** + * If `Enabled` , the rule is currently being applied. If `Disabled` , the rule is not currently being applied. + */ status: enums.s3express.DirectoryBucketRuleStatus; } @@ -98255,6 +98379,379 @@ export namespace wisdom { appIntegrations?: outputs.wisdom.KnowledgeBaseAppIntegrationsConfiguration; } + /** + * The agent attributes that are used with the message template. + */ + export interface MessageTemplateAgentAttributes { + /** + * The agent’s first name as entered in their Amazon Connect user account. + */ + firstName?: string; + /** + * The agent’s last name as entered in their Amazon Connect user account. + */ + lastName?: string; + } + + /** + * An object that specifies the default values to use for variables in the message template. This object contains different categories of key-value pairs. Each key defines a variable or placeholder in the message template. The corresponding value defines the default value for that variable. + */ + export interface MessageTemplateAttributes { + agentAttributes?: outputs.wisdom.MessageTemplateAgentAttributes; + customAttributes?: {[key: string]: string}; + customerProfileAttributes?: outputs.wisdom.MessageTemplateCustomerProfileAttributes; + systemAttributes?: outputs.wisdom.MessageTemplateSystemAttributes; + } + + /** + * The container of message template body. + */ + export interface MessageTemplateBodyContentProvider { + content?: string; + } + + /** + * The content of the message template. + */ + export interface MessageTemplateContent { + emailMessageTemplateContent?: outputs.wisdom.MessageTemplateEmailMessageTemplateContent; + smsMessageTemplateContent?: outputs.wisdom.MessageTemplateSmsMessageTemplateContent; + } + + /** + * The customer profile attributes that are used with the message template. + */ + export interface MessageTemplateCustomerProfileAttributes { + /** + * A unique account number that you have given to the customer. + */ + accountNumber?: string; + /** + * Any additional information relevant to the customer's profile. + */ + additionalInformation?: string; + /** + * The first line of a customer address. + */ + address1?: string; + /** + * The second line of a customer address. + */ + address2?: string; + /** + * The third line of a customer address. + */ + address3?: string; + /** + * The fourth line of a customer address. + */ + address4?: string; + /** + * The first line of a customer’s billing address. + */ + billingAddress1?: string; + /** + * The second line of a customer’s billing address. + */ + billingAddress2?: string; + /** + * The third line of a customer’s billing address. + */ + billingAddress3?: string; + /** + * The fourth line of a customer’s billing address. + */ + billingAddress4?: string; + /** + * The city of a customer’s billing address. + */ + billingCity?: string; + /** + * The country of a customer’s billing address. + */ + billingCountry?: string; + /** + * The county of a customer’s billing address. + */ + billingCounty?: string; + /** + * The postal code of a customer’s billing address. + */ + billingPostalCode?: string; + /** + * The province of a customer’s billing address. + */ + billingProvince?: string; + /** + * The state of a customer’s billing address. + */ + billingState?: string; + /** + * The customer's birth date. + */ + birthDate?: string; + /** + * The customer's business email address. + */ + businessEmailAddress?: string; + /** + * The name of the customer's business. + */ + businessName?: string; + /** + * The customer's business phone number. + */ + businessPhoneNumber?: string; + /** + * The city in which a customer lives. + */ + city?: string; + /** + * The country in which a customer lives. + */ + country?: string; + /** + * The county in which a customer lives. + */ + county?: string; + custom?: {[key: string]: string}; + /** + * The customer's email address, which has not been specified as a personal or business address. + */ + emailAddress?: string; + /** + * The customer's first name. + */ + firstName?: string; + /** + * The customer's gender. + */ + gender?: string; + /** + * The customer's home phone number. + */ + homePhoneNumber?: string; + /** + * The customer's last name. + */ + lastName?: string; + /** + * The first line of a customer’s mailing address. + */ + mailingAddress1?: string; + /** + * The second line of a customer’s mailing address. + */ + mailingAddress2?: string; + /** + * The third line of a customer’s mailing address. + */ + mailingAddress3?: string; + /** + * The fourth line of a customer’s mailing address. + */ + mailingAddress4?: string; + /** + * The city of a customer’s mailing address. + */ + mailingCity?: string; + /** + * The country of a customer’s mailing address. + */ + mailingCountry?: string; + /** + * The county of a customer’s mailing address. + */ + mailingCounty?: string; + /** + * The postal code of a customer’s mailing address + */ + mailingPostalCode?: string; + /** + * The province of a customer’s mailing address. + */ + mailingProvince?: string; + /** + * The state of a customer’s mailing address. + */ + mailingState?: string; + /** + * The customer's middle name. + */ + middleName?: string; + /** + * The customer's mobile phone number. + */ + mobilePhoneNumber?: string; + /** + * The customer's party type. + */ + partyType?: string; + /** + * The customer's phone number, which has not been specified as a mobile, home, or business number. + */ + phoneNumber?: string; + /** + * The postal code of a customer address. + */ + postalCode?: string; + /** + * The ARN of a customer profile. + */ + profileArn?: string; + /** + * The unique identifier of a customer profile. + */ + profileId?: string; + /** + * The province in which a customer lives. + */ + province?: string; + /** + * The first line of a customer’s shipping address. + */ + shippingAddress1?: string; + /** + * The second line of a customer’s shipping address. + */ + shippingAddress2?: string; + /** + * The third line of a customer’s shipping address. + */ + shippingAddress3?: string; + /** + * The fourth line of a customer’s shipping address + */ + shippingAddress4?: string; + /** + * The city of a customer’s shipping address. + */ + shippingCity?: string; + /** + * The country of a customer’s shipping address. + */ + shippingCountry?: string; + /** + * The county of a customer’s shipping address. + */ + shippingCounty?: string; + /** + * The postal code of a customer’s shipping address. + */ + shippingPostalCode?: string; + /** + * The province of a customer’s shipping address. + */ + shippingProvince?: string; + /** + * The state of a customer’s shipping address. + */ + shippingState?: string; + /** + * The state in which a customer lives. + */ + state?: string; + } + + /** + * The content of message template that applies to email channel subtype. + */ + export interface MessageTemplateEmailMessageTemplateContent { + body: outputs.wisdom.MessageTemplateEmailMessageTemplateContentBody; + /** + * The email headers to include in email messages. + */ + headers: outputs.wisdom.MessageTemplateEmailMessageTemplateHeader[]; + /** + * The subject line, or title, to use in email messages. + */ + subject: string; + } + + /** + * The body to use in email messages. + */ + export interface MessageTemplateEmailMessageTemplateContentBody { + /** + * The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + */ + html?: outputs.wisdom.MessageTemplateBodyContentProvider; + /** + * The message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + */ + plainText?: outputs.wisdom.MessageTemplateBodyContentProvider; + } + + /** + * The email header to include in email messages. + */ + export interface MessageTemplateEmailMessageTemplateHeader { + /** + * The name of the email header. + */ + name?: string; + /** + * The value of the email header. + */ + value?: string; + } + + /** + * The configuration information of the user groups that the message template is accessible to. + */ + export interface MessageTemplateGroupingConfiguration { + /** + * The criteria used for grouping Amazon Q in Connect users. + */ + criteria: string; + /** + * The list of values that define different groups of Amazon Q in Connect users. + */ + values: string[]; + } + + /** + * The content of message template that applies to SMS channel subtype. + */ + export interface MessageTemplateSmsMessageTemplateContent { + body: outputs.wisdom.MessageTemplateSmsMessageTemplateContentBody; + } + + /** + * The body to use in SMS messages. + */ + export interface MessageTemplateSmsMessageTemplateContentBody { + plainText?: outputs.wisdom.MessageTemplateBodyContentProvider; + } + + /** + * The system attributes that are used with the message template. + */ + export interface MessageTemplateSystemAttributes { + /** + * The CustomerEndpoint attribute. + */ + customerEndpoint?: outputs.wisdom.MessageTemplateSystemEndpointAttributes; + /** + * The name of the task. + */ + name?: string; + /** + * The SystemEndpoint attribute. + */ + systemEndpoint?: outputs.wisdom.MessageTemplateSystemEndpointAttributes; + } + + /** + * The system endpoint attributes that are used with the message template. + */ + export interface MessageTemplateSystemEndpointAttributes { + /** + * The customer's phone number if used with customerEndpoint, or the number the customer dialed to call your contact center if used with systemEndpoint. + */ + address?: string; + } + } export namespace workspaces { diff --git a/sdk/nodejs/wisdom/getMessageTemplate.ts b/sdk/nodejs/wisdom/getMessageTemplate.ts new file mode 100644 index 0000000000..8a325c5ece --- /dev/null +++ b/sdk/nodejs/wisdom/getMessageTemplate.ts @@ -0,0 +1,75 @@ +// *** 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"; + +/** + * Definition of AWS::Wisdom::MessageTemplate Resource Type + */ +export function getMessageTemplate(args: GetMessageTemplateArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:wisdom:getMessageTemplate", { + "messageTemplateArn": args.messageTemplateArn, + }, opts); +} + +export interface GetMessageTemplateArgs { + /** + * The Amazon Resource Name (ARN) of the message template. + */ + messageTemplateArn: string; +} + +export interface GetMessageTemplateResult { + readonly content?: outputs.wisdom.MessageTemplateContent; + readonly defaultAttributes?: outputs.wisdom.MessageTemplateAttributes; + /** + * The description of the message template. + */ + readonly description?: string; + readonly groupingConfiguration?: outputs.wisdom.MessageTemplateGroupingConfiguration; + /** + * The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW + */ + readonly language?: string; + /** + * The Amazon Resource Name (ARN) of the message template. + */ + readonly messageTemplateArn?: string; + /** + * The content SHA256 of the message template. + */ + readonly messageTemplateContentSha256?: string; + /** + * The unique identifier of the message template. + */ + readonly messageTemplateId?: string; + /** + * The name of the message template. + */ + readonly name?: string; + /** + * The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }. + */ + readonly tags?: outputs.Tag[]; +} +/** + * Definition of AWS::Wisdom::MessageTemplate Resource Type + */ +export function getMessageTemplateOutput(args: GetMessageTemplateOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("aws-native:wisdom:getMessageTemplate", { + "messageTemplateArn": args.messageTemplateArn, + }, opts); +} + +export interface GetMessageTemplateOutputArgs { + /** + * The Amazon Resource Name (ARN) of the message template. + */ + messageTemplateArn: pulumi.Input; +} diff --git a/sdk/nodejs/wisdom/getMessageTemplateVersion.ts b/sdk/nodejs/wisdom/getMessageTemplateVersion.ts new file mode 100644 index 0000000000..9da784429d --- /dev/null +++ b/sdk/nodejs/wisdom/getMessageTemplateVersion.ts @@ -0,0 +1,53 @@ +// *** 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"; + +/** + * A version for the specified customer-managed message template within the specified knowledge base. + */ +export function getMessageTemplateVersion(args: GetMessageTemplateVersionArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:wisdom:getMessageTemplateVersion", { + "messageTemplateVersionArn": args.messageTemplateVersionArn, + }, opts); +} + +export interface GetMessageTemplateVersionArgs { + /** + * The unqualified Amazon Resource Name (ARN) of the message template version. + */ + messageTemplateVersionArn: string; +} + +export interface GetMessageTemplateVersionResult { + /** + * The content SHA256 of the message template. + */ + readonly messageTemplateContentSha256?: string; + /** + * The unqualified Amazon Resource Name (ARN) of the message template version. + */ + readonly messageTemplateVersionArn?: string; + /** + * Current version number of the message template. + */ + readonly messageTemplateVersionNumber?: number; +} +/** + * A version for the specified customer-managed message template within the specified knowledge base. + */ +export function getMessageTemplateVersionOutput(args: GetMessageTemplateVersionOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("aws-native:wisdom:getMessageTemplateVersion", { + "messageTemplateVersionArn": args.messageTemplateVersionArn, + }, opts); +} + +export interface GetMessageTemplateVersionOutputArgs { + /** + * The unqualified Amazon Resource Name (ARN) of the message template version. + */ + messageTemplateVersionArn: pulumi.Input; +} diff --git a/sdk/nodejs/wisdom/index.ts b/sdk/nodejs/wisdom/index.ts index 7817eb5e1d..1e7b47917a 100644 --- a/sdk/nodejs/wisdom/index.ts +++ b/sdk/nodejs/wisdom/index.ts @@ -70,11 +70,31 @@ export const getKnowledgeBase: typeof import("./getKnowledgeBase").getKnowledgeB export const getKnowledgeBaseOutput: typeof import("./getKnowledgeBase").getKnowledgeBaseOutput = null as any; utilities.lazyLoad(exports, ["getKnowledgeBase","getKnowledgeBaseOutput"], () => require("./getKnowledgeBase")); +export { GetMessageTemplateArgs, GetMessageTemplateResult, GetMessageTemplateOutputArgs } from "./getMessageTemplate"; +export const getMessageTemplate: typeof import("./getMessageTemplate").getMessageTemplate = null as any; +export const getMessageTemplateOutput: typeof import("./getMessageTemplate").getMessageTemplateOutput = null as any; +utilities.lazyLoad(exports, ["getMessageTemplate","getMessageTemplateOutput"], () => require("./getMessageTemplate")); + +export { GetMessageTemplateVersionArgs, GetMessageTemplateVersionResult, GetMessageTemplateVersionOutputArgs } from "./getMessageTemplateVersion"; +export const getMessageTemplateVersion: typeof import("./getMessageTemplateVersion").getMessageTemplateVersion = null as any; +export const getMessageTemplateVersionOutput: typeof import("./getMessageTemplateVersion").getMessageTemplateVersionOutput = null as any; +utilities.lazyLoad(exports, ["getMessageTemplateVersion","getMessageTemplateVersionOutput"], () => require("./getMessageTemplateVersion")); + export { KnowledgeBaseArgs } from "./knowledgeBase"; export type KnowledgeBase = import("./knowledgeBase").KnowledgeBase; export const KnowledgeBase: typeof import("./knowledgeBase").KnowledgeBase = null as any; utilities.lazyLoad(exports, ["KnowledgeBase"], () => require("./knowledgeBase")); +export { MessageTemplateArgs } from "./messageTemplate"; +export type MessageTemplate = import("./messageTemplate").MessageTemplate; +export const MessageTemplate: typeof import("./messageTemplate").MessageTemplate = null as any; +utilities.lazyLoad(exports, ["MessageTemplate"], () => require("./messageTemplate")); + +export { MessageTemplateVersionArgs } from "./messageTemplateVersion"; +export type MessageTemplateVersion = import("./messageTemplateVersion").MessageTemplateVersion; +export const MessageTemplateVersion: typeof import("./messageTemplateVersion").MessageTemplateVersion = null as any; +utilities.lazyLoad(exports, ["MessageTemplateVersion"], () => require("./messageTemplateVersion")); + // Export enums: export * from "../types/enums/wisdom"; @@ -97,6 +117,10 @@ const _module = { return new AssistantAssociation(name, undefined, { urn }) case "aws-native:wisdom:KnowledgeBase": return new KnowledgeBase(name, undefined, { urn }) + case "aws-native:wisdom:MessageTemplate": + return new MessageTemplate(name, undefined, { urn }) + case "aws-native:wisdom:MessageTemplateVersion": + return new MessageTemplateVersion(name, undefined, { urn }) default: throw new Error(`unknown resource type ${type}`); } diff --git a/sdk/nodejs/wisdom/messageTemplate.ts b/sdk/nodejs/wisdom/messageTemplate.ts new file mode 100644 index 0000000000..da1773f49e --- /dev/null +++ b/sdk/nodejs/wisdom/messageTemplate.ts @@ -0,0 +1,158 @@ +// *** 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"; + +/** + * Definition of AWS::Wisdom::MessageTemplate Resource Type + */ +export class MessageTemplate extends pulumi.CustomResource { + /** + * Get an existing MessageTemplate 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): MessageTemplate { + return new MessageTemplate(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:wisdom:MessageTemplate'; + + /** + * Returns true if the given object is an instance of MessageTemplate. 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 MessageTemplate { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === MessageTemplate.__pulumiType; + } + + public readonly channelSubtype!: pulumi.Output; + public readonly content!: pulumi.Output; + public readonly defaultAttributes!: pulumi.Output; + /** + * The description of the message template. + */ + public readonly description!: pulumi.Output; + public readonly groupingConfiguration!: pulumi.Output; + /** + * The Amazon Resource Name (ARN) of the knowledge base to which the message template belongs. + */ + public readonly knowledgeBaseArn!: pulumi.Output; + /** + * The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW + */ + public readonly language!: pulumi.Output; + /** + * The Amazon Resource Name (ARN) of the message template. + */ + public /*out*/ readonly messageTemplateArn!: pulumi.Output; + /** + * The content SHA256 of the message template. + */ + public /*out*/ readonly messageTemplateContentSha256!: pulumi.Output; + /** + * The unique identifier of the message template. + */ + public /*out*/ readonly messageTemplateId!: pulumi.Output; + /** + * The name of the message template. + */ + public readonly name!: pulumi.Output; + /** + * The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }. + */ + public readonly tags!: pulumi.Output; + + /** + * Create a MessageTemplate 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: MessageTemplateArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.channelSubtype === undefined) && !opts.urn) { + throw new Error("Missing required property 'channelSubtype'"); + } + if ((!args || args.content === undefined) && !opts.urn) { + throw new Error("Missing required property 'content'"); + } + if ((!args || args.knowledgeBaseArn === undefined) && !opts.urn) { + throw new Error("Missing required property 'knowledgeBaseArn'"); + } + resourceInputs["channelSubtype"] = args ? args.channelSubtype : undefined; + resourceInputs["content"] = args ? args.content : undefined; + resourceInputs["defaultAttributes"] = args ? args.defaultAttributes : undefined; + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["groupingConfiguration"] = args ? args.groupingConfiguration : undefined; + resourceInputs["knowledgeBaseArn"] = args ? args.knowledgeBaseArn : undefined; + resourceInputs["language"] = args ? args.language : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["messageTemplateArn"] = undefined /*out*/; + resourceInputs["messageTemplateContentSha256"] = undefined /*out*/; + resourceInputs["messageTemplateId"] = undefined /*out*/; + } else { + resourceInputs["channelSubtype"] = undefined /*out*/; + resourceInputs["content"] = undefined /*out*/; + resourceInputs["defaultAttributes"] = undefined /*out*/; + resourceInputs["description"] = undefined /*out*/; + resourceInputs["groupingConfiguration"] = undefined /*out*/; + resourceInputs["knowledgeBaseArn"] = undefined /*out*/; + resourceInputs["language"] = undefined /*out*/; + resourceInputs["messageTemplateArn"] = undefined /*out*/; + resourceInputs["messageTemplateContentSha256"] = undefined /*out*/; + resourceInputs["messageTemplateId"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["channelSubtype", "knowledgeBaseArn"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(MessageTemplate.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a MessageTemplate resource. + */ +export interface MessageTemplateArgs { + channelSubtype: pulumi.Input; + content: pulumi.Input; + defaultAttributes?: pulumi.Input; + /** + * The description of the message template. + */ + description?: pulumi.Input; + groupingConfiguration?: pulumi.Input; + /** + * The Amazon Resource Name (ARN) of the knowledge base to which the message template belongs. + */ + knowledgeBaseArn: pulumi.Input; + /** + * The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW + */ + language?: pulumi.Input; + /** + * The name of the message template. + */ + name?: pulumi.Input; + /** + * The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }. + */ + tags?: pulumi.Input[]>; +} diff --git a/sdk/nodejs/wisdom/messageTemplateVersion.ts b/sdk/nodejs/wisdom/messageTemplateVersion.ts new file mode 100644 index 0000000000..2b813c9f44 --- /dev/null +++ b/sdk/nodejs/wisdom/messageTemplateVersion.ts @@ -0,0 +1,97 @@ +// *** 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"; + +/** + * A version for the specified customer-managed message template within the specified knowledge base. + */ +export class MessageTemplateVersion extends pulumi.CustomResource { + /** + * Get an existing MessageTemplateVersion 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): MessageTemplateVersion { + return new MessageTemplateVersion(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:wisdom:MessageTemplateVersion'; + + /** + * Returns true if the given object is an instance of MessageTemplateVersion. 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 MessageTemplateVersion { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === MessageTemplateVersion.__pulumiType; + } + + /** + * The unqualified Amazon Resource Name (ARN) of the message template. + */ + public readonly messageTemplateArn!: pulumi.Output; + /** + * The content SHA256 of the message template. + */ + public readonly messageTemplateContentSha256!: pulumi.Output; + /** + * The unqualified Amazon Resource Name (ARN) of the message template version. + */ + public /*out*/ readonly messageTemplateVersionArn!: pulumi.Output; + /** + * Current version number of the message template. + */ + public /*out*/ readonly messageTemplateVersionNumber!: pulumi.Output; + + /** + * Create a MessageTemplateVersion 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: MessageTemplateVersionArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.messageTemplateArn === undefined) && !opts.urn) { + throw new Error("Missing required property 'messageTemplateArn'"); + } + resourceInputs["messageTemplateArn"] = args ? args.messageTemplateArn : undefined; + resourceInputs["messageTemplateContentSha256"] = args ? args.messageTemplateContentSha256 : undefined; + resourceInputs["messageTemplateVersionArn"] = undefined /*out*/; + resourceInputs["messageTemplateVersionNumber"] = undefined /*out*/; + } else { + resourceInputs["messageTemplateArn"] = undefined /*out*/; + resourceInputs["messageTemplateContentSha256"] = undefined /*out*/; + resourceInputs["messageTemplateVersionArn"] = undefined /*out*/; + resourceInputs["messageTemplateVersionNumber"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["messageTemplateArn"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(MessageTemplateVersion.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a MessageTemplateVersion resource. + */ +export interface MessageTemplateVersionArgs { + /** + * The unqualified Amazon Resource Name (ARN) of the message template. + */ + messageTemplateArn: pulumi.Input; + /** + * The content SHA256 of the message template. + */ + messageTemplateContentSha256?: pulumi.Input; +} diff --git a/sdk/python/pulumi_aws_native/__init__.py b/sdk/python/pulumi_aws_native/__init__.py index bd28a373e3..cf782d1d67 100644 --- a/sdk/python/pulumi_aws_native/__init__.py +++ b/sdk/python/pulumi_aws_native/__init__.py @@ -1036,6 +1036,7 @@ "mod": "chatbot", "fqn": "pulumi_aws_native.chatbot", "classes": { + "aws-native:chatbot:CustomAction": "CustomAction", "aws-native:chatbot:MicrosoftTeamsChannelConfiguration": "MicrosoftTeamsChannelConfiguration", "aws-native:chatbot:SlackChannelConfiguration": "SlackChannelConfiguration" } @@ -1111,6 +1112,7 @@ "fqn": "pulumi_aws_native.cloudtrail", "classes": { "aws-native:cloudtrail:Channel": "Channel", + "aws-native:cloudtrail:Dashboard": "Dashboard", "aws-native:cloudtrail:EventDataStore": "EventDataStore", "aws-native:cloudtrail:ResourcePolicy": "ResourcePolicy", "aws-native:cloudtrail:Trail": "Trail" @@ -2773,7 +2775,8 @@ "mod": "resourcegroups", "fqn": "pulumi_aws_native.resourcegroups", "classes": { - "aws-native:resourcegroups:Group": "Group" + "aws-native:resourcegroups:Group": "Group", + "aws-native:resourcegroups:TagSyncTask": "TagSyncTask" } }, { @@ -3263,7 +3266,9 @@ "aws-native:wisdom:AiPromptVersion": "AiPromptVersion", "aws-native:wisdom:Assistant": "Assistant", "aws-native:wisdom:AssistantAssociation": "AssistantAssociation", - "aws-native:wisdom:KnowledgeBase": "KnowledgeBase" + "aws-native:wisdom:KnowledgeBase": "KnowledgeBase", + "aws-native:wisdom:MessageTemplate": "MessageTemplate", + "aws-native:wisdom:MessageTemplateVersion": "MessageTemplateVersion" } }, { diff --git a/sdk/python/pulumi_aws_native/autoscaling/_inputs.py b/sdk/python/pulumi_aws_native/autoscaling/_inputs.py index c5d07bc424..7f91fcee20 100644 --- a/sdk/python/pulumi_aws_native/autoscaling/_inputs.py +++ b/sdk/python/pulumi_aws_native/autoscaling/_inputs.py @@ -382,6 +382,9 @@ def min(self, value: Optional[pulumi.Input[int]]): if not MYPY: class AutoScalingGroupBaselinePerformanceFactorsRequestArgsDict(TypedDict): cpu: NotRequired[pulumi.Input['AutoScalingGroupCpuPerformanceFactorRequestArgsDict']] + """ + The CPU performance to consider, using an instance family as the baseline reference. + """ elif False: AutoScalingGroupBaselinePerformanceFactorsRequestArgsDict: TypeAlias = Mapping[str, Any] @@ -389,12 +392,18 @@ class AutoScalingGroupBaselinePerformanceFactorsRequestArgsDict(TypedDict): class AutoScalingGroupBaselinePerformanceFactorsRequestArgs: def __init__(__self__, *, cpu: Optional[pulumi.Input['AutoScalingGroupCpuPerformanceFactorRequestArgs']] = None): + """ + :param pulumi.Input['AutoScalingGroupCpuPerformanceFactorRequestArgs'] cpu: The CPU performance to consider, using an instance family as the baseline reference. + """ if cpu is not None: pulumi.set(__self__, "cpu", cpu) @property @pulumi.getter def cpu(self) -> Optional[pulumi.Input['AutoScalingGroupCpuPerformanceFactorRequestArgs']]: + """ + The CPU performance to consider, using an instance family as the baseline reference. + """ return pulumi.get(self, "cpu") @cpu.setter @@ -405,7 +414,18 @@ def cpu(self, value: Optional[pulumi.Input['AutoScalingGroupCpuPerformanceFactor if not MYPY: class AutoScalingGroupCapacityReservationSpecificationArgsDict(TypedDict): capacity_reservation_preference: pulumi.Input[str] + """ + The capacity reservation preference. The following options are available: + + - `capacity-reservations-only` - Auto Scaling will only launch instances into a Capacity Reservation or Capacity Reservation resource group. If capacity isn't available, instances will fail to launch. + - `capacity-reservations-first` - Auto Scaling will try to launch instances into a Capacity Reservation or Capacity Reservation resource group first. If capacity isn't available, instances will run in On-Demand capacity. + - `none` - Auto Scaling will not launch instances into a Capacity Reservation. Instances will run in On-Demand capacity. + - `default` - Auto Scaling uses the Capacity Reservation preference from your launch template or an open Capacity Reservation. + """ capacity_reservation_target: NotRequired[pulumi.Input['AutoScalingGroupCapacityReservationTargetArgsDict']] + """ + Describes a target Capacity Reservation or Capacity Reservation resource group. + """ elif False: AutoScalingGroupCapacityReservationSpecificationArgsDict: TypeAlias = Mapping[str, Any] @@ -414,6 +434,15 @@ class AutoScalingGroupCapacityReservationSpecificationArgs: def __init__(__self__, *, capacity_reservation_preference: pulumi.Input[str], capacity_reservation_target: Optional[pulumi.Input['AutoScalingGroupCapacityReservationTargetArgs']] = None): + """ + :param pulumi.Input[str] capacity_reservation_preference: The capacity reservation preference. The following options are available: + + - `capacity-reservations-only` - Auto Scaling will only launch instances into a Capacity Reservation or Capacity Reservation resource group. If capacity isn't available, instances will fail to launch. + - `capacity-reservations-first` - Auto Scaling will try to launch instances into a Capacity Reservation or Capacity Reservation resource group first. If capacity isn't available, instances will run in On-Demand capacity. + - `none` - Auto Scaling will not launch instances into a Capacity Reservation. Instances will run in On-Demand capacity. + - `default` - Auto Scaling uses the Capacity Reservation preference from your launch template or an open Capacity Reservation. + :param pulumi.Input['AutoScalingGroupCapacityReservationTargetArgs'] capacity_reservation_target: Describes a target Capacity Reservation or Capacity Reservation resource group. + """ pulumi.set(__self__, "capacity_reservation_preference", capacity_reservation_preference) if capacity_reservation_target is not None: pulumi.set(__self__, "capacity_reservation_target", capacity_reservation_target) @@ -421,6 +450,14 @@ def __init__(__self__, *, @property @pulumi.getter(name="capacityReservationPreference") def capacity_reservation_preference(self) -> pulumi.Input[str]: + """ + The capacity reservation preference. The following options are available: + + - `capacity-reservations-only` - Auto Scaling will only launch instances into a Capacity Reservation or Capacity Reservation resource group. If capacity isn't available, instances will fail to launch. + - `capacity-reservations-first` - Auto Scaling will try to launch instances into a Capacity Reservation or Capacity Reservation resource group first. If capacity isn't available, instances will run in On-Demand capacity. + - `none` - Auto Scaling will not launch instances into a Capacity Reservation. Instances will run in On-Demand capacity. + - `default` - Auto Scaling uses the Capacity Reservation preference from your launch template or an open Capacity Reservation. + """ return pulumi.get(self, "capacity_reservation_preference") @capacity_reservation_preference.setter @@ -430,6 +467,9 @@ def capacity_reservation_preference(self, value: pulumi.Input[str]): @property @pulumi.getter(name="capacityReservationTarget") def capacity_reservation_target(self) -> Optional[pulumi.Input['AutoScalingGroupCapacityReservationTargetArgs']]: + """ + Describes a target Capacity Reservation or Capacity Reservation resource group. + """ return pulumi.get(self, "capacity_reservation_target") @capacity_reservation_target.setter @@ -440,7 +480,13 @@ def capacity_reservation_target(self, value: Optional[pulumi.Input['AutoScalingG if not MYPY: class AutoScalingGroupCapacityReservationTargetArgsDict(TypedDict): capacity_reservation_ids: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + The Capacity Reservation IDs to launch instances into. + """ capacity_reservation_resource_group_arns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + The resource group ARNs of the Capacity Reservation to launch instances into. + """ elif False: AutoScalingGroupCapacityReservationTargetArgsDict: TypeAlias = Mapping[str, Any] @@ -449,6 +495,10 @@ class AutoScalingGroupCapacityReservationTargetArgs: def __init__(__self__, *, capacity_reservation_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, capacity_reservation_resource_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] capacity_reservation_ids: The Capacity Reservation IDs to launch instances into. + :param pulumi.Input[Sequence[pulumi.Input[str]]] capacity_reservation_resource_group_arns: The resource group ARNs of the Capacity Reservation to launch instances into. + """ if capacity_reservation_ids is not None: pulumi.set(__self__, "capacity_reservation_ids", capacity_reservation_ids) if capacity_reservation_resource_group_arns is not None: @@ -457,6 +507,9 @@ def __init__(__self__, *, @property @pulumi.getter(name="capacityReservationIds") def capacity_reservation_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The Capacity Reservation IDs to launch instances into. + """ return pulumi.get(self, "capacity_reservation_ids") @capacity_reservation_ids.setter @@ -466,6 +519,9 @@ def capacity_reservation_ids(self, value: Optional[pulumi.Input[Sequence[pulumi. @property @pulumi.getter(name="capacityReservationResourceGroupArns") def capacity_reservation_resource_group_arns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The resource group ARNs of the Capacity Reservation to launch instances into. + """ return pulumi.get(self, "capacity_reservation_resource_group_arns") @capacity_reservation_resource_group_arns.setter @@ -476,6 +532,11 @@ def capacity_reservation_resource_group_arns(self, value: Optional[pulumi.Input[ if not MYPY: class AutoScalingGroupCpuPerformanceFactorRequestArgsDict(TypedDict): references: NotRequired[pulumi.Input[Sequence[pulumi.Input['AutoScalingGroupPerformanceFactorReferenceRequestArgsDict']]]] + """ + Specify an instance family to use as the baseline reference for CPU performance. All instance types that match your specified attributes will be compared against the CPU performance of the referenced instance family, regardless of CPU manufacturer or architecture differences. + + > Currently only one instance family can be specified in the list. + """ elif False: AutoScalingGroupCpuPerformanceFactorRequestArgsDict: TypeAlias = Mapping[str, Any] @@ -483,12 +544,22 @@ class AutoScalingGroupCpuPerformanceFactorRequestArgsDict(TypedDict): class AutoScalingGroupCpuPerformanceFactorRequestArgs: def __init__(__self__, *, references: Optional[pulumi.Input[Sequence[pulumi.Input['AutoScalingGroupPerformanceFactorReferenceRequestArgs']]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['AutoScalingGroupPerformanceFactorReferenceRequestArgs']]] references: Specify an instance family to use as the baseline reference for CPU performance. All instance types that match your specified attributes will be compared against the CPU performance of the referenced instance family, regardless of CPU manufacturer or architecture differences. + + > Currently only one instance family can be specified in the list. + """ if references is not None: pulumi.set(__self__, "references", references) @property @pulumi.getter def references(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AutoScalingGroupPerformanceFactorReferenceRequestArgs']]]]: + """ + Specify an instance family to use as the baseline reference for CPU performance. All instance types that match your specified attributes will be compared against the CPU performance of the referenced instance family, regardless of CPU manufacturer or architecture differences. + + > Currently only one instance family can be specified in the list. + """ return pulumi.get(self, "references") @references.setter @@ -641,6 +712,9 @@ class AutoScalingGroupInstanceRequirementsArgsDict(TypedDict): Default: No minimum or maximum limits """ baseline_performance_factors: NotRequired[pulumi.Input['AutoScalingGroupBaselinePerformanceFactorsRequestArgsDict']] + """ + The baseline performance factors for the instance requirements. + """ burstable_performance: NotRequired[pulumi.Input[str]] """ Indicates whether burstable performance instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*. @@ -812,6 +886,7 @@ def __init__(__self__, *, Default: ``excluded`` :param pulumi.Input['AutoScalingGroupBaselineEbsBandwidthMbpsRequestArgs'] baseline_ebs_bandwidth_mbps: The minimum and maximum baseline bandwidth performance for an instance type, in Mbps. For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide for Linux Instances*. Default: No minimum or maximum limits + :param pulumi.Input['AutoScalingGroupBaselinePerformanceFactorsRequestArgs'] baseline_performance_factors: The baseline performance factors for the instance requirements. :param pulumi.Input[str] burstable_performance: Indicates whether burstable performance instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*. Default: ``excluded`` :param pulumi.Input[Sequence[pulumi.Input[str]]] cpu_manufacturers: Lists which specific CPU manufacturers to include. @@ -1062,6 +1137,9 @@ def baseline_ebs_bandwidth_mbps(self, value: Optional[pulumi.Input['AutoScalingG @property @pulumi.getter(name="baselinePerformanceFactors") def baseline_performance_factors(self) -> Optional[pulumi.Input['AutoScalingGroupBaselinePerformanceFactorsRequestArgs']]: + """ + The baseline performance factors for the instance requirements. + """ return pulumi.get(self, "baseline_performance_factors") @baseline_performance_factors.setter diff --git a/sdk/python/pulumi_aws_native/autoscaling/auto_scaling_group.py b/sdk/python/pulumi_aws_native/autoscaling/auto_scaling_group.py index 928b551e88..56845b332b 100644 --- a/sdk/python/pulumi_aws_native/autoscaling/auto_scaling_group.py +++ b/sdk/python/pulumi_aws_native/autoscaling/auto_scaling_group.py @@ -69,6 +69,7 @@ def __init__(__self__, *, :param pulumi.Input['AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs'] availability_zone_impairment_policy: The Availability Zone impairment policy. :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zones: A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the ``VPCZoneIdentifier`` property, or for attaching a network interface when an existing network interface ID is specified in a launch template. :param pulumi.Input[bool] capacity_rebalance: Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see [Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the in the *Amazon EC2 Auto Scaling User Guide*. + :param pulumi.Input['AutoScalingGroupCapacityReservationSpecificationArgs'] capacity_reservation_specification: The capacity reservation specification. :param pulumi.Input[str] context: Reserved. :param pulumi.Input[str] cooldown: *Only needed if you use simple scaling policies.* The amount of time, in seconds, between one scaling activity ending and another one starting due to simple scaling policies. For more information, see [Scaling cooldowns for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scaling-cooldowns.html) in the *Amazon EC2 Auto Scaling User Guide*. @@ -276,6 +277,9 @@ def capacity_rebalance(self, value: Optional[pulumi.Input[bool]]): @property @pulumi.getter(name="capacityReservationSpecification") def capacity_reservation_specification(self) -> Optional[pulumi.Input['AutoScalingGroupCapacityReservationSpecificationArgs']]: + """ + The capacity reservation specification. + """ return pulumi.get(self, "capacity_reservation_specification") @capacity_reservation_specification.setter @@ -679,6 +683,7 @@ def __init__(__self__, :param pulumi.Input[Union['AutoScalingGroupAvailabilityZoneImpairmentPolicyArgs', 'AutoScalingGroupAvailabilityZoneImpairmentPolicyArgsDict']] availability_zone_impairment_policy: The Availability Zone impairment policy. :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zones: A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the ``VPCZoneIdentifier`` property, or for attaching a network interface when an existing network interface ID is specified in a launch template. :param pulumi.Input[bool] capacity_rebalance: Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see [Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the in the *Amazon EC2 Auto Scaling User Guide*. + :param pulumi.Input[Union['AutoScalingGroupCapacityReservationSpecificationArgs', 'AutoScalingGroupCapacityReservationSpecificationArgsDict']] capacity_reservation_specification: The capacity reservation specification. :param pulumi.Input[str] context: Reserved. :param pulumi.Input[str] cooldown: *Only needed if you use simple scaling policies.* The amount of time, in seconds, between one scaling activity ending and another one starting due to simple scaling policies. For more information, see [Scaling cooldowns for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-scaling-cooldowns.html) in the *Amazon EC2 Auto Scaling User Guide*. @@ -946,6 +951,9 @@ def capacity_rebalance(self) -> pulumi.Output[Optional[bool]]: @property @pulumi.getter(name="capacityReservationSpecification") def capacity_reservation_specification(self) -> pulumi.Output[Optional['outputs.AutoScalingGroupCapacityReservationSpecification']]: + """ + The capacity reservation specification. + """ return pulumi.get(self, "capacity_reservation_specification") @property diff --git a/sdk/python/pulumi_aws_native/autoscaling/get_auto_scaling_group.py b/sdk/python/pulumi_aws_native/autoscaling/get_auto_scaling_group.py index 3746c059d0..85a970f7dd 100644 --- a/sdk/python/pulumi_aws_native/autoscaling/get_auto_scaling_group.py +++ b/sdk/python/pulumi_aws_native/autoscaling/get_auto_scaling_group.py @@ -158,6 +158,9 @@ def capacity_rebalance(self) -> Optional[bool]: @property @pulumi.getter(name="capacityReservationSpecification") def capacity_reservation_specification(self) -> Optional['outputs.AutoScalingGroupCapacityReservationSpecification']: + """ + The capacity reservation specification. + """ return pulumi.get(self, "capacity_reservation_specification") @property diff --git a/sdk/python/pulumi_aws_native/autoscaling/outputs.py b/sdk/python/pulumi_aws_native/autoscaling/outputs.py index a10ab6c18b..9477f5822f 100644 --- a/sdk/python/pulumi_aws_native/autoscaling/outputs.py +++ b/sdk/python/pulumi_aws_native/autoscaling/outputs.py @@ -268,12 +268,18 @@ def min(self) -> Optional[int]: class AutoScalingGroupBaselinePerformanceFactorsRequest(dict): def __init__(__self__, *, cpu: Optional['outputs.AutoScalingGroupCpuPerformanceFactorRequest'] = None): + """ + :param 'AutoScalingGroupCpuPerformanceFactorRequest' cpu: The CPU performance to consider, using an instance family as the baseline reference. + """ if cpu is not None: pulumi.set(__self__, "cpu", cpu) @property @pulumi.getter def cpu(self) -> Optional['outputs.AutoScalingGroupCpuPerformanceFactorRequest']: + """ + The CPU performance to consider, using an instance family as the baseline reference. + """ return pulumi.get(self, "cpu") @@ -301,6 +307,15 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, capacity_reservation_preference: str, capacity_reservation_target: Optional['outputs.AutoScalingGroupCapacityReservationTarget'] = None): + """ + :param str capacity_reservation_preference: The capacity reservation preference. The following options are available: + + - `capacity-reservations-only` - Auto Scaling will only launch instances into a Capacity Reservation or Capacity Reservation resource group. If capacity isn't available, instances will fail to launch. + - `capacity-reservations-first` - Auto Scaling will try to launch instances into a Capacity Reservation or Capacity Reservation resource group first. If capacity isn't available, instances will run in On-Demand capacity. + - `none` - Auto Scaling will not launch instances into a Capacity Reservation. Instances will run in On-Demand capacity. + - `default` - Auto Scaling uses the Capacity Reservation preference from your launch template or an open Capacity Reservation. + :param 'AutoScalingGroupCapacityReservationTarget' capacity_reservation_target: Describes a target Capacity Reservation or Capacity Reservation resource group. + """ pulumi.set(__self__, "capacity_reservation_preference", capacity_reservation_preference) if capacity_reservation_target is not None: pulumi.set(__self__, "capacity_reservation_target", capacity_reservation_target) @@ -308,11 +323,22 @@ def __init__(__self__, *, @property @pulumi.getter(name="capacityReservationPreference") def capacity_reservation_preference(self) -> str: + """ + The capacity reservation preference. The following options are available: + + - `capacity-reservations-only` - Auto Scaling will only launch instances into a Capacity Reservation or Capacity Reservation resource group. If capacity isn't available, instances will fail to launch. + - `capacity-reservations-first` - Auto Scaling will try to launch instances into a Capacity Reservation or Capacity Reservation resource group first. If capacity isn't available, instances will run in On-Demand capacity. + - `none` - Auto Scaling will not launch instances into a Capacity Reservation. Instances will run in On-Demand capacity. + - `default` - Auto Scaling uses the Capacity Reservation preference from your launch template or an open Capacity Reservation. + """ return pulumi.get(self, "capacity_reservation_preference") @property @pulumi.getter(name="capacityReservationTarget") def capacity_reservation_target(self) -> Optional['outputs.AutoScalingGroupCapacityReservationTarget']: + """ + Describes a target Capacity Reservation or Capacity Reservation resource group. + """ return pulumi.get(self, "capacity_reservation_target") @@ -340,6 +366,10 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, capacity_reservation_ids: Optional[Sequence[str]] = None, capacity_reservation_resource_group_arns: Optional[Sequence[str]] = None): + """ + :param Sequence[str] capacity_reservation_ids: The Capacity Reservation IDs to launch instances into. + :param Sequence[str] capacity_reservation_resource_group_arns: The resource group ARNs of the Capacity Reservation to launch instances into. + """ if capacity_reservation_ids is not None: pulumi.set(__self__, "capacity_reservation_ids", capacity_reservation_ids) if capacity_reservation_resource_group_arns is not None: @@ -348,11 +378,17 @@ def __init__(__self__, *, @property @pulumi.getter(name="capacityReservationIds") def capacity_reservation_ids(self) -> Optional[Sequence[str]]: + """ + The Capacity Reservation IDs to launch instances into. + """ return pulumi.get(self, "capacity_reservation_ids") @property @pulumi.getter(name="capacityReservationResourceGroupArns") def capacity_reservation_resource_group_arns(self) -> Optional[Sequence[str]]: + """ + The resource group ARNs of the Capacity Reservation to launch instances into. + """ return pulumi.get(self, "capacity_reservation_resource_group_arns") @@ -360,12 +396,22 @@ def capacity_reservation_resource_group_arns(self) -> Optional[Sequence[str]]: class AutoScalingGroupCpuPerformanceFactorRequest(dict): def __init__(__self__, *, references: Optional[Sequence['outputs.AutoScalingGroupPerformanceFactorReferenceRequest']] = None): + """ + :param Sequence['AutoScalingGroupPerformanceFactorReferenceRequest'] references: Specify an instance family to use as the baseline reference for CPU performance. All instance types that match your specified attributes will be compared against the CPU performance of the referenced instance family, regardless of CPU manufacturer or architecture differences. + + > Currently only one instance family can be specified in the list. + """ if references is not None: pulumi.set(__self__, "references", references) @property @pulumi.getter def references(self) -> Optional[Sequence['outputs.AutoScalingGroupPerformanceFactorReferenceRequest']]: + """ + Specify an instance family to use as the baseline reference for CPU performance. All instance types that match your specified attributes will be compared against the CPU performance of the referenced instance family, regardless of CPU manufacturer or architecture differences. + + > Currently only one instance family can be specified in the list. + """ return pulumi.get(self, "references") @@ -582,6 +628,7 @@ def __init__(__self__, *, Default: ``excluded`` :param 'AutoScalingGroupBaselineEbsBandwidthMbpsRequest' baseline_ebs_bandwidth_mbps: The minimum and maximum baseline bandwidth performance for an instance type, in Mbps. For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide for Linux Instances*. Default: No minimum or maximum limits + :param 'AutoScalingGroupBaselinePerformanceFactorsRequest' baseline_performance_factors: The baseline performance factors for the instance requirements. :param str burstable_performance: Indicates whether burstable performance instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html) in the *Amazon EC2 User Guide for Linux Instances*. Default: ``excluded`` :param Sequence[str] cpu_manufacturers: Lists which specific CPU manufacturers to include. @@ -792,6 +839,9 @@ def baseline_ebs_bandwidth_mbps(self) -> Optional['outputs.AutoScalingGroupBasel @property @pulumi.getter(name="baselinePerformanceFactors") def baseline_performance_factors(self) -> Optional['outputs.AutoScalingGroupBaselinePerformanceFactorsRequest']: + """ + The baseline performance factors for the instance requirements. + """ return pulumi.get(self, "baseline_performance_factors") @property diff --git a/sdk/python/pulumi_aws_native/chatbot/__init__.py b/sdk/python/pulumi_aws_native/chatbot/__init__.py index d849eb8d16..707bba8564 100644 --- a/sdk/python/pulumi_aws_native/chatbot/__init__.py +++ b/sdk/python/pulumi_aws_native/chatbot/__init__.py @@ -5,7 +5,12 @@ from .. import _utilities import typing # Export this package's modules as members: +from ._enums import * +from .custom_action import * +from .get_custom_action import * from .get_microsoft_teams_channel_configuration import * from .get_slack_channel_configuration import * from .microsoft_teams_channel_configuration import * from .slack_channel_configuration import * +from ._inputs import * +from . import outputs diff --git a/sdk/python/pulumi_aws_native/chatbot/_enums.py b/sdk/python/pulumi_aws_native/chatbot/_enums.py new file mode 100644 index 0000000000..1333dc258c --- /dev/null +++ b/sdk/python/pulumi_aws_native/chatbot/_enums.py @@ -0,0 +1,14 @@ +# 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__ = [ + 'CustomActionAttachmentCriteriaOperator', +] + + +class CustomActionAttachmentCriteriaOperator(str, Enum): + HAS_VALUE = "HAS_VALUE" + EQUALS = "EQUALS" diff --git a/sdk/python/pulumi_aws_native/chatbot/_inputs.py b/sdk/python/pulumi_aws_native/chatbot/_inputs.py new file mode 100644 index 0000000000..e96bdbae6b --- /dev/null +++ b/sdk/python/pulumi_aws_native/chatbot/_inputs.py @@ -0,0 +1,159 @@ +# 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 ._enums import * + +__all__ = [ + 'CustomActionAttachmentCriteriaArgs', + 'CustomActionAttachmentCriteriaArgsDict', + 'CustomActionAttachmentArgs', + 'CustomActionAttachmentArgsDict', + 'CustomActionDefinitionArgs', + 'CustomActionDefinitionArgsDict', +] + +MYPY = False + +if not MYPY: + class CustomActionAttachmentCriteriaArgsDict(TypedDict): + operator: pulumi.Input['CustomActionAttachmentCriteriaOperator'] + variable_name: pulumi.Input[str] + value: NotRequired[pulumi.Input[str]] +elif False: + CustomActionAttachmentCriteriaArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CustomActionAttachmentCriteriaArgs: + def __init__(__self__, *, + operator: pulumi.Input['CustomActionAttachmentCriteriaOperator'], + variable_name: pulumi.Input[str], + value: Optional[pulumi.Input[str]] = None): + pulumi.set(__self__, "operator", operator) + pulumi.set(__self__, "variable_name", variable_name) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def operator(self) -> pulumi.Input['CustomActionAttachmentCriteriaOperator']: + return pulumi.get(self, "operator") + + @operator.setter + def operator(self, value: pulumi.Input['CustomActionAttachmentCriteriaOperator']): + pulumi.set(self, "operator", value) + + @property + @pulumi.getter(name="variableName") + def variable_name(self) -> pulumi.Input[str]: + return pulumi.get(self, "variable_name") + + @variable_name.setter + def variable_name(self, value: pulumi.Input[str]): + pulumi.set(self, "variable_name", value) + + @property + @pulumi.getter + def value(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "value") + + @value.setter + def value(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "value", value) + + +if not MYPY: + class CustomActionAttachmentArgsDict(TypedDict): + button_text: NotRequired[pulumi.Input[str]] + criteria: NotRequired[pulumi.Input[Sequence[pulumi.Input['CustomActionAttachmentCriteriaArgsDict']]]] + notification_type: NotRequired[pulumi.Input[str]] + variables: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] +elif False: + CustomActionAttachmentArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CustomActionAttachmentArgs: + def __init__(__self__, *, + button_text: Optional[pulumi.Input[str]] = None, + criteria: Optional[pulumi.Input[Sequence[pulumi.Input['CustomActionAttachmentCriteriaArgs']]]] = None, + notification_type: Optional[pulumi.Input[str]] = None, + variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + if button_text is not None: + pulumi.set(__self__, "button_text", button_text) + if criteria is not None: + pulumi.set(__self__, "criteria", criteria) + if notification_type is not None: + pulumi.set(__self__, "notification_type", notification_type) + if variables is not None: + pulumi.set(__self__, "variables", variables) + + @property + @pulumi.getter(name="buttonText") + def button_text(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "button_text") + + @button_text.setter + def button_text(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "button_text", value) + + @property + @pulumi.getter + def criteria(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CustomActionAttachmentCriteriaArgs']]]]: + return pulumi.get(self, "criteria") + + @criteria.setter + def criteria(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['CustomActionAttachmentCriteriaArgs']]]]): + pulumi.set(self, "criteria", value) + + @property + @pulumi.getter(name="notificationType") + def notification_type(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "notification_type") + + @notification_type.setter + def notification_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "notification_type", value) + + @property + @pulumi.getter + def variables(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + return pulumi.get(self, "variables") + + @variables.setter + def variables(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "variables", value) + + +if not MYPY: + class CustomActionDefinitionArgsDict(TypedDict): + command_text: pulumi.Input[str] +elif False: + CustomActionDefinitionArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CustomActionDefinitionArgs: + def __init__(__self__, *, + command_text: pulumi.Input[str]): + pulumi.set(__self__, "command_text", command_text) + + @property + @pulumi.getter(name="commandText") + def command_text(self) -> pulumi.Input[str]: + return pulumi.get(self, "command_text") + + @command_text.setter + def command_text(self, value: pulumi.Input[str]): + pulumi.set(self, "command_text", value) + + diff --git a/sdk/python/pulumi_aws_native/chatbot/custom_action.py b/sdk/python/pulumi_aws_native/chatbot/custom_action.py new file mode 100644 index 0000000000..12435ee7ff --- /dev/null +++ b/sdk/python/pulumi_aws_native/chatbot/custom_action.py @@ -0,0 +1,215 @@ +# 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__ = ['CustomActionArgs', 'CustomAction'] + +@pulumi.input_type +class CustomActionArgs: + def __init__(__self__, *, + definition: pulumi.Input['CustomActionDefinitionArgs'], + action_name: Optional[pulumi.Input[str]] = None, + alias_name: Optional[pulumi.Input[str]] = None, + attachments: Optional[pulumi.Input[Sequence[pulumi.Input['CustomActionAttachmentArgs']]]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None): + """ + The set of arguments for constructing a CustomAction resource. + """ + pulumi.set(__self__, "definition", definition) + if action_name is not None: + pulumi.set(__self__, "action_name", action_name) + if alias_name is not None: + pulumi.set(__self__, "alias_name", alias_name) + if attachments is not None: + pulumi.set(__self__, "attachments", attachments) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter + def definition(self) -> pulumi.Input['CustomActionDefinitionArgs']: + return pulumi.get(self, "definition") + + @definition.setter + def definition(self, value: pulumi.Input['CustomActionDefinitionArgs']): + pulumi.set(self, "definition", value) + + @property + @pulumi.getter(name="actionName") + def action_name(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "action_name") + + @action_name.setter + def action_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "action_name", value) + + @property + @pulumi.getter(name="aliasName") + def alias_name(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "alias_name") + + @alias_name.setter + def alias_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "alias_name", value) + + @property + @pulumi.getter + def attachments(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CustomActionAttachmentArgs']]]]: + return pulumi.get(self, "attachments") + + @attachments.setter + def attachments(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['CustomActionAttachmentArgs']]]]): + pulumi.set(self, "attachments", 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 CustomAction(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + action_name: Optional[pulumi.Input[str]] = None, + alias_name: Optional[pulumi.Input[str]] = None, + attachments: Optional[pulumi.Input[Sequence[pulumi.Input[Union['CustomActionAttachmentArgs', 'CustomActionAttachmentArgsDict']]]]] = None, + definition: Optional[pulumi.Input[Union['CustomActionDefinitionArgs', 'CustomActionDefinitionArgsDict']]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]]] = None, + __props__=None): + """ + Definition of AWS::Chatbot::CustomAction 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: CustomActionArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Definition of AWS::Chatbot::CustomAction Resource Type + + :param str resource_name: The name of the resource. + :param CustomActionArgs 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(CustomActionArgs, 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, + action_name: Optional[pulumi.Input[str]] = None, + alias_name: Optional[pulumi.Input[str]] = None, + attachments: Optional[pulumi.Input[Sequence[pulumi.Input[Union['CustomActionAttachmentArgs', 'CustomActionAttachmentArgsDict']]]]] = None, + definition: Optional[pulumi.Input[Union['CustomActionDefinitionArgs', 'CustomActionDefinitionArgsDict']]] = 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__ = CustomActionArgs.__new__(CustomActionArgs) + + __props__.__dict__["action_name"] = action_name + __props__.__dict__["alias_name"] = alias_name + __props__.__dict__["attachments"] = attachments + if definition is None and not opts.urn: + raise TypeError("Missing required property 'definition'") + __props__.__dict__["definition"] = definition + __props__.__dict__["tags"] = tags + __props__.__dict__["custom_action_arn"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["actionName"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(CustomAction, __self__).__init__( + 'aws-native:chatbot:CustomAction', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'CustomAction': + """ + Get an existing CustomAction 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__ = CustomActionArgs.__new__(CustomActionArgs) + + __props__.__dict__["action_name"] = None + __props__.__dict__["alias_name"] = None + __props__.__dict__["attachments"] = None + __props__.__dict__["custom_action_arn"] = None + __props__.__dict__["definition"] = None + __props__.__dict__["tags"] = None + return CustomAction(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="actionName") + def action_name(self) -> pulumi.Output[str]: + return pulumi.get(self, "action_name") + + @property + @pulumi.getter(name="aliasName") + def alias_name(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "alias_name") + + @property + @pulumi.getter + def attachments(self) -> pulumi.Output[Optional[Sequence['outputs.CustomActionAttachment']]]: + return pulumi.get(self, "attachments") + + @property + @pulumi.getter(name="customActionArn") + def custom_action_arn(self) -> pulumi.Output[str]: + return pulumi.get(self, "custom_action_arn") + + @property + @pulumi.getter + def definition(self) -> pulumi.Output['outputs.CustomActionDefinition']: + return pulumi.get(self, "definition") + + @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/chatbot/get_custom_action.py b/sdk/python/pulumi_aws_native/chatbot/get_custom_action.py new file mode 100644 index 0000000000..56a17dc706 --- /dev/null +++ b/sdk/python/pulumi_aws_native/chatbot/get_custom_action.py @@ -0,0 +1,115 @@ +# 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__ = [ + 'GetCustomActionResult', + 'AwaitableGetCustomActionResult', + 'get_custom_action', + 'get_custom_action_output', +] + +@pulumi.output_type +class GetCustomActionResult: + def __init__(__self__, alias_name=None, attachments=None, custom_action_arn=None, definition=None, tags=None): + if alias_name and not isinstance(alias_name, str): + raise TypeError("Expected argument 'alias_name' to be a str") + pulumi.set(__self__, "alias_name", alias_name) + if attachments and not isinstance(attachments, list): + raise TypeError("Expected argument 'attachments' to be a list") + pulumi.set(__self__, "attachments", attachments) + if custom_action_arn and not isinstance(custom_action_arn, str): + raise TypeError("Expected argument 'custom_action_arn' to be a str") + pulumi.set(__self__, "custom_action_arn", custom_action_arn) + if definition and not isinstance(definition, dict): + raise TypeError("Expected argument 'definition' to be a dict") + pulumi.set(__self__, "definition", definition) + 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="aliasName") + def alias_name(self) -> Optional[str]: + return pulumi.get(self, "alias_name") + + @property + @pulumi.getter + def attachments(self) -> Optional[Sequence['outputs.CustomActionAttachment']]: + return pulumi.get(self, "attachments") + + @property + @pulumi.getter(name="customActionArn") + def custom_action_arn(self) -> Optional[str]: + return pulumi.get(self, "custom_action_arn") + + @property + @pulumi.getter + def definition(self) -> Optional['outputs.CustomActionDefinition']: + return pulumi.get(self, "definition") + + @property + @pulumi.getter + def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: + return pulumi.get(self, "tags") + + +class AwaitableGetCustomActionResult(GetCustomActionResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetCustomActionResult( + alias_name=self.alias_name, + attachments=self.attachments, + custom_action_arn=self.custom_action_arn, + definition=self.definition, + tags=self.tags) + + +def get_custom_action(custom_action_arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetCustomActionResult: + """ + Definition of AWS::Chatbot::CustomAction Resource Type + """ + __args__ = dict() + __args__['customActionArn'] = custom_action_arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:chatbot:getCustomAction', __args__, opts=opts, typ=GetCustomActionResult).value + + return AwaitableGetCustomActionResult( + alias_name=pulumi.get(__ret__, 'alias_name'), + attachments=pulumi.get(__ret__, 'attachments'), + custom_action_arn=pulumi.get(__ret__, 'custom_action_arn'), + definition=pulumi.get(__ret__, 'definition'), + tags=pulumi.get(__ret__, 'tags')) +def get_custom_action_output(custom_action_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetCustomActionResult]: + """ + Definition of AWS::Chatbot::CustomAction Resource Type + """ + __args__ = dict() + __args__['customActionArn'] = custom_action_arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('aws-native:chatbot:getCustomAction', __args__, opts=opts, typ=GetCustomActionResult) + return __ret__.apply(lambda __response__: GetCustomActionResult( + alias_name=pulumi.get(__response__, 'alias_name'), + attachments=pulumi.get(__response__, 'attachments'), + custom_action_arn=pulumi.get(__response__, 'custom_action_arn'), + definition=pulumi.get(__response__, 'definition'), + tags=pulumi.get(__response__, 'tags'))) diff --git a/sdk/python/pulumi_aws_native/chatbot/get_microsoft_teams_channel_configuration.py b/sdk/python/pulumi_aws_native/chatbot/get_microsoft_teams_channel_configuration.py index 2919d7618d..ef0f06fe1c 100644 --- a/sdk/python/pulumi_aws_native/chatbot/get_microsoft_teams_channel_configuration.py +++ b/sdk/python/pulumi_aws_native/chatbot/get_microsoft_teams_channel_configuration.py @@ -24,10 +24,13 @@ @pulumi.output_type class GetMicrosoftTeamsChannelConfigurationResult: - def __init__(__self__, arn=None, guardrail_policies=None, iam_role_arn=None, logging_level=None, sns_topic_arns=None, tags=None, teams_channel_id=None, user_role_required=None): + def __init__(__self__, arn=None, customization_resource_arns=None, guardrail_policies=None, iam_role_arn=None, logging_level=None, sns_topic_arns=None, tags=None, teams_channel_id=None, user_role_required=None): if arn and not isinstance(arn, str): raise TypeError("Expected argument 'arn' to be a str") pulumi.set(__self__, "arn", arn) + if customization_resource_arns and not isinstance(customization_resource_arns, list): + raise TypeError("Expected argument 'customization_resource_arns' to be a list") + pulumi.set(__self__, "customization_resource_arns", customization_resource_arns) if guardrail_policies and not isinstance(guardrail_policies, list): raise TypeError("Expected argument 'guardrail_policies' to be a list") pulumi.set(__self__, "guardrail_policies", guardrail_policies) @@ -58,6 +61,14 @@ def arn(self) -> Optional[str]: """ return pulumi.get(self, "arn") + @property + @pulumi.getter(name="customizationResourceArns") + def customization_resource_arns(self) -> Optional[Sequence[str]]: + """ + ARNs of Custom Actions to associate with notifications in the provided chat channel. + """ + return pulumi.get(self, "customization_resource_arns") + @property @pulumi.getter(name="guardrailPolicies") def guardrail_policies(self) -> Optional[Sequence[str]]: @@ -122,6 +133,7 @@ def __await__(self): yield self return GetMicrosoftTeamsChannelConfigurationResult( arn=self.arn, + customization_resource_arns=self.customization_resource_arns, guardrail_policies=self.guardrail_policies, iam_role_arn=self.iam_role_arn, logging_level=self.logging_level, @@ -146,6 +158,7 @@ def get_microsoft_teams_channel_configuration(arn: Optional[str] = None, return AwaitableGetMicrosoftTeamsChannelConfigurationResult( arn=pulumi.get(__ret__, 'arn'), + customization_resource_arns=pulumi.get(__ret__, 'customization_resource_arns'), guardrail_policies=pulumi.get(__ret__, 'guardrail_policies'), iam_role_arn=pulumi.get(__ret__, 'iam_role_arn'), logging_level=pulumi.get(__ret__, 'logging_level'), @@ -167,6 +180,7 @@ def get_microsoft_teams_channel_configuration_output(arn: Optional[pulumi.Input[ __ret__ = pulumi.runtime.invoke_output('aws-native:chatbot:getMicrosoftTeamsChannelConfiguration', __args__, opts=opts, typ=GetMicrosoftTeamsChannelConfigurationResult) return __ret__.apply(lambda __response__: GetMicrosoftTeamsChannelConfigurationResult( arn=pulumi.get(__response__, 'arn'), + customization_resource_arns=pulumi.get(__response__, 'customization_resource_arns'), guardrail_policies=pulumi.get(__response__, 'guardrail_policies'), iam_role_arn=pulumi.get(__response__, 'iam_role_arn'), logging_level=pulumi.get(__response__, 'logging_level'), diff --git a/sdk/python/pulumi_aws_native/chatbot/get_slack_channel_configuration.py b/sdk/python/pulumi_aws_native/chatbot/get_slack_channel_configuration.py index fa0636c6df..7e3ceea186 100644 --- a/sdk/python/pulumi_aws_native/chatbot/get_slack_channel_configuration.py +++ b/sdk/python/pulumi_aws_native/chatbot/get_slack_channel_configuration.py @@ -24,10 +24,13 @@ @pulumi.output_type class GetSlackChannelConfigurationResult: - def __init__(__self__, arn=None, guardrail_policies=None, iam_role_arn=None, logging_level=None, slack_channel_id=None, sns_topic_arns=None, tags=None, user_role_required=None): + def __init__(__self__, arn=None, customization_resource_arns=None, guardrail_policies=None, iam_role_arn=None, logging_level=None, slack_channel_id=None, sns_topic_arns=None, tags=None, user_role_required=None): if arn and not isinstance(arn, str): raise TypeError("Expected argument 'arn' to be a str") pulumi.set(__self__, "arn", arn) + if customization_resource_arns and not isinstance(customization_resource_arns, list): + raise TypeError("Expected argument 'customization_resource_arns' to be a list") + pulumi.set(__self__, "customization_resource_arns", customization_resource_arns) if guardrail_policies and not isinstance(guardrail_policies, list): raise TypeError("Expected argument 'guardrail_policies' to be a list") pulumi.set(__self__, "guardrail_policies", guardrail_policies) @@ -58,6 +61,14 @@ def arn(self) -> Optional[str]: """ return pulumi.get(self, "arn") + @property + @pulumi.getter(name="customizationResourceArns") + def customization_resource_arns(self) -> Optional[Sequence[str]]: + """ + ARNs of Custom Actions to associate with notifications in the provided chat channel. + """ + return pulumi.get(self, "customization_resource_arns") + @property @pulumi.getter(name="guardrailPolicies") def guardrail_policies(self) -> Optional[Sequence[str]]: @@ -122,6 +133,7 @@ def __await__(self): yield self return GetSlackChannelConfigurationResult( arn=self.arn, + customization_resource_arns=self.customization_resource_arns, guardrail_policies=self.guardrail_policies, iam_role_arn=self.iam_role_arn, logging_level=self.logging_level, @@ -146,6 +158,7 @@ def get_slack_channel_configuration(arn: Optional[str] = None, return AwaitableGetSlackChannelConfigurationResult( arn=pulumi.get(__ret__, 'arn'), + customization_resource_arns=pulumi.get(__ret__, 'customization_resource_arns'), guardrail_policies=pulumi.get(__ret__, 'guardrail_policies'), iam_role_arn=pulumi.get(__ret__, 'iam_role_arn'), logging_level=pulumi.get(__ret__, 'logging_level'), @@ -167,6 +180,7 @@ def get_slack_channel_configuration_output(arn: Optional[pulumi.Input[str]] = No __ret__ = pulumi.runtime.invoke_output('aws-native:chatbot:getSlackChannelConfiguration', __args__, opts=opts, typ=GetSlackChannelConfigurationResult) return __ret__.apply(lambda __response__: GetSlackChannelConfigurationResult( arn=pulumi.get(__response__, 'arn'), + customization_resource_arns=pulumi.get(__response__, 'customization_resource_arns'), guardrail_policies=pulumi.get(__response__, 'guardrail_policies'), iam_role_arn=pulumi.get(__response__, 'iam_role_arn'), logging_level=pulumi.get(__response__, 'logging_level'), diff --git a/sdk/python/pulumi_aws_native/chatbot/microsoft_teams_channel_configuration.py b/sdk/python/pulumi_aws_native/chatbot/microsoft_teams_channel_configuration.py index ea19bef7f0..69c56ce53e 100644 --- a/sdk/python/pulumi_aws_native/chatbot/microsoft_teams_channel_configuration.py +++ b/sdk/python/pulumi_aws_native/chatbot/microsoft_teams_channel_configuration.py @@ -26,6 +26,7 @@ def __init__(__self__, *, teams_channel_id: pulumi.Input[str], teams_tenant_id: pulumi.Input[str], configuration_name: Optional[pulumi.Input[str]] = None, + customization_resource_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, guardrail_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, logging_level: Optional[pulumi.Input[str]] = None, sns_topic_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, @@ -38,6 +39,7 @@ def __init__(__self__, *, :param pulumi.Input[str] teams_channel_id: The id of the Microsoft Teams channel :param pulumi.Input[str] teams_tenant_id: The id of the Microsoft Teams tenant :param pulumi.Input[str] configuration_name: The name of the configuration + :param pulumi.Input[Sequence[pulumi.Input[str]]] customization_resource_arns: ARNs of Custom Actions to associate with notifications in the provided chat channel. :param pulumi.Input[Sequence[pulumi.Input[str]]] guardrail_policies: The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. :param pulumi.Input[str] logging_level: Specifies the logging level for this configuration:ERROR,INFO or NONE. This property affects the log entries pushed to Amazon CloudWatch logs :param pulumi.Input[Sequence[pulumi.Input[str]]] sns_topic_arns: ARNs of SNS topics which delivers notifications to AWS Chatbot, for example CloudWatch alarm notifications. @@ -50,6 +52,8 @@ def __init__(__self__, *, pulumi.set(__self__, "teams_tenant_id", teams_tenant_id) if configuration_name is not None: pulumi.set(__self__, "configuration_name", configuration_name) + if customization_resource_arns is not None: + pulumi.set(__self__, "customization_resource_arns", customization_resource_arns) if guardrail_policies is not None: pulumi.set(__self__, "guardrail_policies", guardrail_policies) if logging_level is not None: @@ -121,6 +125,18 @@ def configuration_name(self) -> Optional[pulumi.Input[str]]: def configuration_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "configuration_name", value) + @property + @pulumi.getter(name="customizationResourceArns") + def customization_resource_arns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + ARNs of Custom Actions to associate with notifications in the provided chat channel. + """ + return pulumi.get(self, "customization_resource_arns") + + @customization_resource_arns.setter + def customization_resource_arns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "customization_resource_arns", value) + @property @pulumi.getter(name="guardrailPolicies") def guardrail_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: @@ -188,6 +204,7 @@ def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, configuration_name: Optional[pulumi.Input[str]] = None, + customization_resource_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, guardrail_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, iam_role_arn: Optional[pulumi.Input[str]] = None, logging_level: Optional[pulumi.Input[str]] = None, @@ -204,6 +221,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] configuration_name: The name of the configuration + :param pulumi.Input[Sequence[pulumi.Input[str]]] customization_resource_arns: ARNs of Custom Actions to associate with notifications in the provided chat channel. :param pulumi.Input[Sequence[pulumi.Input[str]]] guardrail_policies: The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. :param pulumi.Input[str] iam_role_arn: The ARN of the IAM role that defines the permissions for AWS Chatbot :param pulumi.Input[str] logging_level: Specifies the logging level for this configuration:ERROR,INFO or NONE. This property affects the log entries pushed to Amazon CloudWatch logs @@ -239,6 +257,7 @@ def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, configuration_name: Optional[pulumi.Input[str]] = None, + customization_resource_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, guardrail_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, iam_role_arn: Optional[pulumi.Input[str]] = None, logging_level: Optional[pulumi.Input[str]] = None, @@ -258,6 +277,7 @@ def _internal_init(__self__, __props__ = MicrosoftTeamsChannelConfigurationArgs.__new__(MicrosoftTeamsChannelConfigurationArgs) __props__.__dict__["configuration_name"] = configuration_name + __props__.__dict__["customization_resource_arns"] = customization_resource_arns __props__.__dict__["guardrail_policies"] = guardrail_policies if iam_role_arn is None and not opts.urn: raise TypeError("Missing required property 'iam_role_arn'") @@ -302,6 +322,7 @@ def get(resource_name: str, __props__.__dict__["arn"] = None __props__.__dict__["configuration_name"] = None + __props__.__dict__["customization_resource_arns"] = None __props__.__dict__["guardrail_policies"] = None __props__.__dict__["iam_role_arn"] = None __props__.__dict__["logging_level"] = None @@ -329,6 +350,14 @@ def configuration_name(self) -> pulumi.Output[str]: """ return pulumi.get(self, "configuration_name") + @property + @pulumi.getter(name="customizationResourceArns") + def customization_resource_arns(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + ARNs of Custom Actions to associate with notifications in the provided chat channel. + """ + return pulumi.get(self, "customization_resource_arns") + @property @pulumi.getter(name="guardrailPolicies") def guardrail_policies(self) -> pulumi.Output[Optional[Sequence[str]]]: diff --git a/sdk/python/pulumi_aws_native/chatbot/outputs.py b/sdk/python/pulumi_aws_native/chatbot/outputs.py new file mode 100644 index 0000000000..950db49e3f --- /dev/null +++ b/sdk/python/pulumi_aws_native/chatbot/outputs.py @@ -0,0 +1,153 @@ +# 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 ._enums import * + +__all__ = [ + 'CustomActionAttachment', + 'CustomActionAttachmentCriteria', + 'CustomActionDefinition', +] + +@pulumi.output_type +class CustomActionAttachment(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "buttonText": + suggest = "button_text" + elif key == "notificationType": + suggest = "notification_type" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CustomActionAttachment. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CustomActionAttachment.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CustomActionAttachment.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + button_text: Optional[str] = None, + criteria: Optional[Sequence['outputs.CustomActionAttachmentCriteria']] = None, + notification_type: Optional[str] = None, + variables: Optional[Mapping[str, str]] = None): + if button_text is not None: + pulumi.set(__self__, "button_text", button_text) + if criteria is not None: + pulumi.set(__self__, "criteria", criteria) + if notification_type is not None: + pulumi.set(__self__, "notification_type", notification_type) + if variables is not None: + pulumi.set(__self__, "variables", variables) + + @property + @pulumi.getter(name="buttonText") + def button_text(self) -> Optional[str]: + return pulumi.get(self, "button_text") + + @property + @pulumi.getter + def criteria(self) -> Optional[Sequence['outputs.CustomActionAttachmentCriteria']]: + return pulumi.get(self, "criteria") + + @property + @pulumi.getter(name="notificationType") + def notification_type(self) -> Optional[str]: + return pulumi.get(self, "notification_type") + + @property + @pulumi.getter + def variables(self) -> Optional[Mapping[str, str]]: + return pulumi.get(self, "variables") + + +@pulumi.output_type +class CustomActionAttachmentCriteria(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "variableName": + suggest = "variable_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CustomActionAttachmentCriteria. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CustomActionAttachmentCriteria.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CustomActionAttachmentCriteria.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + operator: 'CustomActionAttachmentCriteriaOperator', + variable_name: str, + value: Optional[str] = None): + pulumi.set(__self__, "operator", operator) + pulumi.set(__self__, "variable_name", variable_name) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def operator(self) -> 'CustomActionAttachmentCriteriaOperator': + return pulumi.get(self, "operator") + + @property + @pulumi.getter(name="variableName") + def variable_name(self) -> str: + return pulumi.get(self, "variable_name") + + @property + @pulumi.getter + def value(self) -> Optional[str]: + return pulumi.get(self, "value") + + +@pulumi.output_type +class CustomActionDefinition(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "commandText": + suggest = "command_text" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CustomActionDefinition. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CustomActionDefinition.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CustomActionDefinition.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + command_text: str): + pulumi.set(__self__, "command_text", command_text) + + @property + @pulumi.getter(name="commandText") + def command_text(self) -> str: + return pulumi.get(self, "command_text") + + diff --git a/sdk/python/pulumi_aws_native/chatbot/slack_channel_configuration.py b/sdk/python/pulumi_aws_native/chatbot/slack_channel_configuration.py index fbb8c393a3..f8d2143688 100644 --- a/sdk/python/pulumi_aws_native/chatbot/slack_channel_configuration.py +++ b/sdk/python/pulumi_aws_native/chatbot/slack_channel_configuration.py @@ -25,6 +25,7 @@ def __init__(__self__, *, slack_channel_id: pulumi.Input[str], slack_workspace_id: pulumi.Input[str], configuration_name: Optional[pulumi.Input[str]] = None, + customization_resource_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, guardrail_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, logging_level: Optional[pulumi.Input[str]] = None, sns_topic_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, @@ -36,6 +37,7 @@ def __init__(__self__, *, :param pulumi.Input[str] slack_channel_id: The id of the Slack channel :param pulumi.Input[str] slack_workspace_id: The id of the Slack workspace :param pulumi.Input[str] configuration_name: The name of the configuration + :param pulumi.Input[Sequence[pulumi.Input[str]]] customization_resource_arns: ARNs of Custom Actions to associate with notifications in the provided chat channel. :param pulumi.Input[Sequence[pulumi.Input[str]]] guardrail_policies: The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. :param pulumi.Input[str] logging_level: Specifies the logging level for this configuration:ERROR,INFO or NONE. This property affects the log entries pushed to Amazon CloudWatch logs :param pulumi.Input[Sequence[pulumi.Input[str]]] sns_topic_arns: ARNs of SNS topics which delivers notifications to AWS Chatbot, for example CloudWatch alarm notifications. @@ -47,6 +49,8 @@ def __init__(__self__, *, pulumi.set(__self__, "slack_workspace_id", slack_workspace_id) if configuration_name is not None: pulumi.set(__self__, "configuration_name", configuration_name) + if customization_resource_arns is not None: + pulumi.set(__self__, "customization_resource_arns", customization_resource_arns) if guardrail_policies is not None: pulumi.set(__self__, "guardrail_policies", guardrail_policies) if logging_level is not None: @@ -106,6 +110,18 @@ def configuration_name(self) -> Optional[pulumi.Input[str]]: def configuration_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "configuration_name", value) + @property + @pulumi.getter(name="customizationResourceArns") + def customization_resource_arns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + ARNs of Custom Actions to associate with notifications in the provided chat channel. + """ + return pulumi.get(self, "customization_resource_arns") + + @customization_resource_arns.setter + def customization_resource_arns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "customization_resource_arns", value) + @property @pulumi.getter(name="guardrailPolicies") def guardrail_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: @@ -173,6 +189,7 @@ def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, configuration_name: Optional[pulumi.Input[str]] = None, + customization_resource_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, guardrail_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, iam_role_arn: Optional[pulumi.Input[str]] = None, logging_level: Optional[pulumi.Input[str]] = None, @@ -188,6 +205,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] configuration_name: The name of the configuration + :param pulumi.Input[Sequence[pulumi.Input[str]]] customization_resource_arns: ARNs of Custom Actions to associate with notifications in the provided chat channel. :param pulumi.Input[Sequence[pulumi.Input[str]]] guardrail_policies: The list of IAM policy ARNs that are applied as channel guardrails. The AWS managed 'AdministratorAccess' policy is applied as a default if this is not set. :param pulumi.Input[str] iam_role_arn: The ARN of the IAM role that defines the permissions for AWS Chatbot :param pulumi.Input[str] logging_level: Specifies the logging level for this configuration:ERROR,INFO or NONE. This property affects the log entries pushed to Amazon CloudWatch logs @@ -222,6 +240,7 @@ def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, configuration_name: Optional[pulumi.Input[str]] = None, + customization_resource_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, guardrail_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, iam_role_arn: Optional[pulumi.Input[str]] = None, logging_level: Optional[pulumi.Input[str]] = None, @@ -240,6 +259,7 @@ def _internal_init(__self__, __props__ = SlackChannelConfigurationArgs.__new__(SlackChannelConfigurationArgs) __props__.__dict__["configuration_name"] = configuration_name + __props__.__dict__["customization_resource_arns"] = customization_resource_arns __props__.__dict__["guardrail_policies"] = guardrail_policies if iam_role_arn is None and not opts.urn: raise TypeError("Missing required property 'iam_role_arn'") @@ -281,6 +301,7 @@ def get(resource_name: str, __props__.__dict__["arn"] = None __props__.__dict__["configuration_name"] = None + __props__.__dict__["customization_resource_arns"] = None __props__.__dict__["guardrail_policies"] = None __props__.__dict__["iam_role_arn"] = None __props__.__dict__["logging_level"] = None @@ -307,6 +328,14 @@ def configuration_name(self) -> pulumi.Output[str]: """ return pulumi.get(self, "configuration_name") + @property + @pulumi.getter(name="customizationResourceArns") + def customization_resource_arns(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + ARNs of Custom Actions to associate with notifications in the provided chat channel. + """ + return pulumi.get(self, "customization_resource_arns") + @property @pulumi.getter(name="guardrailPolicies") def guardrail_policies(self) -> pulumi.Output[Optional[Sequence[str]]]: diff --git a/sdk/python/pulumi_aws_native/cloudtrail/__init__.py b/sdk/python/pulumi_aws_native/cloudtrail/__init__.py index 3e7673a4e7..96d96d4cb9 100644 --- a/sdk/python/pulumi_aws_native/cloudtrail/__init__.py +++ b/sdk/python/pulumi_aws_native/cloudtrail/__init__.py @@ -7,8 +7,10 @@ # Export this package's modules as members: from ._enums import * from .channel import * +from .dashboard import * from .event_data_store import * from .get_channel import * +from .get_dashboard import * from .get_event_data_store import * from .get_resource_policy import * from .get_trail import * diff --git a/sdk/python/pulumi_aws_native/cloudtrail/_enums.py b/sdk/python/pulumi_aws_native/cloudtrail/_enums.py index 96c8437a2e..3d35b1f681 100644 --- a/sdk/python/pulumi_aws_native/cloudtrail/_enums.py +++ b/sdk/python/pulumi_aws_native/cloudtrail/_enums.py @@ -6,6 +6,10 @@ __all__ = [ 'ChannelDestinationType', + 'DashboardRefreshScheduleFrequencyPropertiesUnit', + 'DashboardRefreshScheduleStatus', + 'DashboardStatus', + 'DashboardType', 'TrailEventSelectorReadWriteType', ] @@ -17,6 +21,41 @@ class ChannelDestinationType(str, Enum): EVENT_DATA_STORE = "EVENT_DATA_STORE" +class DashboardRefreshScheduleFrequencyPropertiesUnit(str, Enum): + """ + The frequency unit. Supported values are HOURS and DAYS. + """ + HOURS = "HOURS" + DAYS = "DAYS" + + +class DashboardRefreshScheduleStatus(str, Enum): + """ + The status of the schedule. Supported values are ENABLED and DISABLED. + """ + ENABLED = "ENABLED" + DISABLED = "DISABLED" + + +class DashboardStatus(str, Enum): + """ + The status of the dashboard. Values are CREATING, CREATED, UPDATING, UPDATED and DELETING. + """ + CREATING = "CREATING" + CREATED = "CREATED" + UPDATING = "UPDATING" + UPDATED = "UPDATED" + DELETING = "DELETING" + + +class DashboardType(str, Enum): + """ + The type of the dashboard. Values are CUSTOM and MANAGED. + """ + MANAGED = "MANAGED" + CUSTOM = "CUSTOM" + + class TrailEventSelectorReadWriteType(str, Enum): """ Specify if you want your trail to log read-only events, write-only events, or all. For example, the EC2 GetConsoleOutput is a read-only API operation and RunInstances is a write-only API operation. diff --git a/sdk/python/pulumi_aws_native/cloudtrail/_inputs.py b/sdk/python/pulumi_aws_native/cloudtrail/_inputs.py index 7282520646..9c31450bad 100644 --- a/sdk/python/pulumi_aws_native/cloudtrail/_inputs.py +++ b/sdk/python/pulumi_aws_native/cloudtrail/_inputs.py @@ -18,6 +18,12 @@ __all__ = [ 'ChannelDestinationArgs', 'ChannelDestinationArgsDict', + 'DashboardRefreshScheduleFrequencyPropertiesArgs', + 'DashboardRefreshScheduleFrequencyPropertiesArgsDict', + 'DashboardRefreshScheduleArgs', + 'DashboardRefreshScheduleArgsDict', + 'DashboardWidgetArgs', + 'DashboardWidgetArgsDict', 'EventDataStoreAdvancedEventSelectorArgs', 'EventDataStoreAdvancedEventSelectorArgsDict', 'EventDataStoreAdvancedFieldSelectorArgs', @@ -92,6 +98,200 @@ def type(self, value: pulumi.Input['ChannelDestinationType']): pulumi.set(self, "type", value) +if not MYPY: + class DashboardRefreshScheduleFrequencyPropertiesArgsDict(TypedDict): + unit: pulumi.Input['DashboardRefreshScheduleFrequencyPropertiesUnit'] + """ + The frequency unit. Supported values are HOURS and DAYS. + """ + value: pulumi.Input[int] + """ + The frequency value. + """ +elif False: + DashboardRefreshScheduleFrequencyPropertiesArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DashboardRefreshScheduleFrequencyPropertiesArgs: + def __init__(__self__, *, + unit: pulumi.Input['DashboardRefreshScheduleFrequencyPropertiesUnit'], + value: pulumi.Input[int]): + """ + :param pulumi.Input['DashboardRefreshScheduleFrequencyPropertiesUnit'] unit: The frequency unit. Supported values are HOURS and DAYS. + :param pulumi.Input[int] value: The frequency value. + """ + pulumi.set(__self__, "unit", unit) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def unit(self) -> pulumi.Input['DashboardRefreshScheduleFrequencyPropertiesUnit']: + """ + The frequency unit. Supported values are HOURS and DAYS. + """ + return pulumi.get(self, "unit") + + @unit.setter + def unit(self, value: pulumi.Input['DashboardRefreshScheduleFrequencyPropertiesUnit']): + pulumi.set(self, "unit", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[int]: + """ + The frequency value. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[int]): + pulumi.set(self, "value", value) + + +if not MYPY: + class DashboardRefreshScheduleArgsDict(TypedDict): + """ + Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + """ + frequency: NotRequired[pulumi.Input['DashboardRefreshScheduleFrequencyPropertiesArgsDict']] + status: NotRequired[pulumi.Input['DashboardRefreshScheduleStatus']] + """ + The status of the schedule. Supported values are ENABLED and DISABLED. + """ + time_of_day: NotRequired[pulumi.Input[str]] + """ + StartTime of the automatic schedule refresh. + """ +elif False: + DashboardRefreshScheduleArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DashboardRefreshScheduleArgs: + def __init__(__self__, *, + frequency: Optional[pulumi.Input['DashboardRefreshScheduleFrequencyPropertiesArgs']] = None, + status: Optional[pulumi.Input['DashboardRefreshScheduleStatus']] = None, + time_of_day: Optional[pulumi.Input[str]] = None): + """ + Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + :param pulumi.Input['DashboardRefreshScheduleStatus'] status: The status of the schedule. Supported values are ENABLED and DISABLED. + :param pulumi.Input[str] time_of_day: StartTime of the automatic schedule refresh. + """ + if frequency is not None: + pulumi.set(__self__, "frequency", frequency) + if status is not None: + pulumi.set(__self__, "status", status) + if time_of_day is not None: + pulumi.set(__self__, "time_of_day", time_of_day) + + @property + @pulumi.getter + def frequency(self) -> Optional[pulumi.Input['DashboardRefreshScheduleFrequencyPropertiesArgs']]: + return pulumi.get(self, "frequency") + + @frequency.setter + def frequency(self, value: Optional[pulumi.Input['DashboardRefreshScheduleFrequencyPropertiesArgs']]): + pulumi.set(self, "frequency", value) + + @property + @pulumi.getter + def status(self) -> Optional[pulumi.Input['DashboardRefreshScheduleStatus']]: + """ + The status of the schedule. Supported values are ENABLED and DISABLED. + """ + return pulumi.get(self, "status") + + @status.setter + def status(self, value: Optional[pulumi.Input['DashboardRefreshScheduleStatus']]): + pulumi.set(self, "status", value) + + @property + @pulumi.getter(name="timeOfDay") + def time_of_day(self) -> Optional[pulumi.Input[str]]: + """ + StartTime of the automatic schedule refresh. + """ + return pulumi.get(self, "time_of_day") + + @time_of_day.setter + def time_of_day(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "time_of_day", value) + + +if not MYPY: + class DashboardWidgetArgsDict(TypedDict): + """ + The dashboard widget + """ + query_statement: pulumi.Input[str] + """ + The SQL query statement on one or more event data stores. + """ + query_parameters: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + The placeholder keys in the QueryStatement. For example: $StartTime$, $EndTime$, $Period$. + """ + view_properties: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] + """ + The view properties of the widget. + """ +elif False: + DashboardWidgetArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DashboardWidgetArgs: + def __init__(__self__, *, + query_statement: pulumi.Input[str], + query_parameters: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + view_properties: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + """ + The dashboard widget + :param pulumi.Input[str] query_statement: The SQL query statement on one or more event data stores. + :param pulumi.Input[Sequence[pulumi.Input[str]]] query_parameters: The placeholder keys in the QueryStatement. For example: $StartTime$, $EndTime$, $Period$. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] view_properties: The view properties of the widget. + """ + pulumi.set(__self__, "query_statement", query_statement) + if query_parameters is not None: + pulumi.set(__self__, "query_parameters", query_parameters) + if view_properties is not None: + pulumi.set(__self__, "view_properties", view_properties) + + @property + @pulumi.getter(name="queryStatement") + def query_statement(self) -> pulumi.Input[str]: + """ + The SQL query statement on one or more event data stores. + """ + return pulumi.get(self, "query_statement") + + @query_statement.setter + def query_statement(self, value: pulumi.Input[str]): + pulumi.set(self, "query_statement", value) + + @property + @pulumi.getter(name="queryParameters") + def query_parameters(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The placeholder keys in the QueryStatement. For example: $StartTime$, $EndTime$, $Period$. + """ + return pulumi.get(self, "query_parameters") + + @query_parameters.setter + def query_parameters(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "query_parameters", value) + + @property + @pulumi.getter(name="viewProperties") + def view_properties(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + The view properties of the widget. + """ + return pulumi.get(self, "view_properties") + + @view_properties.setter + def view_properties(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "view_properties", value) + + if not MYPY: class EventDataStoreAdvancedEventSelectorArgsDict(TypedDict): """ diff --git a/sdk/python/pulumi_aws_native/cloudtrail/dashboard.py b/sdk/python/pulumi_aws_native/cloudtrail/dashboard.py new file mode 100644 index 0000000000..75f3b51e94 --- /dev/null +++ b/sdk/python/pulumi_aws_native/cloudtrail/dashboard.py @@ -0,0 +1,287 @@ +# 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__ = ['DashboardArgs', 'Dashboard'] + +@pulumi.input_type +class DashboardArgs: + def __init__(__self__, *, + name: Optional[pulumi.Input[str]] = None, + refresh_schedule: Optional[pulumi.Input['DashboardRefreshScheduleArgs']] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None, + termination_protection_enabled: Optional[pulumi.Input[bool]] = None, + widgets: Optional[pulumi.Input[Sequence[pulumi.Input['DashboardWidgetArgs']]]] = None): + """ + The set of arguments for constructing a Dashboard resource. + :param pulumi.Input[str] name: The name of the dashboard. + :param pulumi.Input['DashboardRefreshScheduleArgs'] refresh_schedule: Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + :param pulumi.Input[bool] termination_protection_enabled: Indicates whether the dashboard is protected from termination. + :param pulumi.Input[Sequence[pulumi.Input['DashboardWidgetArgs']]] widgets: List of widgets on the dashboard + """ + if name is not None: + pulumi.set(__self__, "name", name) + if refresh_schedule is not None: + pulumi.set(__self__, "refresh_schedule", refresh_schedule) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if termination_protection_enabled is not None: + pulumi.set(__self__, "termination_protection_enabled", termination_protection_enabled) + if widgets is not None: + pulumi.set(__self__, "widgets", widgets) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the dashboard. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="refreshSchedule") + def refresh_schedule(self) -> Optional[pulumi.Input['DashboardRefreshScheduleArgs']]: + """ + Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + """ + return pulumi.get(self, "refresh_schedule") + + @refresh_schedule.setter + def refresh_schedule(self, value: Optional[pulumi.Input['DashboardRefreshScheduleArgs']]): + pulumi.set(self, "refresh_schedule", 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) + + @property + @pulumi.getter(name="terminationProtectionEnabled") + def termination_protection_enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Indicates whether the dashboard is protected from termination. + """ + return pulumi.get(self, "termination_protection_enabled") + + @termination_protection_enabled.setter + def termination_protection_enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "termination_protection_enabled", value) + + @property + @pulumi.getter + def widgets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DashboardWidgetArgs']]]]: + """ + List of widgets on the dashboard + """ + return pulumi.get(self, "widgets") + + @widgets.setter + def widgets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DashboardWidgetArgs']]]]): + pulumi.set(self, "widgets", value) + + +class Dashboard(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + name: Optional[pulumi.Input[str]] = None, + refresh_schedule: Optional[pulumi.Input[Union['DashboardRefreshScheduleArgs', 'DashboardRefreshScheduleArgsDict']]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]]] = None, + termination_protection_enabled: Optional[pulumi.Input[bool]] = None, + widgets: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DashboardWidgetArgs', 'DashboardWidgetArgsDict']]]]] = None, + __props__=None): + """ + The Amazon CloudTrail dashboard resource allows customers to manage managed dashboards and create custom dashboards. You can manually refresh custom and managed dashboards. For custom dashboards, you can also set up an automatic refresh schedule and modify dashboard widgets. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] name: The name of the dashboard. + :param pulumi.Input[Union['DashboardRefreshScheduleArgs', 'DashboardRefreshScheduleArgsDict']] refresh_schedule: Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + :param pulumi.Input[bool] termination_protection_enabled: Indicates whether the dashboard is protected from termination. + :param pulumi.Input[Sequence[pulumi.Input[Union['DashboardWidgetArgs', 'DashboardWidgetArgsDict']]]] widgets: List of widgets on the dashboard + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[DashboardArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + The Amazon CloudTrail dashboard resource allows customers to manage managed dashboards and create custom dashboards. You can manually refresh custom and managed dashboards. For custom dashboards, you can also set up an automatic refresh schedule and modify dashboard widgets. + + :param str resource_name: The name of the resource. + :param DashboardArgs 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(DashboardArgs, 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, + name: Optional[pulumi.Input[str]] = None, + refresh_schedule: Optional[pulumi.Input[Union['DashboardRefreshScheduleArgs', 'DashboardRefreshScheduleArgsDict']]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]]] = None, + termination_protection_enabled: Optional[pulumi.Input[bool]] = None, + widgets: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DashboardWidgetArgs', 'DashboardWidgetArgsDict']]]]] = 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__ = DashboardArgs.__new__(DashboardArgs) + + __props__.__dict__["name"] = name + __props__.__dict__["refresh_schedule"] = refresh_schedule + __props__.__dict__["tags"] = tags + __props__.__dict__["termination_protection_enabled"] = termination_protection_enabled + __props__.__dict__["widgets"] = widgets + __props__.__dict__["created_timestamp"] = None + __props__.__dict__["dashboard_arn"] = None + __props__.__dict__["status"] = None + __props__.__dict__["type"] = None + __props__.__dict__["updated_timestamp"] = None + super(Dashboard, __self__).__init__( + 'aws-native:cloudtrail:Dashboard', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'Dashboard': + """ + Get an existing Dashboard 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__ = DashboardArgs.__new__(DashboardArgs) + + __props__.__dict__["created_timestamp"] = None + __props__.__dict__["dashboard_arn"] = None + __props__.__dict__["name"] = None + __props__.__dict__["refresh_schedule"] = None + __props__.__dict__["status"] = None + __props__.__dict__["tags"] = None + __props__.__dict__["termination_protection_enabled"] = None + __props__.__dict__["type"] = None + __props__.__dict__["updated_timestamp"] = None + __props__.__dict__["widgets"] = None + return Dashboard(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="createdTimestamp") + def created_timestamp(self) -> pulumi.Output[str]: + """ + The timestamp of the dashboard creation. + """ + return pulumi.get(self, "created_timestamp") + + @property + @pulumi.getter(name="dashboardArn") + def dashboard_arn(self) -> pulumi.Output[str]: + """ + The ARN of the dashboard. + """ + return pulumi.get(self, "dashboard_arn") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[Optional[str]]: + """ + The name of the dashboard. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="refreshSchedule") + def refresh_schedule(self) -> pulumi.Output[Optional['outputs.DashboardRefreshSchedule']]: + """ + Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + """ + return pulumi.get(self, "refresh_schedule") + + @property + @pulumi.getter + def status(self) -> pulumi.Output['DashboardStatus']: + """ + The status of the dashboard. Values are CREATING, CREATED, UPDATING, UPDATED and DELETING. + """ + return pulumi.get(self, "status") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="terminationProtectionEnabled") + def termination_protection_enabled(self) -> pulumi.Output[Optional[bool]]: + """ + Indicates whether the dashboard is protected from termination. + """ + return pulumi.get(self, "termination_protection_enabled") + + @property + @pulumi.getter + def type(self) -> pulumi.Output['DashboardType']: + """ + The type of the dashboard. Values are CUSTOM and MANAGED. + """ + return pulumi.get(self, "type") + + @property + @pulumi.getter(name="updatedTimestamp") + def updated_timestamp(self) -> pulumi.Output[str]: + """ + The timestamp showing when the dashboard was updated, if applicable. UpdatedTimestamp is always either the same or newer than the time shown in CreatedTimestamp. + """ + return pulumi.get(self, "updated_timestamp") + + @property + @pulumi.getter + def widgets(self) -> pulumi.Output[Optional[Sequence['outputs.DashboardWidget']]]: + """ + List of widgets on the dashboard + """ + return pulumi.get(self, "widgets") + diff --git a/sdk/python/pulumi_aws_native/cloudtrail/get_dashboard.py b/sdk/python/pulumi_aws_native/cloudtrail/get_dashboard.py new file mode 100644 index 0000000000..f9a9c50e6d --- /dev/null +++ b/sdk/python/pulumi_aws_native/cloudtrail/get_dashboard.py @@ -0,0 +1,203 @@ +# 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__ = [ + 'GetDashboardResult', + 'AwaitableGetDashboardResult', + 'get_dashboard', + 'get_dashboard_output', +] + +@pulumi.output_type +class GetDashboardResult: + def __init__(__self__, created_timestamp=None, dashboard_arn=None, name=None, refresh_schedule=None, status=None, tags=None, termination_protection_enabled=None, type=None, updated_timestamp=None, widgets=None): + if created_timestamp and not isinstance(created_timestamp, str): + raise TypeError("Expected argument 'created_timestamp' to be a str") + pulumi.set(__self__, "created_timestamp", created_timestamp) + if dashboard_arn and not isinstance(dashboard_arn, str): + raise TypeError("Expected argument 'dashboard_arn' to be a str") + pulumi.set(__self__, "dashboard_arn", dashboard_arn) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if refresh_schedule and not isinstance(refresh_schedule, dict): + raise TypeError("Expected argument 'refresh_schedule' to be a dict") + pulumi.set(__self__, "refresh_schedule", refresh_schedule) + if status and not isinstance(status, str): + raise TypeError("Expected argument 'status' to be a str") + pulumi.set(__self__, "status", status) + if tags and not isinstance(tags, list): + raise TypeError("Expected argument 'tags' to be a list") + pulumi.set(__self__, "tags", tags) + if termination_protection_enabled and not isinstance(termination_protection_enabled, bool): + raise TypeError("Expected argument 'termination_protection_enabled' to be a bool") + pulumi.set(__self__, "termination_protection_enabled", termination_protection_enabled) + if type and not isinstance(type, str): + raise TypeError("Expected argument 'type' to be a str") + pulumi.set(__self__, "type", type) + if updated_timestamp and not isinstance(updated_timestamp, str): + raise TypeError("Expected argument 'updated_timestamp' to be a str") + pulumi.set(__self__, "updated_timestamp", updated_timestamp) + if widgets and not isinstance(widgets, list): + raise TypeError("Expected argument 'widgets' to be a list") + pulumi.set(__self__, "widgets", widgets) + + @property + @pulumi.getter(name="createdTimestamp") + def created_timestamp(self) -> Optional[str]: + """ + The timestamp of the dashboard creation. + """ + return pulumi.get(self, "created_timestamp") + + @property + @pulumi.getter(name="dashboardArn") + def dashboard_arn(self) -> Optional[str]: + """ + The ARN of the dashboard. + """ + return pulumi.get(self, "dashboard_arn") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + The name of the dashboard. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="refreshSchedule") + def refresh_schedule(self) -> Optional['outputs.DashboardRefreshSchedule']: + """ + Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + """ + return pulumi.get(self, "refresh_schedule") + + @property + @pulumi.getter + def status(self) -> Optional['DashboardStatus']: + """ + The status of the dashboard. Values are CREATING, CREATED, UPDATING, UPDATED and DELETING. + """ + return pulumi.get(self, "status") + + @property + @pulumi.getter + def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="terminationProtectionEnabled") + def termination_protection_enabled(self) -> Optional[bool]: + """ + Indicates whether the dashboard is protected from termination. + """ + return pulumi.get(self, "termination_protection_enabled") + + @property + @pulumi.getter + def type(self) -> Optional['DashboardType']: + """ + The type of the dashboard. Values are CUSTOM and MANAGED. + """ + return pulumi.get(self, "type") + + @property + @pulumi.getter(name="updatedTimestamp") + def updated_timestamp(self) -> Optional[str]: + """ + The timestamp showing when the dashboard was updated, if applicable. UpdatedTimestamp is always either the same or newer than the time shown in CreatedTimestamp. + """ + return pulumi.get(self, "updated_timestamp") + + @property + @pulumi.getter + def widgets(self) -> Optional[Sequence['outputs.DashboardWidget']]: + """ + List of widgets on the dashboard + """ + return pulumi.get(self, "widgets") + + +class AwaitableGetDashboardResult(GetDashboardResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetDashboardResult( + created_timestamp=self.created_timestamp, + dashboard_arn=self.dashboard_arn, + name=self.name, + refresh_schedule=self.refresh_schedule, + status=self.status, + tags=self.tags, + termination_protection_enabled=self.termination_protection_enabled, + type=self.type, + updated_timestamp=self.updated_timestamp, + widgets=self.widgets) + + +def get_dashboard(dashboard_arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetDashboardResult: + """ + The Amazon CloudTrail dashboard resource allows customers to manage managed dashboards and create custom dashboards. You can manually refresh custom and managed dashboards. For custom dashboards, you can also set up an automatic refresh schedule and modify dashboard widgets. + + + :param str dashboard_arn: The ARN of the dashboard. + """ + __args__ = dict() + __args__['dashboardArn'] = dashboard_arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:cloudtrail:getDashboard', __args__, opts=opts, typ=GetDashboardResult).value + + return AwaitableGetDashboardResult( + created_timestamp=pulumi.get(__ret__, 'created_timestamp'), + dashboard_arn=pulumi.get(__ret__, 'dashboard_arn'), + name=pulumi.get(__ret__, 'name'), + refresh_schedule=pulumi.get(__ret__, 'refresh_schedule'), + status=pulumi.get(__ret__, 'status'), + tags=pulumi.get(__ret__, 'tags'), + termination_protection_enabled=pulumi.get(__ret__, 'termination_protection_enabled'), + type=pulumi.get(__ret__, 'type'), + updated_timestamp=pulumi.get(__ret__, 'updated_timestamp'), + widgets=pulumi.get(__ret__, 'widgets')) +def get_dashboard_output(dashboard_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetDashboardResult]: + """ + The Amazon CloudTrail dashboard resource allows customers to manage managed dashboards and create custom dashboards. You can manually refresh custom and managed dashboards. For custom dashboards, you can also set up an automatic refresh schedule and modify dashboard widgets. + + + :param str dashboard_arn: The ARN of the dashboard. + """ + __args__ = dict() + __args__['dashboardArn'] = dashboard_arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('aws-native:cloudtrail:getDashboard', __args__, opts=opts, typ=GetDashboardResult) + return __ret__.apply(lambda __response__: GetDashboardResult( + created_timestamp=pulumi.get(__response__, 'created_timestamp'), + dashboard_arn=pulumi.get(__response__, 'dashboard_arn'), + name=pulumi.get(__response__, 'name'), + refresh_schedule=pulumi.get(__response__, 'refresh_schedule'), + status=pulumi.get(__response__, 'status'), + tags=pulumi.get(__response__, 'tags'), + termination_protection_enabled=pulumi.get(__response__, 'termination_protection_enabled'), + type=pulumi.get(__response__, 'type'), + updated_timestamp=pulumi.get(__response__, 'updated_timestamp'), + widgets=pulumi.get(__response__, 'widgets'))) diff --git a/sdk/python/pulumi_aws_native/cloudtrail/outputs.py b/sdk/python/pulumi_aws_native/cloudtrail/outputs.py index b18429b749..b73a662e92 100644 --- a/sdk/python/pulumi_aws_native/cloudtrail/outputs.py +++ b/sdk/python/pulumi_aws_native/cloudtrail/outputs.py @@ -18,6 +18,9 @@ __all__ = [ 'ChannelDestination', + 'DashboardRefreshSchedule', + 'DashboardRefreshScheduleFrequencyProperties', + 'DashboardWidget', 'EventDataStoreAdvancedEventSelector', 'EventDataStoreAdvancedFieldSelector', 'EventDataStoreInsightSelector', @@ -61,6 +64,162 @@ def type(self) -> 'ChannelDestinationType': return pulumi.get(self, "type") +@pulumi.output_type +class DashboardRefreshSchedule(dict): + """ + Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "timeOfDay": + suggest = "time_of_day" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DashboardRefreshSchedule. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DashboardRefreshSchedule.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DashboardRefreshSchedule.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + frequency: Optional['outputs.DashboardRefreshScheduleFrequencyProperties'] = None, + status: Optional['DashboardRefreshScheduleStatus'] = None, + time_of_day: Optional[str] = None): + """ + Configures the automatic refresh schedule for the dashboard. Includes the frequency unit (DAYS or HOURS) and value, as well as the status (ENABLED or DISABLED) of the refresh schedule. + :param 'DashboardRefreshScheduleStatus' status: The status of the schedule. Supported values are ENABLED and DISABLED. + :param str time_of_day: StartTime of the automatic schedule refresh. + """ + if frequency is not None: + pulumi.set(__self__, "frequency", frequency) + if status is not None: + pulumi.set(__self__, "status", status) + if time_of_day is not None: + pulumi.set(__self__, "time_of_day", time_of_day) + + @property + @pulumi.getter + def frequency(self) -> Optional['outputs.DashboardRefreshScheduleFrequencyProperties']: + return pulumi.get(self, "frequency") + + @property + @pulumi.getter + def status(self) -> Optional['DashboardRefreshScheduleStatus']: + """ + The status of the schedule. Supported values are ENABLED and DISABLED. + """ + return pulumi.get(self, "status") + + @property + @pulumi.getter(name="timeOfDay") + def time_of_day(self) -> Optional[str]: + """ + StartTime of the automatic schedule refresh. + """ + return pulumi.get(self, "time_of_day") + + +@pulumi.output_type +class DashboardRefreshScheduleFrequencyProperties(dict): + def __init__(__self__, *, + unit: 'DashboardRefreshScheduleFrequencyPropertiesUnit', + value: int): + """ + :param 'DashboardRefreshScheduleFrequencyPropertiesUnit' unit: The frequency unit. Supported values are HOURS and DAYS. + :param int value: The frequency value. + """ + pulumi.set(__self__, "unit", unit) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def unit(self) -> 'DashboardRefreshScheduleFrequencyPropertiesUnit': + """ + The frequency unit. Supported values are HOURS and DAYS. + """ + return pulumi.get(self, "unit") + + @property + @pulumi.getter + def value(self) -> int: + """ + The frequency value. + """ + return pulumi.get(self, "value") + + +@pulumi.output_type +class DashboardWidget(dict): + """ + The dashboard widget + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "queryStatement": + suggest = "query_statement" + elif key == "queryParameters": + suggest = "query_parameters" + elif key == "viewProperties": + suggest = "view_properties" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DashboardWidget. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DashboardWidget.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DashboardWidget.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + query_statement: str, + query_parameters: Optional[Sequence[str]] = None, + view_properties: Optional[Mapping[str, str]] = None): + """ + The dashboard widget + :param str query_statement: The SQL query statement on one or more event data stores. + :param Sequence[str] query_parameters: The placeholder keys in the QueryStatement. For example: $StartTime$, $EndTime$, $Period$. + :param Mapping[str, str] view_properties: The view properties of the widget. + """ + pulumi.set(__self__, "query_statement", query_statement) + if query_parameters is not None: + pulumi.set(__self__, "query_parameters", query_parameters) + if view_properties is not None: + pulumi.set(__self__, "view_properties", view_properties) + + @property + @pulumi.getter(name="queryStatement") + def query_statement(self) -> str: + """ + The SQL query statement on one or more event data stores. + """ + return pulumi.get(self, "query_statement") + + @property + @pulumi.getter(name="queryParameters") + def query_parameters(self) -> Optional[Sequence[str]]: + """ + The placeholder keys in the QueryStatement. For example: $StartTime$, $EndTime$, $Period$. + """ + return pulumi.get(self, "query_parameters") + + @property + @pulumi.getter(name="viewProperties") + def view_properties(self) -> Optional[Mapping[str, str]]: + """ + The view properties of the widget. + """ + return pulumi.get(self, "view_properties") + + @pulumi.output_type class EventDataStoreAdvancedEventSelector(dict): """ diff --git a/sdk/python/pulumi_aws_native/customerprofiles/_inputs.py b/sdk/python/pulumi_aws_native/customerprofiles/_inputs.py index fab81d20d6..61a2e8eff3 100644 --- a/sdk/python/pulumi_aws_native/customerprofiles/_inputs.py +++ b/sdk/python/pulumi_aws_native/customerprofiles/_inputs.py @@ -2834,9 +2834,21 @@ class SegmentDefinitionGroupArgsDict(TypedDict): An array that defines the set of segment criteria to evaluate when handling segment groups for the segment. """ dimensions: NotRequired[pulumi.Input[Sequence[pulumi.Input[Union['SegmentDefinitionDimension0PropertiesArgsDict', 'SegmentDefinitionDimension1PropertiesArgsDict']]]]] + """ + Defines the attributes to segment on. + """ source_segments: NotRequired[pulumi.Input[Sequence[pulumi.Input['SegmentDefinitionSourceSegmentArgsDict']]]] + """ + Defines the starting source of data. + """ source_type: NotRequired[pulumi.Input['SegmentDefinitionIncludeOptions']] + """ + Defines how to interact with the source data. + """ type: NotRequired[pulumi.Input['SegmentDefinitionIncludeOptions']] + """ + Defines how to interact with the profiles found in the current filtering. + """ elif False: SegmentDefinitionGroupArgsDict: TypeAlias = Mapping[str, Any] @@ -2849,6 +2861,10 @@ def __init__(__self__, *, type: Optional[pulumi.Input['SegmentDefinitionIncludeOptions']] = None): """ An array that defines the set of segment criteria to evaluate when handling segment groups for the segment. + :param pulumi.Input[Sequence[pulumi.Input[Union['SegmentDefinitionDimension0PropertiesArgs', 'SegmentDefinitionDimension1PropertiesArgs']]]] dimensions: Defines the attributes to segment on. + :param pulumi.Input[Sequence[pulumi.Input['SegmentDefinitionSourceSegmentArgs']]] source_segments: Defines the starting source of data. + :param pulumi.Input['SegmentDefinitionIncludeOptions'] source_type: Defines how to interact with the source data. + :param pulumi.Input['SegmentDefinitionIncludeOptions'] type: Defines how to interact with the profiles found in the current filtering. """ if dimensions is not None: pulumi.set(__self__, "dimensions", dimensions) @@ -2862,6 +2878,9 @@ def __init__(__self__, *, @property @pulumi.getter def dimensions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Union['SegmentDefinitionDimension0PropertiesArgs', 'SegmentDefinitionDimension1PropertiesArgs']]]]]: + """ + Defines the attributes to segment on. + """ return pulumi.get(self, "dimensions") @dimensions.setter @@ -2871,6 +2890,9 @@ def dimensions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Union['S @property @pulumi.getter(name="sourceSegments") def source_segments(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SegmentDefinitionSourceSegmentArgs']]]]: + """ + Defines the starting source of data. + """ return pulumi.get(self, "source_segments") @source_segments.setter @@ -2880,6 +2902,9 @@ def source_segments(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['Se @property @pulumi.getter(name="sourceType") def source_type(self) -> Optional[pulumi.Input['SegmentDefinitionIncludeOptions']]: + """ + Defines how to interact with the source data. + """ return pulumi.get(self, "source_type") @source_type.setter @@ -2889,6 +2914,9 @@ def source_type(self, value: Optional[pulumi.Input['SegmentDefinitionIncludeOpti @property @pulumi.getter def type(self) -> Optional[pulumi.Input['SegmentDefinitionIncludeOptions']]: + """ + Defines how to interact with the profiles found in the current filtering. + """ return pulumi.get(self, "type") @type.setter @@ -3302,7 +3330,13 @@ def end(self, value: Optional[pulumi.Input[int]]): if not MYPY: class SegmentDefinitionSegmentGroupArgsDict(TypedDict): groups: NotRequired[pulumi.Input[Sequence[pulumi.Input['SegmentDefinitionGroupArgsDict']]]] + """ + Holds the list of groups within the segment definition. + """ include: NotRequired[pulumi.Input['SegmentDefinitionIncludeOptions']] + """ + Defines whether to include or exclude the profiles that fit the segment criteria. + """ elif False: SegmentDefinitionSegmentGroupArgsDict: TypeAlias = Mapping[str, Any] @@ -3311,6 +3345,10 @@ class SegmentDefinitionSegmentGroupArgs: def __init__(__self__, *, groups: Optional[pulumi.Input[Sequence[pulumi.Input['SegmentDefinitionGroupArgs']]]] = None, include: Optional[pulumi.Input['SegmentDefinitionIncludeOptions']] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['SegmentDefinitionGroupArgs']]] groups: Holds the list of groups within the segment definition. + :param pulumi.Input['SegmentDefinitionIncludeOptions'] include: Defines whether to include or exclude the profiles that fit the segment criteria. + """ if groups is not None: pulumi.set(__self__, "groups", groups) if include is not None: @@ -3319,6 +3357,9 @@ def __init__(__self__, *, @property @pulumi.getter def groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SegmentDefinitionGroupArgs']]]]: + """ + Holds the list of groups within the segment definition. + """ return pulumi.get(self, "groups") @groups.setter @@ -3328,6 +3369,9 @@ def groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['SegmentDefi @property @pulumi.getter def include(self) -> Optional[pulumi.Input['SegmentDefinitionIncludeOptions']]: + """ + Defines whether to include or exclude the profiles that fit the segment criteria. + """ return pulumi.get(self, "include") @include.setter @@ -3341,6 +3385,9 @@ class SegmentDefinitionSourceSegmentArgsDict(TypedDict): The base segment to build the segment on. """ segment_definition_name: NotRequired[pulumi.Input[str]] + """ + The name of the source segment. + """ elif False: SegmentDefinitionSourceSegmentArgsDict: TypeAlias = Mapping[str, Any] @@ -3350,6 +3397,7 @@ def __init__(__self__, *, segment_definition_name: Optional[pulumi.Input[str]] = None): """ The base segment to build the segment on. + :param pulumi.Input[str] segment_definition_name: The name of the source segment. """ if segment_definition_name is not None: pulumi.set(__self__, "segment_definition_name", segment_definition_name) @@ -3357,6 +3405,9 @@ def __init__(__self__, *, @property @pulumi.getter(name="segmentDefinitionName") def segment_definition_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the source segment. + """ return pulumi.get(self, "segment_definition_name") @segment_definition_name.setter diff --git a/sdk/python/pulumi_aws_native/customerprofiles/outputs.py b/sdk/python/pulumi_aws_native/customerprofiles/outputs.py index 7ed2a80452..e736147225 100644 --- a/sdk/python/pulumi_aws_native/customerprofiles/outputs.py +++ b/sdk/python/pulumi_aws_native/customerprofiles/outputs.py @@ -2467,6 +2467,10 @@ def __init__(__self__, *, type: Optional['SegmentDefinitionIncludeOptions'] = None): """ An array that defines the set of segment criteria to evaluate when handling segment groups for the segment. + :param Sequence[Union['SegmentDefinitionDimension0Properties', 'SegmentDefinitionDimension1Properties']] dimensions: Defines the attributes to segment on. + :param Sequence['SegmentDefinitionSourceSegment'] source_segments: Defines the starting source of data. + :param 'SegmentDefinitionIncludeOptions' source_type: Defines how to interact with the source data. + :param 'SegmentDefinitionIncludeOptions' type: Defines how to interact with the profiles found in the current filtering. """ if dimensions is not None: pulumi.set(__self__, "dimensions", dimensions) @@ -2480,21 +2484,33 @@ def __init__(__self__, *, @property @pulumi.getter def dimensions(self) -> Optional[Sequence[Any]]: + """ + Defines the attributes to segment on. + """ return pulumi.get(self, "dimensions") @property @pulumi.getter(name="sourceSegments") def source_segments(self) -> Optional[Sequence['outputs.SegmentDefinitionSourceSegment']]: + """ + Defines the starting source of data. + """ return pulumi.get(self, "source_segments") @property @pulumi.getter(name="sourceType") def source_type(self) -> Optional['SegmentDefinitionIncludeOptions']: + """ + Defines how to interact with the source data. + """ return pulumi.get(self, "source_type") @property @pulumi.getter def type(self) -> Optional['SegmentDefinitionIncludeOptions']: + """ + Defines how to interact with the profiles found in the current filtering. + """ return pulumi.get(self, "type") @@ -2822,6 +2838,10 @@ class SegmentDefinitionSegmentGroup(dict): def __init__(__self__, *, groups: Optional[Sequence['outputs.SegmentDefinitionGroup']] = None, include: Optional['SegmentDefinitionIncludeOptions'] = None): + """ + :param Sequence['SegmentDefinitionGroup'] groups: Holds the list of groups within the segment definition. + :param 'SegmentDefinitionIncludeOptions' include: Defines whether to include or exclude the profiles that fit the segment criteria. + """ if groups is not None: pulumi.set(__self__, "groups", groups) if include is not None: @@ -2830,11 +2850,17 @@ def __init__(__self__, *, @property @pulumi.getter def groups(self) -> Optional[Sequence['outputs.SegmentDefinitionGroup']]: + """ + Holds the list of groups within the segment definition. + """ return pulumi.get(self, "groups") @property @pulumi.getter def include(self) -> Optional['SegmentDefinitionIncludeOptions']: + """ + Defines whether to include or exclude the profiles that fit the segment criteria. + """ return pulumi.get(self, "include") @@ -2864,6 +2890,7 @@ def __init__(__self__, *, segment_definition_name: Optional[str] = None): """ The base segment to build the segment on. + :param str segment_definition_name: The name of the source segment. """ if segment_definition_name is not None: pulumi.set(__self__, "segment_definition_name", segment_definition_name) @@ -2871,6 +2898,9 @@ def __init__(__self__, *, @property @pulumi.getter(name="segmentDefinitionName") def segment_definition_name(self) -> Optional[str]: + """ + The name of the source segment. + """ return pulumi.get(self, "segment_definition_name") diff --git a/sdk/python/pulumi_aws_native/ecs/_enums.py b/sdk/python/pulumi_aws_native/ecs/_enums.py index 835faaf45d..94b6c7f0b8 100644 --- a/sdk/python/pulumi_aws_native/ecs/_enums.py +++ b/sdk/python/pulumi_aws_native/ecs/_enums.py @@ -76,6 +76,11 @@ class ClusterCapacityProviderAssociationsCapacityProvider0(str, Enum): class ServiceAvailabilityZoneRebalancing(str, Enum): + """ + Indicates whether to use Availability Zone rebalancing for the service. + + For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* . + """ ENABLED = "ENABLED" DISABLED = "DISABLED" diff --git a/sdk/python/pulumi_aws_native/ecs/_inputs.py b/sdk/python/pulumi_aws_native/ecs/_inputs.py index 202faf4fb4..2b9496e97c 100644 --- a/sdk/python/pulumi_aws_native/ecs/_inputs.py +++ b/sdk/python/pulumi_aws_native/ecs/_inputs.py @@ -5012,7 +5012,7 @@ class TaskDefinitionHealthCheckArgsDict(TypedDict): ``[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]`` You don't include the double quotes and brackets when you use the AWS Management Console. ``CMD-SHELL, curl -f http://localhost/ || exit 1`` - An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command + An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command. """ interval: NotRequired[pulumi.Input[int]] """ @@ -5055,7 +5055,7 @@ def __init__(__self__, *, ``[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]`` You don't include the double quotes and brackets when you use the AWS Management Console. ``CMD-SHELL, curl -f http://localhost/ || exit 1`` - An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command + An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command. :param pulumi.Input[int] interval: The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. :param pulumi.Input[int] retries: The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. :param pulumi.Input[int] start_period: The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. @@ -5082,7 +5082,7 @@ def command(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: ``[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]`` You don't include the double quotes and brackets when you use the AWS Management Console. ``CMD-SHELL, curl -f http://localhost/ || exit 1`` - An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command + An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command. """ return pulumi.get(self, "command") @@ -5902,8 +5902,7 @@ class TaskDefinitionPortMappingArgsDict(TypedDict): """ name: NotRequired[pulumi.Input[str]] """ - The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. - For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. + The name that's used for the port mapping. This parameter is the name that you use in the ``serviceConnectConfiguration`` and the ``vpcLatticeConfigurations`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. """ protocol: NotRequired[pulumi.Input[str]] """ @@ -5961,8 +5960,7 @@ def __init__(__self__, *, If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under ``/proc/sys/net/ipv4/ip_local_port_range``. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the ``remainingResources`` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota. - :param pulumi.Input[str] name: The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. - For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. + :param pulumi.Input[str] name: The name that's used for the port mapping. This parameter is the name that you use in the ``serviceConnectConfiguration`` and the ``vpcLatticeConfigurations`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. :param pulumi.Input[str] protocol: The protocol used for the port mapping. Valid values are ``tcp`` and ``udp``. The default is ``tcp``. ``protocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. """ if app_protocol is not None: @@ -6062,8 +6060,7 @@ def host_port(self, value: Optional[pulumi.Input[int]]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. - For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. + The name that's used for the port mapping. This parameter is the name that you use in the ``serviceConnectConfiguration`` and the ``vpcLatticeConfigurations`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. """ return pulumi.get(self, "name") diff --git a/sdk/python/pulumi_aws_native/ecs/get_service.py b/sdk/python/pulumi_aws_native/ecs/get_service.py index 120e27495f..6d3d7a4ac7 100644 --- a/sdk/python/pulumi_aws_native/ecs/get_service.py +++ b/sdk/python/pulumi_aws_native/ecs/get_service.py @@ -88,6 +88,11 @@ def __init__(__self__, availability_zone_rebalancing=None, capacity_provider_str @property @pulumi.getter(name="availabilityZoneRebalancing") def availability_zone_rebalancing(self) -> Optional['ServiceAvailabilityZoneRebalancing']: + """ + Indicates whether to use Availability Zone rebalancing for the service. + + For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* . + """ return pulumi.get(self, "availability_zone_rebalancing") @property diff --git a/sdk/python/pulumi_aws_native/ecs/outputs.py b/sdk/python/pulumi_aws_native/ecs/outputs.py index 987b676892..4ee9c763fa 100644 --- a/sdk/python/pulumi_aws_native/ecs/outputs.py +++ b/sdk/python/pulumi_aws_native/ecs/outputs.py @@ -3924,7 +3924,7 @@ def __init__(__self__, *, ``[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]`` You don't include the double quotes and brackets when you use the AWS Management Console. ``CMD-SHELL, curl -f http://localhost/ || exit 1`` - An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command + An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command. :param int interval: The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. :param int retries: The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. :param int start_period: The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. @@ -3951,7 +3951,7 @@ def command(self) -> Optional[Sequence[str]]: ``[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]`` You don't include the double quotes and brackets when you use the AWS Management Console. ``CMD-SHELL, curl -f http://localhost/ || exit 1`` - An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command + An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the docker container create command. """ return pulumi.get(self, "command") @@ -4621,8 +4621,7 @@ def __init__(__self__, *, If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically receives a port in the ephemeral port range for your container instance operating system and Docker version. The default ephemeral port range for Docker version 1.6.0 and later is listed on the instance under ``/proc/sys/net/ipv4/ip_local_port_range``. If this kernel parameter is unavailable, the default ephemeral port range from 49153 through 65535 (Linux) or 49152 through 65535 (Windows) is used. Do not attempt to specify a host port in the ephemeral port range as these are reserved for automatic assignment. In general, ports below 32768 are outside of the ephemeral port range. The default reserved ports are 22 for SSH, the Docker ports 2375 and 2376, and the Amazon ECS container agent ports 51678-51680. Any host port that was previously specified in a running task is also reserved while the task is running. That is, after a task stops, the host port is released. The current reserved ports are displayed in the ``remainingResources`` of [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) output. A container instance can have up to 100 reserved ports at a time. This number includes the default reserved ports. Automatically assigned ports aren't included in the 100 reserved ports quota. - :param str name: The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. - For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. + :param str name: The name that's used for the port mapping. This parameter is the name that you use in the ``serviceConnectConfiguration`` and the ``vpcLatticeConfigurations`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. :param str protocol: The protocol used for the port mapping. Valid values are ``tcp`` and ``udp``. The default is ``tcp``. ``protocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. """ if app_protocol is not None: @@ -4706,8 +4705,7 @@ def host_port(self) -> Optional[int]: @pulumi.getter def name(self) -> Optional[str]: """ - The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. - For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. + The name that's used for the port mapping. This parameter is the name that you use in the ``serviceConnectConfiguration`` and the ``vpcLatticeConfigurations`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. """ return pulumi.get(self, "name") diff --git a/sdk/python/pulumi_aws_native/ecs/service.py b/sdk/python/pulumi_aws_native/ecs/service.py index a68d4656cc..c43885020a 100644 --- a/sdk/python/pulumi_aws_native/ecs/service.py +++ b/sdk/python/pulumi_aws_native/ecs/service.py @@ -51,6 +51,9 @@ def __init__(__self__, *, vpc_lattice_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['ServiceVpcLatticeConfigurationArgs']]]] = None): """ The set of arguments for constructing a Service resource. + :param pulumi.Input['ServiceAvailabilityZoneRebalancing'] availability_zone_rebalancing: Indicates whether to use Availability Zone rebalancing for the service. + + For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* . :param pulumi.Input[Sequence[pulumi.Input['ServiceCapacityProviderStrategyItemArgs']]] capacity_provider_strategy: The capacity provider strategy to use for the service. If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used. A capacity provider strategy may contain a maximum of 6 capacity providers. @@ -158,6 +161,11 @@ def __init__(__self__, *, @property @pulumi.getter(name="availabilityZoneRebalancing") def availability_zone_rebalancing(self) -> Optional[pulumi.Input['ServiceAvailabilityZoneRebalancing']]: + """ + Indicates whether to use Availability Zone rebalancing for the service. + + For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* . + """ return pulumi.get(self, "availability_zone_rebalancing") @availability_zone_rebalancing.setter @@ -519,6 +527,9 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input['ServiceAvailabilityZoneRebalancing'] availability_zone_rebalancing: Indicates whether to use Availability Zone rebalancing for the service. + + For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* . :param pulumi.Input[Sequence[pulumi.Input[Union['ServiceCapacityProviderStrategyItemArgs', 'ServiceCapacityProviderStrategyItemArgsDict']]]] capacity_provider_strategy: The capacity provider strategy to use for the service. If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used. A capacity provider strategy may contain a maximum of 6 capacity providers. @@ -715,6 +726,11 @@ def get(resource_name: str, @property @pulumi.getter(name="availabilityZoneRebalancing") def availability_zone_rebalancing(self) -> pulumi.Output[Optional['ServiceAvailabilityZoneRebalancing']]: + """ + Indicates whether to use Availability Zone rebalancing for the service. + + For more information, see [Balancing an Amazon ECS service across Availability Zones](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html) in the *Amazon Elastic Container Service Developer Guide* . + """ return pulumi.get(self, "availability_zone_rebalancing") @property diff --git a/sdk/python/pulumi_aws_native/elasticloadbalancingv2/_inputs.py b/sdk/python/pulumi_aws_native/elasticloadbalancingv2/_inputs.py index 664a2f65de..9377848925 100644 --- a/sdk/python/pulumi_aws_native/elasticloadbalancingv2/_inputs.py +++ b/sdk/python/pulumi_aws_native/elasticloadbalancingv2/_inputs.py @@ -71,6 +71,8 @@ 'ListenerTargetGroupTupleArgsDict', 'LoadBalancerAttributeArgs', 'LoadBalancerAttributeArgsDict', + 'LoadBalancerMinimumLoadBalancerCapacityArgs', + 'LoadBalancerMinimumLoadBalancerCapacityArgsDict', 'LoadBalancerSubnetMappingArgs', 'LoadBalancerSubnetMappingArgsDict', 'TargetGroupAttributeArgs', @@ -1048,7 +1050,7 @@ class ListenerRedirectConfigArgsDict(TypedDict): """ protocol: NotRequired[pulumi.Input[str]] """ - The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. + The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. """ query: NotRequired[pulumi.Input[str]] """ @@ -1081,7 +1083,7 @@ def __init__(__self__, *, :param pulumi.Input[str] host: The hostname. This component is not percent-encoded. The hostname can contain #{host}. :param pulumi.Input[str] path: The absolute path, starting with the leading "/". This component is not percent-encoded. The path can contain #{host}, #{path}, and #{port}. :param pulumi.Input[str] port: The port. You can specify a value from 1 to 65535 or #{port}. - :param pulumi.Input[str] protocol: The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. + :param pulumi.Input[str] protocol: The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. :param pulumi.Input[str] query: The query parameters, URL-encoded when necessary, but not percent-encoded. Do not include the leading "?", as it is automatically added. You can specify any of the reserved keywords. """ pulumi.set(__self__, "status_code", status_code) @@ -1148,7 +1150,7 @@ def port(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def protocol(self) -> Optional[pulumi.Input[str]]: """ - The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. + The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. """ return pulumi.get(self, "protocol") @@ -2238,7 +2240,7 @@ class ListenerRuleRedirectConfigArgsDict(TypedDict): """ protocol: NotRequired[pulumi.Input[str]] """ - The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. + The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. """ query: NotRequired[pulumi.Input[str]] """ @@ -2271,7 +2273,7 @@ def __init__(__self__, *, :param pulumi.Input[str] host: The hostname. This component is not percent-encoded. The hostname can contain #{host}. :param pulumi.Input[str] path: The absolute path, starting with the leading "/". This component is not percent-encoded. The path can contain #{host}, #{path}, and #{port}. :param pulumi.Input[str] port: The port. You can specify a value from 1 to 65535 or #{port}. - :param pulumi.Input[str] protocol: The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. + :param pulumi.Input[str] protocol: The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. :param pulumi.Input[str] query: The query parameters, URL-encoded when necessary, but not percent-encoded. Do not include the leading "?", as it is automatically added. You can specify any of the reserved keywords. """ pulumi.set(__self__, "status_code", status_code) @@ -2338,7 +2340,7 @@ def port(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def protocol(self) -> Optional[pulumi.Input[str]]: """ - The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. + The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. """ return pulumi.get(self, "protocol") @@ -2864,7 +2866,7 @@ class LoadBalancerAttributeArgsDict(TypedDict): The name of the attribute. The following attributes are supported by all load balancers: + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``. - + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and cannot be changed. + + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and can't be changed. The following attributes are supported by both Application Load Balancers and Network Load Balancers: + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``. @@ -2912,7 +2914,7 @@ def __init__(__self__, *, :param pulumi.Input[str] key: The name of the attribute. The following attributes are supported by all load balancers: + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``. - + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and cannot be changed. + + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and can't be changed. The following attributes are supported by both Application Load Balancers and Network Load Balancers: + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``. @@ -2956,7 +2958,7 @@ def key(self) -> Optional[pulumi.Input[str]]: The name of the attribute. The following attributes are supported by all load balancers: + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``. - + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and cannot be changed. + + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and can't be changed. The following attributes are supported by both Application Load Balancers and Network Load Balancers: + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``. @@ -3006,6 +3008,28 @@ def value(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "value", value) +if not MYPY: + class LoadBalancerMinimumLoadBalancerCapacityArgsDict(TypedDict): + capacity_units: pulumi.Input[int] +elif False: + LoadBalancerMinimumLoadBalancerCapacityArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class LoadBalancerMinimumLoadBalancerCapacityArgs: + def __init__(__self__, *, + capacity_units: pulumi.Input[int]): + pulumi.set(__self__, "capacity_units", capacity_units) + + @property + @pulumi.getter(name="capacityUnits") + def capacity_units(self) -> pulumi.Input[int]: + return pulumi.get(self, "capacity_units") + + @capacity_units.setter + def capacity_units(self, value: pulumi.Input[int]): + pulumi.set(self, "capacity_units", value) + + if not MYPY: class LoadBalancerSubnetMappingArgsDict(TypedDict): """ @@ -3029,7 +3053,7 @@ class LoadBalancerSubnetMappingArgsDict(TypedDict): """ source_nat_ipv6_prefix: NotRequired[pulumi.Input[str]] """ - [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. + [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or ``auto_assigned`` to use an IPv6 prefix selected at random from the subnet CIDR block. """ elif False: LoadBalancerSubnetMappingArgsDict: TypeAlias = Mapping[str, Any] @@ -3048,7 +3072,7 @@ def __init__(__self__, *, :param pulumi.Input[str] allocation_id: [Network Load Balancers] The allocation ID of the Elastic IP address for an internet-facing load balancer. :param pulumi.Input[str] i_pv6_address: [Network Load Balancers] The IPv6 address. :param pulumi.Input[str] private_i_pv4_address: [Network Load Balancers] The private IPv4 address for an internal load balancer. - :param pulumi.Input[str] source_nat_ipv6_prefix: [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. + :param pulumi.Input[str] source_nat_ipv6_prefix: [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or ``auto_assigned`` to use an IPv6 prefix selected at random from the subnet CIDR block. """ pulumi.set(__self__, "subnet_id", subnet_id) if allocation_id is not None: @@ -3112,7 +3136,7 @@ def private_i_pv4_address(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="sourceNatIpv6Prefix") def source_nat_ipv6_prefix(self) -> Optional[pulumi.Input[str]]: """ - [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. + [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or ``auto_assigned`` to use an IPv6 prefix selected at random from the subnet CIDR block. """ return pulumi.get(self, "source_nat_ipv6_prefix") diff --git a/sdk/python/pulumi_aws_native/elasticloadbalancingv2/get_listener.py b/sdk/python/pulumi_aws_native/elasticloadbalancingv2/get_listener.py index 77bcef81d0..a286f2650a 100644 --- a/sdk/python/pulumi_aws_native/elasticloadbalancingv2/get_listener.py +++ b/sdk/python/pulumi_aws_native/elasticloadbalancingv2/get_listener.py @@ -107,7 +107,7 @@ def mutual_authentication(self) -> Optional['outputs.ListenerMutualAuthenticatio @pulumi.getter def port(self) -> Optional[int]: """ - The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer. + The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer. """ return pulumi.get(self, "port") @@ -115,7 +115,7 @@ def port(self) -> Optional[int]: @pulumi.getter def protocol(self) -> Optional[str]: """ - The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer. + The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer. """ return pulumi.get(self, "protocol") diff --git a/sdk/python/pulumi_aws_native/elasticloadbalancingv2/get_load_balancer.py b/sdk/python/pulumi_aws_native/elasticloadbalancingv2/get_load_balancer.py index 489afe08a9..2a67ad92d2 100644 --- a/sdk/python/pulumi_aws_native/elasticloadbalancingv2/get_load_balancer.py +++ b/sdk/python/pulumi_aws_native/elasticloadbalancingv2/get_load_balancer.py @@ -25,7 +25,7 @@ @pulumi.output_type class GetLoadBalancerResult: - def __init__(__self__, canonical_hosted_zone_id=None, dns_name=None, enable_prefix_for_ipv6_source_nat=None, enforce_security_group_inbound_rules_on_private_link_traffic=None, ip_address_type=None, load_balancer_arn=None, load_balancer_attributes=None, load_balancer_full_name=None, load_balancer_name=None, security_groups=None, subnet_mappings=None, subnets=None, tags=None): + def __init__(__self__, canonical_hosted_zone_id=None, dns_name=None, enable_prefix_for_ipv6_source_nat=None, enforce_security_group_inbound_rules_on_private_link_traffic=None, ip_address_type=None, load_balancer_arn=None, load_balancer_attributes=None, load_balancer_full_name=None, load_balancer_name=None, minimum_load_balancer_capacity=None, security_groups=None, subnet_mappings=None, subnets=None, tags=None): if canonical_hosted_zone_id and not isinstance(canonical_hosted_zone_id, str): raise TypeError("Expected argument 'canonical_hosted_zone_id' to be a str") pulumi.set(__self__, "canonical_hosted_zone_id", canonical_hosted_zone_id) @@ -53,6 +53,9 @@ def __init__(__self__, canonical_hosted_zone_id=None, dns_name=None, enable_pref if load_balancer_name and not isinstance(load_balancer_name, str): raise TypeError("Expected argument 'load_balancer_name' to be a str") pulumi.set(__self__, "load_balancer_name", load_balancer_name) + if minimum_load_balancer_capacity and not isinstance(minimum_load_balancer_capacity, dict): + raise TypeError("Expected argument 'minimum_load_balancer_capacity' to be a dict") + pulumi.set(__self__, "minimum_load_balancer_capacity", minimum_load_balancer_capacity) if security_groups and not isinstance(security_groups, list): raise TypeError("Expected argument 'security_groups' to be a list") pulumi.set(__self__, "security_groups", security_groups) @@ -86,7 +89,7 @@ def dns_name(self) -> Optional[str]: @pulumi.getter(name="enablePrefixForIpv6SourceNat") def enable_prefix_for_ipv6_source_nat(self) -> Optional[str]: """ - [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``. """ return pulumi.get(self, "enable_prefix_for_ipv6_source_nat") @@ -102,11 +105,10 @@ def enforce_security_group_inbound_rules_on_private_link_traffic(self) -> Option @pulumi.getter(name="ipAddressType") def ip_address_type(self) -> Optional[str]: """ - Note: Internal load balancers must use the ``ipv4`` IP address type. - [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses). - Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors. - [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener. - [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). + The IP address type. Internal load balancers must use ``ipv4``. + [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). + Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. + [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses). """ return pulumi.get(self, "ip_address_type") @@ -142,6 +144,11 @@ def load_balancer_name(self) -> Optional[str]: """ return pulumi.get(self, "load_balancer_name") + @property + @pulumi.getter(name="minimumLoadBalancerCapacity") + def minimum_load_balancer_capacity(self) -> Optional['outputs.LoadBalancerMinimumLoadBalancerCapacity']: + return pulumi.get(self, "minimum_load_balancer_capacity") + @property @pulumi.getter(name="securityGroups") def security_groups(self) -> Optional[Sequence[str]]: @@ -155,11 +162,11 @@ def security_groups(self) -> Optional[Sequence[str]]: def subnet_mappings(self) -> Optional[Sequence['outputs.LoadBalancerSubnetMapping']]: """ The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. - [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets. + [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets. [Application Load Balancers on Outposts] You must specify one Outpost subnet. [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet. - [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets. + [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets. """ return pulumi.get(self, "subnet_mappings") @@ -171,8 +178,7 @@ def subnets(self) -> Optional[Sequence[str]]: [Application Load Balancers] You must specify subnets from at least two Availability Zones. [Application Load Balancers on Outposts] You must specify one Outpost subnet. [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. - [Network Load Balancers] You can specify subnets from one or more Availability Zones. - [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. + [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones. """ return pulumi.get(self, "subnets") @@ -200,6 +206,7 @@ def __await__(self): load_balancer_attributes=self.load_balancer_attributes, load_balancer_full_name=self.load_balancer_full_name, load_balancer_name=self.load_balancer_name, + minimum_load_balancer_capacity=self.minimum_load_balancer_capacity, security_groups=self.security_groups, subnet_mappings=self.subnet_mappings, subnets=self.subnets, @@ -229,6 +236,7 @@ def get_load_balancer(load_balancer_arn: Optional[str] = None, load_balancer_attributes=pulumi.get(__ret__, 'load_balancer_attributes'), load_balancer_full_name=pulumi.get(__ret__, 'load_balancer_full_name'), load_balancer_name=pulumi.get(__ret__, 'load_balancer_name'), + minimum_load_balancer_capacity=pulumi.get(__ret__, 'minimum_load_balancer_capacity'), security_groups=pulumi.get(__ret__, 'security_groups'), subnet_mappings=pulumi.get(__ret__, 'subnet_mappings'), subnets=pulumi.get(__ret__, 'subnets'), @@ -255,6 +263,7 @@ def get_load_balancer_output(load_balancer_arn: Optional[pulumi.Input[str]] = No load_balancer_attributes=pulumi.get(__response__, 'load_balancer_attributes'), load_balancer_full_name=pulumi.get(__response__, 'load_balancer_full_name'), load_balancer_name=pulumi.get(__response__, 'load_balancer_name'), + minimum_load_balancer_capacity=pulumi.get(__response__, 'minimum_load_balancer_capacity'), security_groups=pulumi.get(__response__, 'security_groups'), subnet_mappings=pulumi.get(__response__, 'subnet_mappings'), subnets=pulumi.get(__response__, 'subnets'), diff --git a/sdk/python/pulumi_aws_native/elasticloadbalancingv2/listener.py b/sdk/python/pulumi_aws_native/elasticloadbalancingv2/listener.py index 3645f08a82..6fab9640ee 100644 --- a/sdk/python/pulumi_aws_native/elasticloadbalancingv2/listener.py +++ b/sdk/python/pulumi_aws_native/elasticloadbalancingv2/listener.py @@ -40,8 +40,8 @@ def __init__(__self__, *, To create a certificate list for a secure listener, use [AWS::ElasticLoadBalancingV2::ListenerCertificate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-listenercertificate.html). :param pulumi.Input[Sequence[pulumi.Input['ListenerAttributeArgs']]] listener_attributes: The listener attributes. :param pulumi.Input['ListenerMutualAuthenticationArgs'] mutual_authentication: The mutual authentication configuration information. - :param pulumi.Input[int] port: The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer. - :param pulumi.Input[str] protocol: The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer. + :param pulumi.Input[int] port: The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer. + :param pulumi.Input[str] protocol: The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer. :param pulumi.Input[str] ssl_policy: [HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported. Updating the security policy can result in interruptions if the load balancer is handling a high volume of traffic. For more information, see [Security policies](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies) in the *Application Load Balancers Guide* and [Security policies](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies) in the *Network Load Balancers Guide*. @@ -141,7 +141,7 @@ def mutual_authentication(self, value: Optional[pulumi.Input['ListenerMutualAuth @pulumi.getter def port(self) -> Optional[pulumi.Input[int]]: """ - The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer. + The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer. """ return pulumi.get(self, "port") @@ -153,7 +153,7 @@ def port(self, value: Optional[pulumi.Input[int]]): @pulumi.getter def protocol(self) -> Optional[pulumi.Input[str]]: """ - The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer. + The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer. """ return pulumi.get(self, "protocol") @@ -204,8 +204,8 @@ def __init__(__self__, :param pulumi.Input[Sequence[pulumi.Input[Union['ListenerAttributeArgs', 'ListenerAttributeArgsDict']]]] listener_attributes: The listener attributes. :param pulumi.Input[str] load_balancer_arn: The Amazon Resource Name (ARN) of the load balancer. :param pulumi.Input[Union['ListenerMutualAuthenticationArgs', 'ListenerMutualAuthenticationArgsDict']] mutual_authentication: The mutual authentication configuration information. - :param pulumi.Input[int] port: The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer. - :param pulumi.Input[str] protocol: The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer. + :param pulumi.Input[int] port: The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer. + :param pulumi.Input[str] protocol: The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer. :param pulumi.Input[str] ssl_policy: [HTTPS and TLS listeners] The security policy that defines which protocols and ciphers are supported. Updating the security policy can result in interruptions if the load balancer is handling a high volume of traffic. For more information, see [Security policies](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html#describe-ssl-policies) in the *Application Load Balancers Guide* and [Security policies](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#describe-ssl-policies) in the *Network Load Balancers Guide*. @@ -364,7 +364,7 @@ def mutual_authentication(self) -> pulumi.Output[Optional['outputs.ListenerMutua @pulumi.getter def port(self) -> pulumi.Output[Optional[int]]: """ - The port on which the load balancer is listening. You cannot specify a port for a Gateway Load Balancer. + The port on which the load balancer is listening. You can't specify a port for a Gateway Load Balancer. """ return pulumi.get(self, "port") @@ -372,7 +372,7 @@ def port(self) -> pulumi.Output[Optional[int]]: @pulumi.getter def protocol(self) -> pulumi.Output[Optional[str]]: """ - The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You cannot specify a protocol for a Gateway Load Balancer. + The protocol for connections from clients to the load balancer. For Application Load Balancers, the supported protocols are HTTP and HTTPS. For Network Load Balancers, the supported protocols are TCP, TLS, UDP, and TCP_UDP. You can’t specify the UDP or TCP_UDP protocol if dual-stack mode is enabled. You can't specify a protocol for a Gateway Load Balancer. """ return pulumi.get(self, "protocol") diff --git a/sdk/python/pulumi_aws_native/elasticloadbalancingv2/load_balancer.py b/sdk/python/pulumi_aws_native/elasticloadbalancingv2/load_balancer.py index 9088924061..cf3198ce39 100644 --- a/sdk/python/pulumi_aws_native/elasticloadbalancingv2/load_balancer.py +++ b/sdk/python/pulumi_aws_native/elasticloadbalancingv2/load_balancer.py @@ -27,6 +27,7 @@ def __init__(__self__, *, enforce_security_group_inbound_rules_on_private_link_traffic: Optional[pulumi.Input[str]] = None, ip_address_type: Optional[pulumi.Input[str]] = None, load_balancer_attributes: Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerAttributeArgs']]]] = None, + minimum_load_balancer_capacity: Optional[pulumi.Input['LoadBalancerMinimumLoadBalancerCapacityArgs']] = None, name: Optional[pulumi.Input[str]] = None, scheme: Optional[pulumi.Input[str]] = None, security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, @@ -36,33 +37,31 @@ def __init__(__self__, *, type: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a LoadBalancer resource. - :param pulumi.Input[str] enable_prefix_for_ipv6_source_nat: [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + :param pulumi.Input[str] enable_prefix_for_ipv6_source_nat: [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``. :param pulumi.Input[str] enforce_security_group_inbound_rules_on_private_link_traffic: Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. - :param pulumi.Input[str] ip_address_type: Note: Internal load balancers must use the ``ipv4`` IP address type. - [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses). - Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors. - [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener. - [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). + :param pulumi.Input[str] ip_address_type: The IP address type. Internal load balancers must use ``ipv4``. + [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). + Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. + [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses). :param pulumi.Input[Sequence[pulumi.Input['LoadBalancerAttributeArgs']]] load_balancer_attributes: The load balancer attributes. :param pulumi.Input[str] name: The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with "internal-". If you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates. To replace the resource, specify a new name. :param pulumi.Input[str] scheme: The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet. The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer. The default is an Internet-facing load balancer. - You cannot specify a scheme for a Gateway Load Balancer. + You can't specify a scheme for a Gateway Load Balancer. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: [Application Load Balancers and Network Load Balancers] The IDs of the security groups for the load balancer. :param pulumi.Input[Sequence[pulumi.Input['LoadBalancerSubnetMappingArgs']]] subnet_mappings: The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. - [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets. + [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets. [Application Load Balancers on Outposts] You must specify one Outpost subnet. [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet. - [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets. + [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnets: The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets. [Application Load Balancers] You must specify subnets from at least two Availability Zones. [Application Load Balancers on Outposts] You must specify one Outpost subnet. [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. - [Network Load Balancers] You can specify subnets from one or more Availability Zones. - [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. + [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones. :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: The tags to assign to the load balancer. :param pulumi.Input[str] type: The type of load balancer. The default is ``application``. """ @@ -74,6 +73,8 @@ def __init__(__self__, *, pulumi.set(__self__, "ip_address_type", ip_address_type) if load_balancer_attributes is not None: pulumi.set(__self__, "load_balancer_attributes", load_balancer_attributes) + if minimum_load_balancer_capacity is not None: + pulumi.set(__self__, "minimum_load_balancer_capacity", minimum_load_balancer_capacity) if name is not None: pulumi.set(__self__, "name", name) if scheme is not None: @@ -93,7 +94,7 @@ def __init__(__self__, *, @pulumi.getter(name="enablePrefixForIpv6SourceNat") def enable_prefix_for_ipv6_source_nat(self) -> Optional[pulumi.Input[str]]: """ - [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``. """ return pulumi.get(self, "enable_prefix_for_ipv6_source_nat") @@ -117,11 +118,10 @@ def enforce_security_group_inbound_rules_on_private_link_traffic(self, value: Op @pulumi.getter(name="ipAddressType") def ip_address_type(self) -> Optional[pulumi.Input[str]]: """ - Note: Internal load balancers must use the ``ipv4`` IP address type. - [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses). - Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors. - [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener. - [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). + The IP address type. Internal load balancers must use ``ipv4``. + [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). + Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. + [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses). """ return pulumi.get(self, "ip_address_type") @@ -141,6 +141,15 @@ def load_balancer_attributes(self) -> Optional[pulumi.Input[Sequence[pulumi.Inpu def load_balancer_attributes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerAttributeArgs']]]]): pulumi.set(self, "load_balancer_attributes", value) + @property + @pulumi.getter(name="minimumLoadBalancerCapacity") + def minimum_load_balancer_capacity(self) -> Optional[pulumi.Input['LoadBalancerMinimumLoadBalancerCapacityArgs']]: + return pulumi.get(self, "minimum_load_balancer_capacity") + + @minimum_load_balancer_capacity.setter + def minimum_load_balancer_capacity(self, value: Optional[pulumi.Input['LoadBalancerMinimumLoadBalancerCapacityArgs']]): + pulumi.set(self, "minimum_load_balancer_capacity", value) + @property @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: @@ -161,7 +170,7 @@ def scheme(self) -> Optional[pulumi.Input[str]]: The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet. The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer. The default is an Internet-facing load balancer. - You cannot specify a scheme for a Gateway Load Balancer. + You can't specify a scheme for a Gateway Load Balancer. """ return pulumi.get(self, "scheme") @@ -186,11 +195,11 @@ def security_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str def subnet_mappings(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['LoadBalancerSubnetMappingArgs']]]]: """ The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. - [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets. + [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets. [Application Load Balancers on Outposts] You must specify one Outpost subnet. [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet. - [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets. + [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets. """ return pulumi.get(self, "subnet_mappings") @@ -206,8 +215,7 @@ def subnets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: [Application Load Balancers] You must specify subnets from at least two Availability Zones. [Application Load Balancers on Outposts] You must specify one Outpost subnet. [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. - [Network Load Balancers] You can specify subnets from one or more Availability Zones. - [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. + [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones. """ return pulumi.get(self, "subnets") @@ -249,6 +257,7 @@ def __init__(__self__, enforce_security_group_inbound_rules_on_private_link_traffic: Optional[pulumi.Input[str]] = None, ip_address_type: Optional[pulumi.Input[str]] = None, load_balancer_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerAttributeArgs', 'LoadBalancerAttributeArgsDict']]]]] = None, + minimum_load_balancer_capacity: Optional[pulumi.Input[Union['LoadBalancerMinimumLoadBalancerCapacityArgs', 'LoadBalancerMinimumLoadBalancerCapacityArgsDict']]] = None, name: Optional[pulumi.Input[str]] = None, scheme: Optional[pulumi.Input[str]] = None, security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, @@ -262,33 +271,31 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] enable_prefix_for_ipv6_source_nat: [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + :param pulumi.Input[str] enable_prefix_for_ipv6_source_nat: [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``. :param pulumi.Input[str] enforce_security_group_inbound_rules_on_private_link_traffic: Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. - :param pulumi.Input[str] ip_address_type: Note: Internal load balancers must use the ``ipv4`` IP address type. - [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses). - Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors. - [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener. - [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). + :param pulumi.Input[str] ip_address_type: The IP address type. Internal load balancers must use ``ipv4``. + [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). + Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. + [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses). :param pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerAttributeArgs', 'LoadBalancerAttributeArgsDict']]]] load_balancer_attributes: The load balancer attributes. :param pulumi.Input[str] name: The name of the load balancer. This name must be unique per region per account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, must not begin or end with a hyphen, and must not begin with "internal-". If you don't specify a name, AWS CloudFormation generates a unique physical ID for the load balancer. If you specify a name, you cannot perform updates that require replacement of this resource, but you can perform other updates. To replace the resource, specify a new name. :param pulumi.Input[str] scheme: The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet. The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer. The default is an Internet-facing load balancer. - You cannot specify a scheme for a Gateway Load Balancer. + You can't specify a scheme for a Gateway Load Balancer. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: [Application Load Balancers and Network Load Balancers] The IDs of the security groups for the load balancer. :param pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerSubnetMappingArgs', 'LoadBalancerSubnetMappingArgsDict']]]] subnet_mappings: The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. - [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets. + [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets. [Application Load Balancers on Outposts] You must specify one Outpost subnet. [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet. - [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets. + [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnets: The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. To specify an Elastic IP address, specify subnet mappings instead of subnets. [Application Load Balancers] You must specify subnets from at least two Availability Zones. [Application Load Balancers on Outposts] You must specify one Outpost subnet. [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. - [Network Load Balancers] You can specify subnets from one or more Availability Zones. - [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. + [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones. :param pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]] tags: The tags to assign to the load balancer. :param pulumi.Input[str] type: The type of load balancer. The default is ``application``. """ @@ -320,6 +327,7 @@ def _internal_init(__self__, enforce_security_group_inbound_rules_on_private_link_traffic: Optional[pulumi.Input[str]] = None, ip_address_type: Optional[pulumi.Input[str]] = None, load_balancer_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerAttributeArgs', 'LoadBalancerAttributeArgsDict']]]]] = None, + minimum_load_balancer_capacity: Optional[pulumi.Input[Union['LoadBalancerMinimumLoadBalancerCapacityArgs', 'LoadBalancerMinimumLoadBalancerCapacityArgsDict']]] = None, name: Optional[pulumi.Input[str]] = None, scheme: Optional[pulumi.Input[str]] = None, security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, @@ -340,6 +348,7 @@ def _internal_init(__self__, __props__.__dict__["enforce_security_group_inbound_rules_on_private_link_traffic"] = enforce_security_group_inbound_rules_on_private_link_traffic __props__.__dict__["ip_address_type"] = ip_address_type __props__.__dict__["load_balancer_attributes"] = load_balancer_attributes + __props__.__dict__["minimum_load_balancer_capacity"] = minimum_load_balancer_capacity __props__.__dict__["name"] = name __props__.__dict__["scheme"] = scheme __props__.__dict__["security_groups"] = security_groups @@ -385,6 +394,7 @@ def get(resource_name: str, __props__.__dict__["load_balancer_attributes"] = None __props__.__dict__["load_balancer_full_name"] = None __props__.__dict__["load_balancer_name"] = None + __props__.__dict__["minimum_load_balancer_capacity"] = None __props__.__dict__["name"] = None __props__.__dict__["scheme"] = None __props__.__dict__["security_groups"] = None @@ -414,7 +424,7 @@ def dns_name(self) -> pulumi.Output[str]: @pulumi.getter(name="enablePrefixForIpv6SourceNat") def enable_prefix_for_ipv6_source_nat(self) -> pulumi.Output[Optional[str]]: """ - [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be `dualstack` . The default value is `off` . + [Network Load Balancers with UDP listeners] Indicates whether to use an IPv6 prefix from each subnet for source NAT. The IP address type must be ``dualstack``. The default value is ``off``. """ return pulumi.get(self, "enable_prefix_for_ipv6_source_nat") @@ -430,11 +440,10 @@ def enforce_security_group_inbound_rules_on_private_link_traffic(self) -> pulumi @pulumi.getter(name="ipAddressType") def ip_address_type(self) -> pulumi.Output[Optional[str]]: """ - Note: Internal load balancers must use the ``ipv4`` IP address type. - [Application Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses), ``dualstack`` (for IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (for IPv6 only public addresses, with private IPv4 and IPv6 addresses). - Note: Application Load Balancer authentication only supports IPv4 addresses when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer cannot complete the authentication process, resulting in HTTP 500 errors. - [Network Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). You can’t specify ``dualstack`` for a load balancer with a UDP or TCP_UDP listener. - [Gateway Load Balancers] The IP address type. The possible values are ``ipv4`` (for only IPv4 addresses) and ``dualstack`` (for IPv4 and IPv6 addresses). + The IP address type. Internal load balancers must use ``ipv4``. + [Application Load Balancers] The possible values are ``ipv4`` (IPv4 addresses), ``dualstack`` (IPv4 and IPv6 addresses), and ``dualstack-without-public-ipv4`` (public IPv6 addresses and private IPv4 and IPv6 addresses). + Application Load Balancer authentication supports IPv4 addresses only when connecting to an Identity Provider (IdP) or Amazon Cognito endpoint. Without a public IPv4 address the load balancer can't complete the authentication process, resulting in HTTP 500 errors. + [Network Load Balancers and Gateway Load Balancers] The possible values are ``ipv4`` (IPv4 addresses) and ``dualstack`` (IPv4 and IPv6 addresses). """ return pulumi.get(self, "ip_address_type") @@ -470,6 +479,11 @@ def load_balancer_name(self) -> pulumi.Output[str]: """ return pulumi.get(self, "load_balancer_name") + @property + @pulumi.getter(name="minimumLoadBalancerCapacity") + def minimum_load_balancer_capacity(self) -> pulumi.Output[Optional['outputs.LoadBalancerMinimumLoadBalancerCapacity']]: + return pulumi.get(self, "minimum_load_balancer_capacity") + @property @pulumi.getter def name(self) -> pulumi.Output[Optional[str]]: @@ -486,7 +500,7 @@ def scheme(self) -> pulumi.Output[Optional[str]]: The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the internet. The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can route requests only from clients with access to the VPC for the load balancer. The default is an Internet-facing load balancer. - You cannot specify a scheme for a Gateway Load Balancer. + You can't specify a scheme for a Gateway Load Balancer. """ return pulumi.get(self, "scheme") @@ -503,11 +517,11 @@ def security_groups(self) -> pulumi.Output[Optional[Sequence[str]]]: def subnet_mappings(self) -> pulumi.Output[Optional[Sequence['outputs.LoadBalancerSubnetMapping']]]: """ The IDs of the subnets. You can specify only one subnet per Availability Zone. You must specify either subnets or subnet mappings, but not both. - [Application Load Balancers] You must specify subnets from at least two Availability Zones. You cannot specify Elastic IP addresses for your subnets. + [Application Load Balancers] You must specify subnets from at least two Availability Zones. You can't specify Elastic IP addresses for your subnets. [Application Load Balancers on Outposts] You must specify one Outpost subnet. [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. [Network Load Balancers] You can specify subnets from one or more Availability Zones. You can specify one Elastic IP address per subnet if you need static IP addresses for your internet-facing load balancer. For internal load balancers, you can specify one private IP address per subnet from the IPv4 range of the subnet. For internet-facing load balancer, you can specify one IPv6 address per subnet. - [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You cannot specify Elastic IP addresses for your subnets. + [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. You can't specify Elastic IP addresses for your subnets. """ return pulumi.get(self, "subnet_mappings") @@ -519,8 +533,7 @@ def subnets(self) -> pulumi.Output[Optional[Sequence[str]]]: [Application Load Balancers] You must specify subnets from at least two Availability Zones. [Application Load Balancers on Outposts] You must specify one Outpost subnet. [Application Load Balancers on Local Zones] You can specify subnets from one or more Local Zones. - [Network Load Balancers] You can specify subnets from one or more Availability Zones. - [Gateway Load Balancers] You can specify subnets from one or more Availability Zones. + [Network Load Balancers and Gateway Load Balancers] You can specify subnets from one or more Availability Zones. """ return pulumi.get(self, "subnets") diff --git a/sdk/python/pulumi_aws_native/elasticloadbalancingv2/outputs.py b/sdk/python/pulumi_aws_native/elasticloadbalancingv2/outputs.py index 087127b596..51bd4fc145 100644 --- a/sdk/python/pulumi_aws_native/elasticloadbalancingv2/outputs.py +++ b/sdk/python/pulumi_aws_native/elasticloadbalancingv2/outputs.py @@ -44,6 +44,7 @@ 'ListenerTargetGroupStickinessConfig', 'ListenerTargetGroupTuple', 'LoadBalancerAttribute', + 'LoadBalancerMinimumLoadBalancerCapacity', 'LoadBalancerSubnetMapping', 'TargetGroupAttribute', 'TargetGroupMatcher', @@ -840,7 +841,7 @@ def __init__(__self__, *, :param str host: The hostname. This component is not percent-encoded. The hostname can contain #{host}. :param str path: The absolute path, starting with the leading "/". This component is not percent-encoded. The path can contain #{host}, #{path}, and #{port}. :param str port: The port. You can specify a value from 1 to 65535 or #{port}. - :param str protocol: The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. + :param str protocol: The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. :param str query: The query parameters, URL-encoded when necessary, but not percent-encoded. Do not include the leading "?", as it is automatically added. You can specify any of the reserved keywords. """ pulumi.set(__self__, "status_code", status_code) @@ -891,7 +892,7 @@ def port(self) -> Optional[str]: @pulumi.getter def protocol(self) -> Optional[str]: """ - The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. + The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. """ return pulumi.get(self, "protocol") @@ -1744,7 +1745,7 @@ def __init__(__self__, *, :param str host: The hostname. This component is not percent-encoded. The hostname can contain #{host}. :param str path: The absolute path, starting with the leading "/". This component is not percent-encoded. The path can contain #{host}, #{path}, and #{port}. :param str port: The port. You can specify a value from 1 to 65535 or #{port}. - :param str protocol: The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. + :param str protocol: The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. :param str query: The query parameters, URL-encoded when necessary, but not percent-encoded. Do not include the leading "?", as it is automatically added. You can specify any of the reserved keywords. """ pulumi.set(__self__, "status_code", status_code) @@ -1795,7 +1796,7 @@ def port(self) -> Optional[str]: @pulumi.getter def protocol(self) -> Optional[str]: """ - The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP. + The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You can't redirect HTTPS to HTTP. """ return pulumi.get(self, "protocol") @@ -2226,7 +2227,7 @@ def __init__(__self__, *, :param str key: The name of the attribute. The following attributes are supported by all load balancers: + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``. - + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and cannot be changed. + + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and can't be changed. The following attributes are supported by both Application Load Balancers and Network Load Balancers: + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``. @@ -2270,7 +2271,7 @@ def key(self) -> Optional[str]: The name of the attribute. The following attributes are supported by all load balancers: + ``deletion_protection.enabled`` - Indicates whether deletion protection is enabled. The value is ``true`` or ``false``. The default is ``false``. - + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and cannot be changed. + + ``load_balancing.cross_zone.enabled`` - Indicates whether cross-zone load balancing is enabled. The possible values are ``true`` and ``false``. The default for Network Load Balancers and Gateway Load Balancers is ``false``. The default for Application Load Balancers is ``true``, and can't be changed. The following attributes are supported by both Application Load Balancers and Network Load Balancers: + ``access_logs.s3.enabled`` - Indicates whether access logs are enabled. The value is ``true`` or ``false``. The default is ``false``. @@ -2312,6 +2313,35 @@ def value(self) -> Optional[str]: return pulumi.get(self, "value") +@pulumi.output_type +class LoadBalancerMinimumLoadBalancerCapacity(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "capacityUnits": + suggest = "capacity_units" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in LoadBalancerMinimumLoadBalancerCapacity. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + LoadBalancerMinimumLoadBalancerCapacity.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + LoadBalancerMinimumLoadBalancerCapacity.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + capacity_units: int): + pulumi.set(__self__, "capacity_units", capacity_units) + + @property + @pulumi.getter(name="capacityUnits") + def capacity_units(self) -> int: + return pulumi.get(self, "capacity_units") + + @pulumi.output_type class LoadBalancerSubnetMapping(dict): """ @@ -2354,7 +2384,7 @@ def __init__(__self__, *, :param str allocation_id: [Network Load Balancers] The allocation ID of the Elastic IP address for an internet-facing load balancer. :param str i_pv6_address: [Network Load Balancers] The IPv6 address. :param str private_i_pv4_address: [Network Load Balancers] The private IPv4 address for an internal load balancer. - :param str source_nat_ipv6_prefix: [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. + :param str source_nat_ipv6_prefix: [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or ``auto_assigned`` to use an IPv6 prefix selected at random from the subnet CIDR block. """ pulumi.set(__self__, "subnet_id", subnet_id) if allocation_id is not None: @@ -2402,7 +2432,7 @@ def private_i_pv4_address(self) -> Optional[str]: @pulumi.getter(name="sourceNatIpv6Prefix") def source_nat_ipv6_prefix(self) -> Optional[str]: """ - [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or `auto_assigned` to use an IPv6 prefix selected at random from the subnet CIDR block. + [Network Load Balancers with UDP listeners] The IPv6 prefix to use for source NAT. Specify an IPv6 prefix (/80 netmask) from the subnet CIDR block or ``auto_assigned`` to use an IPv6 prefix selected at random from the subnet CIDR block. """ return pulumi.get(self, "source_nat_ipv6_prefix") diff --git a/sdk/python/pulumi_aws_native/lambda_/event_invoke_config.py b/sdk/python/pulumi_aws_native/lambda_/event_invoke_config.py index 853a3217c5..8a2a9c0357 100644 --- a/sdk/python/pulumi_aws_native/lambda_/event_invoke_config.py +++ b/sdk/python/pulumi_aws_native/lambda_/event_invoke_config.py @@ -34,8 +34,11 @@ def __init__(__self__, *, **Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function. - *Queue* - The ARN of a standard SQS queue. + - *Bucket* - The ARN of an Amazon S3 bucket. - *Topic* - The ARN of a standard SNS topic. - *Event Bus* - The ARN of an Amazon EventBridge event bus. + + > S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. :param pulumi.Input[int] maximum_event_age_in_seconds: The maximum age of a request that Lambda sends to a function for processing. :param pulumi.Input[int] maximum_retry_attempts: The maximum number of times to retry when the function returns an error. """ @@ -80,8 +83,11 @@ def destination_config(self) -> Optional[pulumi.Input['EventInvokeConfigDestinat **Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function. - *Queue* - The ARN of a standard SQS queue. + - *Bucket* - The ARN of an Amazon S3 bucket. - *Topic* - The ARN of a standard SNS topic. - *Event Bus* - The ARN of an Amazon EventBridge event bus. + + > S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. """ return pulumi.get(self, "destination_config") @@ -134,8 +140,11 @@ def __init__(__self__, **Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function. - *Queue* - The ARN of a standard SQS queue. + - *Bucket* - The ARN of an Amazon S3 bucket. - *Topic* - The ARN of a standard SNS topic. - *Event Bus* - The ARN of an Amazon EventBridge event bus. + + > S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. :param pulumi.Input[str] function_name: The name of the Lambda function. :param pulumi.Input[int] maximum_event_age_in_seconds: The maximum age of a request that Lambda sends to a function for processing. :param pulumi.Input[int] maximum_retry_attempts: The maximum number of times to retry when the function returns an error. @@ -227,8 +236,11 @@ def destination_config(self) -> pulumi.Output[Optional['outputs.EventInvokeConfi **Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function. - *Queue* - The ARN of a standard SQS queue. + - *Bucket* - The ARN of an Amazon S3 bucket. - *Topic* - The ARN of a standard SNS topic. - *Event Bus* - The ARN of an Amazon EventBridge event bus. + + > S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. """ return pulumi.get(self, "destination_config") diff --git a/sdk/python/pulumi_aws_native/lambda_/get_event_invoke_config.py b/sdk/python/pulumi_aws_native/lambda_/get_event_invoke_config.py index e2512791da..b3621ddf6f 100644 --- a/sdk/python/pulumi_aws_native/lambda_/get_event_invoke_config.py +++ b/sdk/python/pulumi_aws_native/lambda_/get_event_invoke_config.py @@ -43,8 +43,11 @@ def destination_config(self) -> Optional['outputs.EventInvokeConfigDestinationCo **Destinations** - *Function* - The Amazon Resource Name (ARN) of a Lambda function. - *Queue* - The ARN of a standard SQS queue. + - *Bucket* - The ARN of an Amazon S3 bucket. - *Topic* - The ARN of a standard SNS topic. - *Event Bus* - The ARN of an Amazon EventBridge event bus. + + > S3 buckets are supported only for on-failure destinations. To retain records of successful invocations, use another destination type. """ return pulumi.get(self, "destination_config") diff --git a/sdk/python/pulumi_aws_native/rds/get_global_cluster.py b/sdk/python/pulumi_aws_native/rds/get_global_cluster.py index 1bf92e0b63..3741f713ff 100644 --- a/sdk/python/pulumi_aws_native/rds/get_global_cluster.py +++ b/sdk/python/pulumi_aws_native/rds/get_global_cluster.py @@ -69,6 +69,9 @@ def engine_version(self) -> Optional[str]: @property @pulumi.getter(name="globalEndpoint") def global_endpoint(self) -> Optional['outputs.GlobalClusterGlobalEndpoint']: + """ + The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster. + """ return pulumi.get(self, "global_endpoint") @property diff --git a/sdk/python/pulumi_aws_native/rds/global_cluster.py b/sdk/python/pulumi_aws_native/rds/global_cluster.py index 685df3e66e..e96d3ebcc0 100644 --- a/sdk/python/pulumi_aws_native/rds/global_cluster.py +++ b/sdk/python/pulumi_aws_native/rds/global_cluster.py @@ -41,6 +41,7 @@ def __init__(__self__, *, :param pulumi.Input[str] engine_lifecycle_support: The life cycle type of the global cluster. You can use this setting to enroll your global cluster into Amazon RDS Extended Support. :param pulumi.Input[str] engine_version: The version number of the database engine to use. If you specify the SourceDBClusterIdentifier property, don't specify this property. The value is inherited from the cluster. :param pulumi.Input[str] global_cluster_identifier: The cluster identifier of the new global database cluster. This parameter is stored as a lowercase string. + :param pulumi.Input['GlobalClusterGlobalEndpointArgs'] global_endpoint: The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster. :param pulumi.Input[str] source_db_cluster_identifier: The Amazon Resource Name (ARN) to use as the primary cluster of the global database. This parameter is optional. This parameter is stored as a lowercase string. :param pulumi.Input[bool] storage_encrypted: The storage encryption setting for the new global database cluster. If you specify the SourceDBClusterIdentifier property, don't specify this property. The value is inherited from the cluster. @@ -129,6 +130,9 @@ def global_cluster_identifier(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="globalEndpoint") def global_endpoint(self) -> Optional[pulumi.Input['GlobalClusterGlobalEndpointArgs']]: + """ + The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster. + """ return pulumi.get(self, "global_endpoint") @global_endpoint.setter @@ -199,6 +203,7 @@ def __init__(__self__, :param pulumi.Input[str] engine_lifecycle_support: The life cycle type of the global cluster. You can use this setting to enroll your global cluster into Amazon RDS Extended Support. :param pulumi.Input[str] engine_version: The version number of the database engine to use. If you specify the SourceDBClusterIdentifier property, don't specify this property. The value is inherited from the cluster. :param pulumi.Input[str] global_cluster_identifier: The cluster identifier of the new global database cluster. This parameter is stored as a lowercase string. + :param pulumi.Input[Union['GlobalClusterGlobalEndpointArgs', 'GlobalClusterGlobalEndpointArgsDict']] global_endpoint: The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster. :param pulumi.Input[str] source_db_cluster_identifier: The Amazon Resource Name (ARN) to use as the primary cluster of the global database. This parameter is optional. This parameter is stored as a lowercase string. :param pulumi.Input[bool] storage_encrypted: The storage encryption setting for the new global database cluster. If you specify the SourceDBClusterIdentifier property, don't specify this property. The value is inherited from the cluster. @@ -334,6 +339,9 @@ def global_cluster_identifier(self) -> pulumi.Output[Optional[str]]: @property @pulumi.getter(name="globalEndpoint") def global_endpoint(self) -> pulumi.Output[Optional['outputs.GlobalClusterGlobalEndpoint']]: + """ + The writer endpoint for the new global database cluster. This endpoint always points to the writer DB instance in the current primary cluster. + """ return pulumi.get(self, "global_endpoint") @property diff --git a/sdk/python/pulumi_aws_native/resourcegroups/__init__.py b/sdk/python/pulumi_aws_native/resourcegroups/__init__.py index d86074f2d7..30d6f51cf6 100644 --- a/sdk/python/pulumi_aws_native/resourcegroups/__init__.py +++ b/sdk/python/pulumi_aws_native/resourcegroups/__init__.py @@ -7,6 +7,8 @@ # Export this package's modules as members: from ._enums import * from .get_group import * +from .get_tag_sync_task import * from .group import * +from .tag_sync_task import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws_native/resourcegroups/_enums.py b/sdk/python/pulumi_aws_native/resourcegroups/_enums.py index f89447b670..1f669f374c 100644 --- a/sdk/python/pulumi_aws_native/resourcegroups/_enums.py +++ b/sdk/python/pulumi_aws_native/resourcegroups/_enums.py @@ -6,6 +6,7 @@ __all__ = [ 'GroupResourceQueryType', + 'TagSyncTaskStatus', ] @@ -18,3 +19,11 @@ class GroupResourceQueryType(str, Enum): """ TAG_FILTERS10 = "TAG_FILTERS_1_0" CLOUDFORMATION_STACK10 = "CLOUDFORMATION_STACK_1_0" + + +class TagSyncTaskStatus(str, Enum): + """ + The status of the TagSyncTask + """ + ACTIVE = "ACTIVE" + ERROR = "ERROR" diff --git a/sdk/python/pulumi_aws_native/resourcegroups/get_tag_sync_task.py b/sdk/python/pulumi_aws_native/resourcegroups/get_tag_sync_task.py new file mode 100644 index 0000000000..aabb16c29c --- /dev/null +++ b/sdk/python/pulumi_aws_native/resourcegroups/get_tag_sync_task.py @@ -0,0 +1,120 @@ +# 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 ._enums import * + +__all__ = [ + 'GetTagSyncTaskResult', + 'AwaitableGetTagSyncTaskResult', + 'get_tag_sync_task', + 'get_tag_sync_task_output', +] + +@pulumi.output_type +class GetTagSyncTaskResult: + def __init__(__self__, group_arn=None, group_name=None, status=None, task_arn=None): + if group_arn and not isinstance(group_arn, str): + raise TypeError("Expected argument 'group_arn' to be a str") + pulumi.set(__self__, "group_arn", group_arn) + if group_name and not isinstance(group_name, str): + raise TypeError("Expected argument 'group_name' to be a str") + pulumi.set(__self__, "group_name", group_name) + if status and not isinstance(status, str): + raise TypeError("Expected argument 'status' to be a str") + pulumi.set(__self__, "status", status) + if task_arn and not isinstance(task_arn, str): + raise TypeError("Expected argument 'task_arn' to be a str") + pulumi.set(__self__, "task_arn", task_arn) + + @property + @pulumi.getter(name="groupArn") + def group_arn(self) -> Optional[str]: + """ + The Amazon resource name (ARN) of the ApplicationGroup for which the TagSyncTask is created + """ + return pulumi.get(self, "group_arn") + + @property + @pulumi.getter(name="groupName") + def group_name(self) -> Optional[str]: + """ + The Name of the application group for which the TagSyncTask is created + """ + return pulumi.get(self, "group_name") + + @property + @pulumi.getter + def status(self) -> Optional['TagSyncTaskStatus']: + """ + The status of the TagSyncTask + """ + return pulumi.get(self, "status") + + @property + @pulumi.getter(name="taskArn") + def task_arn(self) -> Optional[str]: + """ + The ARN of the TagSyncTask resource + """ + return pulumi.get(self, "task_arn") + + +class AwaitableGetTagSyncTaskResult(GetTagSyncTaskResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetTagSyncTaskResult( + group_arn=self.group_arn, + group_name=self.group_name, + status=self.status, + task_arn=self.task_arn) + + +def get_tag_sync_task(task_arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetTagSyncTaskResult: + """ + Schema for ResourceGroups::TagSyncTask + + + :param str task_arn: The ARN of the TagSyncTask resource + """ + __args__ = dict() + __args__['taskArn'] = task_arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:resourcegroups:getTagSyncTask', __args__, opts=opts, typ=GetTagSyncTaskResult).value + + return AwaitableGetTagSyncTaskResult( + group_arn=pulumi.get(__ret__, 'group_arn'), + group_name=pulumi.get(__ret__, 'group_name'), + status=pulumi.get(__ret__, 'status'), + task_arn=pulumi.get(__ret__, 'task_arn')) +def get_tag_sync_task_output(task_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetTagSyncTaskResult]: + """ + Schema for ResourceGroups::TagSyncTask + + + :param str task_arn: The ARN of the TagSyncTask resource + """ + __args__ = dict() + __args__['taskArn'] = task_arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('aws-native:resourcegroups:getTagSyncTask', __args__, opts=opts, typ=GetTagSyncTaskResult) + return __ret__.apply(lambda __response__: GetTagSyncTaskResult( + group_arn=pulumi.get(__response__, 'group_arn'), + group_name=pulumi.get(__response__, 'group_name'), + status=pulumi.get(__response__, 'status'), + task_arn=pulumi.get(__response__, 'task_arn'))) diff --git a/sdk/python/pulumi_aws_native/resourcegroups/tag_sync_task.py b/sdk/python/pulumi_aws_native/resourcegroups/tag_sync_task.py new file mode 100644 index 0000000000..a28f6cb904 --- /dev/null +++ b/sdk/python/pulumi_aws_native/resourcegroups/tag_sync_task.py @@ -0,0 +1,258 @@ +# 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 ._enums import * + +__all__ = ['TagSyncTaskArgs', 'TagSyncTask'] + +@pulumi.input_type +class TagSyncTaskArgs: + def __init__(__self__, *, + group: pulumi.Input[str], + role_arn: pulumi.Input[str], + tag_key: pulumi.Input[str], + tag_value: pulumi.Input[str]): + """ + The set of arguments for constructing a TagSyncTask resource. + :param pulumi.Input[str] group: The Amazon resource name (ARN) or name of the application group for which you want to create a tag-sync task + :param pulumi.Input[str] role_arn: The Amazon resource name (ARN) of the role assumed by the service to tag and untag resources on your behalf. + :param pulumi.Input[str] tag_key: The tag key. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. + :param pulumi.Input[str] tag_value: The tag value. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. + """ + pulumi.set(__self__, "group", group) + pulumi.set(__self__, "role_arn", role_arn) + pulumi.set(__self__, "tag_key", tag_key) + pulumi.set(__self__, "tag_value", tag_value) + + @property + @pulumi.getter + def group(self) -> pulumi.Input[str]: + """ + The Amazon resource name (ARN) or name of the application group for which you want to create a tag-sync task + """ + return pulumi.get(self, "group") + + @group.setter + def group(self, value: pulumi.Input[str]): + pulumi.set(self, "group", value) + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> pulumi.Input[str]: + """ + The Amazon resource name (ARN) of the role assumed by the service to tag and untag resources on your behalf. + """ + return pulumi.get(self, "role_arn") + + @role_arn.setter + def role_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "role_arn", value) + + @property + @pulumi.getter(name="tagKey") + def tag_key(self) -> pulumi.Input[str]: + """ + The tag key. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. + """ + return pulumi.get(self, "tag_key") + + @tag_key.setter + def tag_key(self, value: pulumi.Input[str]): + pulumi.set(self, "tag_key", value) + + @property + @pulumi.getter(name="tagValue") + def tag_value(self) -> pulumi.Input[str]: + """ + The tag value. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. + """ + return pulumi.get(self, "tag_value") + + @tag_value.setter + def tag_value(self, value: pulumi.Input[str]): + pulumi.set(self, "tag_value", value) + + +class TagSyncTask(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + group: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tag_key: Optional[pulumi.Input[str]] = None, + tag_value: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Schema for ResourceGroups::TagSyncTask + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] group: The Amazon resource name (ARN) or name of the application group for which you want to create a tag-sync task + :param pulumi.Input[str] role_arn: The Amazon resource name (ARN) of the role assumed by the service to tag and untag resources on your behalf. + :param pulumi.Input[str] tag_key: The tag key. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. + :param pulumi.Input[str] tag_value: The tag value. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: TagSyncTaskArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Schema for ResourceGroups::TagSyncTask + + :param str resource_name: The name of the resource. + :param TagSyncTaskArgs 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(TagSyncTaskArgs, 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, + group: Optional[pulumi.Input[str]] = None, + role_arn: Optional[pulumi.Input[str]] = None, + tag_key: Optional[pulumi.Input[str]] = None, + tag_value: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = TagSyncTaskArgs.__new__(TagSyncTaskArgs) + + if group is None and not opts.urn: + raise TypeError("Missing required property 'group'") + __props__.__dict__["group"] = group + if role_arn is None and not opts.urn: + raise TypeError("Missing required property 'role_arn'") + __props__.__dict__["role_arn"] = role_arn + if tag_key is None and not opts.urn: + raise TypeError("Missing required property 'tag_key'") + __props__.__dict__["tag_key"] = tag_key + if tag_value is None and not opts.urn: + raise TypeError("Missing required property 'tag_value'") + __props__.__dict__["tag_value"] = tag_value + __props__.__dict__["group_arn"] = None + __props__.__dict__["group_name"] = None + __props__.__dict__["status"] = None + __props__.__dict__["task_arn"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["group", "roleArn", "tagKey", "tagValue"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(TagSyncTask, __self__).__init__( + 'aws-native:resourcegroups:TagSyncTask', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'TagSyncTask': + """ + Get an existing TagSyncTask 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__ = TagSyncTaskArgs.__new__(TagSyncTaskArgs) + + __props__.__dict__["group"] = None + __props__.__dict__["group_arn"] = None + __props__.__dict__["group_name"] = None + __props__.__dict__["role_arn"] = None + __props__.__dict__["status"] = None + __props__.__dict__["tag_key"] = None + __props__.__dict__["tag_value"] = None + __props__.__dict__["task_arn"] = None + return TagSyncTask(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def group(self) -> pulumi.Output[str]: + """ + The Amazon resource name (ARN) or name of the application group for which you want to create a tag-sync task + """ + return pulumi.get(self, "group") + + @property + @pulumi.getter(name="groupArn") + def group_arn(self) -> pulumi.Output[str]: + """ + The Amazon resource name (ARN) of the ApplicationGroup for which the TagSyncTask is created + """ + return pulumi.get(self, "group_arn") + + @property + @pulumi.getter(name="groupName") + def group_name(self) -> pulumi.Output[str]: + """ + The Name of the application group for which the TagSyncTask is created + """ + return pulumi.get(self, "group_name") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> pulumi.Output[str]: + """ + The Amazon resource name (ARN) of the role assumed by the service to tag and untag resources on your behalf. + """ + return pulumi.get(self, "role_arn") + + @property + @pulumi.getter + def status(self) -> pulumi.Output['TagSyncTaskStatus']: + """ + The status of the TagSyncTask + """ + return pulumi.get(self, "status") + + @property + @pulumi.getter(name="tagKey") + def tag_key(self) -> pulumi.Output[str]: + """ + The tag key. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. + """ + return pulumi.get(self, "tag_key") + + @property + @pulumi.getter(name="tagValue") + def tag_value(self) -> pulumi.Output[str]: + """ + The tag value. Resources tagged with this tag key-value pair will be added to the application. If a resource with this tag is later untagged, the tag-sync task removes the resource from the application. + """ + return pulumi.get(self, "tag_value") + + @property + @pulumi.getter(name="taskArn") + def task_arn(self) -> pulumi.Output[str]: + """ + The ARN of the TagSyncTask resource + """ + return pulumi.get(self, "task_arn") + diff --git a/sdk/python/pulumi_aws_native/s3express/_enums.py b/sdk/python/pulumi_aws_native/s3express/_enums.py index f568d6d7aa..d3eaf62a03 100644 --- a/sdk/python/pulumi_aws_native/s3express/_enums.py +++ b/sdk/python/pulumi_aws_native/s3express/_enums.py @@ -19,6 +19,9 @@ class DirectoryBucketDataRedundancy(str, Enum): class DirectoryBucketRuleStatus(str, Enum): + """ + If `Enabled` , the rule is currently being applied. If `Disabled` , the rule is not currently being applied. + """ ENABLED = "Enabled" DISABLED = "Disabled" diff --git a/sdk/python/pulumi_aws_native/s3express/_inputs.py b/sdk/python/pulumi_aws_native/s3express/_inputs.py index 3233441971..902715edc7 100644 --- a/sdk/python/pulumi_aws_native/s3express/_inputs.py +++ b/sdk/python/pulumi_aws_native/s3express/_inputs.py @@ -139,12 +139,23 @@ class DirectoryBucketRuleArgsDict(TypedDict): You must specify at least one of the following properties: AbortIncompleteMultipartUpload, or ExpirationInDays. """ status: pulumi.Input['DirectoryBucketRuleStatus'] + """ + If `Enabled` , the rule is currently being applied. If `Disabled` , the rule is not currently being applied. + """ abort_incomplete_multipart_upload: NotRequired[pulumi.Input['DirectoryBucketAbortIncompleteMultipartUploadArgsDict']] expiration_in_days: NotRequired[pulumi.Input[int]] id: NotRequired[pulumi.Input[str]] + """ + Unique identifier for the rule. The value can't be longer than 255 characters. + """ object_size_greater_than: NotRequired[pulumi.Input[str]] object_size_less_than: NotRequired[pulumi.Input[str]] prefix: NotRequired[pulumi.Input[str]] + """ + Object key prefix that identifies one or more objects to which this rule applies. + + > Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) . + """ elif False: DirectoryBucketRuleArgsDict: TypeAlias = Mapping[str, Any] @@ -160,6 +171,11 @@ def __init__(__self__, *, prefix: Optional[pulumi.Input[str]] = None): """ You must specify at least one of the following properties: AbortIncompleteMultipartUpload, or ExpirationInDays. + :param pulumi.Input['DirectoryBucketRuleStatus'] status: If `Enabled` , the rule is currently being applied. If `Disabled` , the rule is not currently being applied. + :param pulumi.Input[str] id: Unique identifier for the rule. The value can't be longer than 255 characters. + :param pulumi.Input[str] prefix: Object key prefix that identifies one or more objects to which this rule applies. + + > Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) . """ pulumi.set(__self__, "status", status) if abort_incomplete_multipart_upload is not None: @@ -178,6 +194,9 @@ def __init__(__self__, *, @property @pulumi.getter def status(self) -> pulumi.Input['DirectoryBucketRuleStatus']: + """ + If `Enabled` , the rule is currently being applied. If `Disabled` , the rule is not currently being applied. + """ return pulumi.get(self, "status") @status.setter @@ -205,6 +224,9 @@ def expiration_in_days(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter def id(self) -> Optional[pulumi.Input[str]]: + """ + Unique identifier for the rule. The value can't be longer than 255 characters. + """ return pulumi.get(self, "id") @id.setter @@ -232,6 +254,11 @@ def object_size_less_than(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter def prefix(self) -> Optional[pulumi.Input[str]]: + """ + Object key prefix that identifies one or more objects to which this rule applies. + + > Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) . + """ return pulumi.get(self, "prefix") @prefix.setter diff --git a/sdk/python/pulumi_aws_native/s3express/outputs.py b/sdk/python/pulumi_aws_native/s3express/outputs.py index 0d7c7fd1f1..70577f96ad 100644 --- a/sdk/python/pulumi_aws_native/s3express/outputs.py +++ b/sdk/python/pulumi_aws_native/s3express/outputs.py @@ -159,6 +159,11 @@ def __init__(__self__, *, prefix: Optional[str] = None): """ You must specify at least one of the following properties: AbortIncompleteMultipartUpload, or ExpirationInDays. + :param 'DirectoryBucketRuleStatus' status: If `Enabled` , the rule is currently being applied. If `Disabled` , the rule is not currently being applied. + :param str id: Unique identifier for the rule. The value can't be longer than 255 characters. + :param str prefix: Object key prefix that identifies one or more objects to which this rule applies. + + > Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) . """ pulumi.set(__self__, "status", status) if abort_incomplete_multipart_upload is not None: @@ -177,6 +182,9 @@ def __init__(__self__, *, @property @pulumi.getter def status(self) -> 'DirectoryBucketRuleStatus': + """ + If `Enabled` , the rule is currently being applied. If `Disabled` , the rule is not currently being applied. + """ return pulumi.get(self, "status") @property @@ -192,6 +200,9 @@ def expiration_in_days(self) -> Optional[int]: @property @pulumi.getter def id(self) -> Optional[str]: + """ + Unique identifier for the rule. The value can't be longer than 255 characters. + """ return pulumi.get(self, "id") @property @@ -207,6 +218,11 @@ def object_size_less_than(self) -> Optional[str]: @property @pulumi.getter def prefix(self) -> Optional[str]: + """ + Object key prefix that identifies one or more objects to which this rule applies. + + > Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints) . + """ return pulumi.get(self, "prefix") diff --git a/sdk/python/pulumi_aws_native/wisdom/__init__.py b/sdk/python/pulumi_aws_native/wisdom/__init__.py index 23193f25a6..cd902ef379 100644 --- a/sdk/python/pulumi_aws_native/wisdom/__init__.py +++ b/sdk/python/pulumi_aws_native/wisdom/__init__.py @@ -19,6 +19,10 @@ from .get_assistant import * from .get_assistant_association import * from .get_knowledge_base import * +from .get_message_template import * +from .get_message_template_version import * from .knowledge_base import * +from .message_template import * +from .message_template_version import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws_native/wisdom/_enums.py b/sdk/python/pulumi_aws_native/wisdom/_enums.py index 25479a97ee..ee92b48bec 100644 --- a/sdk/python/pulumi_aws_native/wisdom/_enums.py +++ b/sdk/python/pulumi_aws_native/wisdom/_enums.py @@ -14,6 +14,7 @@ 'AssistantAssociationAssociationType', 'AssistantType', 'KnowledgeBaseType', + 'MessageTemplateChannelSubtype', ] @@ -58,3 +59,11 @@ class KnowledgeBaseType(str, Enum): EXTERNAL = "EXTERNAL" CUSTOM = "CUSTOM" MESSAGE_TEMPLATES = "MESSAGE_TEMPLATES" + + +class MessageTemplateChannelSubtype(str, Enum): + """ + The channel subtype this message template applies to. + """ + EMAIL = "EMAIL" + SMS = "SMS" diff --git a/sdk/python/pulumi_aws_native/wisdom/_inputs.py b/sdk/python/pulumi_aws_native/wisdom/_inputs.py index 98262b2a75..c6a5c90ac0 100644 --- a/sdk/python/pulumi_aws_native/wisdom/_inputs.py +++ b/sdk/python/pulumi_aws_native/wisdom/_inputs.py @@ -56,6 +56,32 @@ 'KnowledgeBaseServerSideEncryptionConfigurationArgsDict', 'KnowledgeBaseSourceConfigurationArgs', 'KnowledgeBaseSourceConfigurationArgsDict', + 'MessageTemplateAgentAttributesArgs', + 'MessageTemplateAgentAttributesArgsDict', + 'MessageTemplateAttributesArgs', + 'MessageTemplateAttributesArgsDict', + 'MessageTemplateBodyContentProviderArgs', + 'MessageTemplateBodyContentProviderArgsDict', + 'MessageTemplateContentArgs', + 'MessageTemplateContentArgsDict', + 'MessageTemplateCustomerProfileAttributesArgs', + 'MessageTemplateCustomerProfileAttributesArgsDict', + 'MessageTemplateEmailMessageTemplateContentBodyArgs', + 'MessageTemplateEmailMessageTemplateContentBodyArgsDict', + 'MessageTemplateEmailMessageTemplateContentArgs', + 'MessageTemplateEmailMessageTemplateContentArgsDict', + 'MessageTemplateEmailMessageTemplateHeaderArgs', + 'MessageTemplateEmailMessageTemplateHeaderArgsDict', + 'MessageTemplateGroupingConfigurationArgs', + 'MessageTemplateGroupingConfigurationArgsDict', + 'MessageTemplateSmsMessageTemplateContentBodyArgs', + 'MessageTemplateSmsMessageTemplateContentBodyArgsDict', + 'MessageTemplateSmsMessageTemplateContentArgs', + 'MessageTemplateSmsMessageTemplateContentArgsDict', + 'MessageTemplateSystemAttributesArgs', + 'MessageTemplateSystemAttributesArgsDict', + 'MessageTemplateSystemEndpointAttributesArgs', + 'MessageTemplateSystemEndpointAttributesArgsDict', ] MYPY = False @@ -761,3 +787,1768 @@ def app_integrations(self, value: Optional[pulumi.Input['KnowledgeBaseAppIntegra pulumi.set(self, "app_integrations", value) +if not MYPY: + class MessageTemplateAgentAttributesArgsDict(TypedDict): + """ + The agent attributes that are used with the message template. + """ + first_name: NotRequired[pulumi.Input[str]] + """ + The agent’s first name as entered in their Amazon Connect user account. + """ + last_name: NotRequired[pulumi.Input[str]] + """ + The agent’s last name as entered in their Amazon Connect user account. + """ +elif False: + MessageTemplateAgentAttributesArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MessageTemplateAgentAttributesArgs: + def __init__(__self__, *, + first_name: Optional[pulumi.Input[str]] = None, + last_name: Optional[pulumi.Input[str]] = None): + """ + The agent attributes that are used with the message template. + :param pulumi.Input[str] first_name: The agent’s first name as entered in their Amazon Connect user account. + :param pulumi.Input[str] last_name: The agent’s last name as entered in their Amazon Connect user account. + """ + if first_name is not None: + pulumi.set(__self__, "first_name", first_name) + if last_name is not None: + pulumi.set(__self__, "last_name", last_name) + + @property + @pulumi.getter(name="firstName") + def first_name(self) -> Optional[pulumi.Input[str]]: + """ + The agent’s first name as entered in their Amazon Connect user account. + """ + return pulumi.get(self, "first_name") + + @first_name.setter + def first_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "first_name", value) + + @property + @pulumi.getter(name="lastName") + def last_name(self) -> Optional[pulumi.Input[str]]: + """ + The agent’s last name as entered in their Amazon Connect user account. + """ + return pulumi.get(self, "last_name") + + @last_name.setter + def last_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "last_name", value) + + +if not MYPY: + class MessageTemplateAttributesArgsDict(TypedDict): + """ + An object that specifies the default values to use for variables in the message template. This object contains different categories of key-value pairs. Each key defines a variable or placeholder in the message template. The corresponding value defines the default value for that variable. + """ + agent_attributes: NotRequired[pulumi.Input['MessageTemplateAgentAttributesArgsDict']] + custom_attributes: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] + customer_profile_attributes: NotRequired[pulumi.Input['MessageTemplateCustomerProfileAttributesArgsDict']] + system_attributes: NotRequired[pulumi.Input['MessageTemplateSystemAttributesArgsDict']] +elif False: + MessageTemplateAttributesArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MessageTemplateAttributesArgs: + def __init__(__self__, *, + agent_attributes: Optional[pulumi.Input['MessageTemplateAgentAttributesArgs']] = None, + custom_attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + customer_profile_attributes: Optional[pulumi.Input['MessageTemplateCustomerProfileAttributesArgs']] = None, + system_attributes: Optional[pulumi.Input['MessageTemplateSystemAttributesArgs']] = None): + """ + An object that specifies the default values to use for variables in the message template. This object contains different categories of key-value pairs. Each key defines a variable or placeholder in the message template. The corresponding value defines the default value for that variable. + """ + if agent_attributes is not None: + pulumi.set(__self__, "agent_attributes", agent_attributes) + if custom_attributes is not None: + pulumi.set(__self__, "custom_attributes", custom_attributes) + if customer_profile_attributes is not None: + pulumi.set(__self__, "customer_profile_attributes", customer_profile_attributes) + if system_attributes is not None: + pulumi.set(__self__, "system_attributes", system_attributes) + + @property + @pulumi.getter(name="agentAttributes") + def agent_attributes(self) -> Optional[pulumi.Input['MessageTemplateAgentAttributesArgs']]: + return pulumi.get(self, "agent_attributes") + + @agent_attributes.setter + def agent_attributes(self, value: Optional[pulumi.Input['MessageTemplateAgentAttributesArgs']]): + pulumi.set(self, "agent_attributes", value) + + @property + @pulumi.getter(name="customAttributes") + def custom_attributes(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + return pulumi.get(self, "custom_attributes") + + @custom_attributes.setter + def custom_attributes(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "custom_attributes", value) + + @property + @pulumi.getter(name="customerProfileAttributes") + def customer_profile_attributes(self) -> Optional[pulumi.Input['MessageTemplateCustomerProfileAttributesArgs']]: + return pulumi.get(self, "customer_profile_attributes") + + @customer_profile_attributes.setter + def customer_profile_attributes(self, value: Optional[pulumi.Input['MessageTemplateCustomerProfileAttributesArgs']]): + pulumi.set(self, "customer_profile_attributes", value) + + @property + @pulumi.getter(name="systemAttributes") + def system_attributes(self) -> Optional[pulumi.Input['MessageTemplateSystemAttributesArgs']]: + return pulumi.get(self, "system_attributes") + + @system_attributes.setter + def system_attributes(self, value: Optional[pulumi.Input['MessageTemplateSystemAttributesArgs']]): + pulumi.set(self, "system_attributes", value) + + +if not MYPY: + class MessageTemplateBodyContentProviderArgsDict(TypedDict): + """ + The container of message template body. + """ + content: NotRequired[pulumi.Input[str]] +elif False: + MessageTemplateBodyContentProviderArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MessageTemplateBodyContentProviderArgs: + def __init__(__self__, *, + content: Optional[pulumi.Input[str]] = None): + """ + The container of message template body. + """ + if content is not None: + pulumi.set(__self__, "content", content) + + @property + @pulumi.getter + def content(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "content") + + @content.setter + def content(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "content", value) + + +if not MYPY: + class MessageTemplateContentArgsDict(TypedDict): + """ + The content of the message template. + """ + email_message_template_content: NotRequired[pulumi.Input['MessageTemplateEmailMessageTemplateContentArgsDict']] + sms_message_template_content: NotRequired[pulumi.Input['MessageTemplateSmsMessageTemplateContentArgsDict']] +elif False: + MessageTemplateContentArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MessageTemplateContentArgs: + def __init__(__self__, *, + email_message_template_content: Optional[pulumi.Input['MessageTemplateEmailMessageTemplateContentArgs']] = None, + sms_message_template_content: Optional[pulumi.Input['MessageTemplateSmsMessageTemplateContentArgs']] = None): + """ + The content of the message template. + """ + if email_message_template_content is not None: + pulumi.set(__self__, "email_message_template_content", email_message_template_content) + if sms_message_template_content is not None: + pulumi.set(__self__, "sms_message_template_content", sms_message_template_content) + + @property + @pulumi.getter(name="emailMessageTemplateContent") + def email_message_template_content(self) -> Optional[pulumi.Input['MessageTemplateEmailMessageTemplateContentArgs']]: + return pulumi.get(self, "email_message_template_content") + + @email_message_template_content.setter + def email_message_template_content(self, value: Optional[pulumi.Input['MessageTemplateEmailMessageTemplateContentArgs']]): + pulumi.set(self, "email_message_template_content", value) + + @property + @pulumi.getter(name="smsMessageTemplateContent") + def sms_message_template_content(self) -> Optional[pulumi.Input['MessageTemplateSmsMessageTemplateContentArgs']]: + return pulumi.get(self, "sms_message_template_content") + + @sms_message_template_content.setter + def sms_message_template_content(self, value: Optional[pulumi.Input['MessageTemplateSmsMessageTemplateContentArgs']]): + pulumi.set(self, "sms_message_template_content", value) + + +if not MYPY: + class MessageTemplateCustomerProfileAttributesArgsDict(TypedDict): + """ + The customer profile attributes that are used with the message template. + """ + account_number: NotRequired[pulumi.Input[str]] + """ + A unique account number that you have given to the customer. + """ + additional_information: NotRequired[pulumi.Input[str]] + """ + Any additional information relevant to the customer's profile. + """ + address1: NotRequired[pulumi.Input[str]] + """ + The first line of a customer address. + """ + address2: NotRequired[pulumi.Input[str]] + """ + The second line of a customer address. + """ + address3: NotRequired[pulumi.Input[str]] + """ + The third line of a customer address. + """ + address4: NotRequired[pulumi.Input[str]] + """ + The fourth line of a customer address. + """ + billing_address1: NotRequired[pulumi.Input[str]] + """ + The first line of a customer’s billing address. + """ + billing_address2: NotRequired[pulumi.Input[str]] + """ + The second line of a customer’s billing address. + """ + billing_address3: NotRequired[pulumi.Input[str]] + """ + The third line of a customer’s billing address. + """ + billing_address4: NotRequired[pulumi.Input[str]] + """ + The fourth line of a customer’s billing address. + """ + billing_city: NotRequired[pulumi.Input[str]] + """ + The city of a customer’s billing address. + """ + billing_country: NotRequired[pulumi.Input[str]] + """ + The country of a customer’s billing address. + """ + billing_county: NotRequired[pulumi.Input[str]] + """ + The county of a customer’s billing address. + """ + billing_postal_code: NotRequired[pulumi.Input[str]] + """ + The postal code of a customer’s billing address. + """ + billing_province: NotRequired[pulumi.Input[str]] + """ + The province of a customer’s billing address. + """ + billing_state: NotRequired[pulumi.Input[str]] + """ + The state of a customer’s billing address. + """ + birth_date: NotRequired[pulumi.Input[str]] + """ + The customer's birth date. + """ + business_email_address: NotRequired[pulumi.Input[str]] + """ + The customer's business email address. + """ + business_name: NotRequired[pulumi.Input[str]] + """ + The name of the customer's business. + """ + business_phone_number: NotRequired[pulumi.Input[str]] + """ + The customer's business phone number. + """ + city: NotRequired[pulumi.Input[str]] + """ + The city in which a customer lives. + """ + country: NotRequired[pulumi.Input[str]] + """ + The country in which a customer lives. + """ + county: NotRequired[pulumi.Input[str]] + """ + The county in which a customer lives. + """ + custom: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] + email_address: NotRequired[pulumi.Input[str]] + """ + The customer's email address, which has not been specified as a personal or business address. + """ + first_name: NotRequired[pulumi.Input[str]] + """ + The customer's first name. + """ + gender: NotRequired[pulumi.Input[str]] + """ + The customer's gender. + """ + home_phone_number: NotRequired[pulumi.Input[str]] + """ + The customer's home phone number. + """ + last_name: NotRequired[pulumi.Input[str]] + """ + The customer's last name. + """ + mailing_address1: NotRequired[pulumi.Input[str]] + """ + The first line of a customer’s mailing address. + """ + mailing_address2: NotRequired[pulumi.Input[str]] + """ + The second line of a customer’s mailing address. + """ + mailing_address3: NotRequired[pulumi.Input[str]] + """ + The third line of a customer’s mailing address. + """ + mailing_address4: NotRequired[pulumi.Input[str]] + """ + The fourth line of a customer’s mailing address. + """ + mailing_city: NotRequired[pulumi.Input[str]] + """ + The city of a customer’s mailing address. + """ + mailing_country: NotRequired[pulumi.Input[str]] + """ + The country of a customer’s mailing address. + """ + mailing_county: NotRequired[pulumi.Input[str]] + """ + The county of a customer’s mailing address. + """ + mailing_postal_code: NotRequired[pulumi.Input[str]] + """ + The postal code of a customer’s mailing address + """ + mailing_province: NotRequired[pulumi.Input[str]] + """ + The province of a customer’s mailing address. + """ + mailing_state: NotRequired[pulumi.Input[str]] + """ + The state of a customer’s mailing address. + """ + middle_name: NotRequired[pulumi.Input[str]] + """ + The customer's middle name. + """ + mobile_phone_number: NotRequired[pulumi.Input[str]] + """ + The customer's mobile phone number. + """ + party_type: NotRequired[pulumi.Input[str]] + """ + The customer's party type. + """ + phone_number: NotRequired[pulumi.Input[str]] + """ + The customer's phone number, which has not been specified as a mobile, home, or business number. + """ + postal_code: NotRequired[pulumi.Input[str]] + """ + The postal code of a customer address. + """ + profile_arn: NotRequired[pulumi.Input[str]] + """ + The ARN of a customer profile. + """ + profile_id: NotRequired[pulumi.Input[str]] + """ + The unique identifier of a customer profile. + """ + province: NotRequired[pulumi.Input[str]] + """ + The province in which a customer lives. + """ + shipping_address1: NotRequired[pulumi.Input[str]] + """ + The first line of a customer’s shipping address. + """ + shipping_address2: NotRequired[pulumi.Input[str]] + """ + The second line of a customer’s shipping address. + """ + shipping_address3: NotRequired[pulumi.Input[str]] + """ + The third line of a customer’s shipping address. + """ + shipping_address4: NotRequired[pulumi.Input[str]] + """ + The fourth line of a customer’s shipping address + """ + shipping_city: NotRequired[pulumi.Input[str]] + """ + The city of a customer’s shipping address. + """ + shipping_country: NotRequired[pulumi.Input[str]] + """ + The country of a customer’s shipping address. + """ + shipping_county: NotRequired[pulumi.Input[str]] + """ + The county of a customer’s shipping address. + """ + shipping_postal_code: NotRequired[pulumi.Input[str]] + """ + The postal code of a customer’s shipping address. + """ + shipping_province: NotRequired[pulumi.Input[str]] + """ + The province of a customer’s shipping address. + """ + shipping_state: NotRequired[pulumi.Input[str]] + """ + The state of a customer’s shipping address. + """ + state: NotRequired[pulumi.Input[str]] + """ + The state in which a customer lives. + """ +elif False: + MessageTemplateCustomerProfileAttributesArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MessageTemplateCustomerProfileAttributesArgs: + def __init__(__self__, *, + account_number: Optional[pulumi.Input[str]] = None, + additional_information: Optional[pulumi.Input[str]] = None, + address1: Optional[pulumi.Input[str]] = None, + address2: Optional[pulumi.Input[str]] = None, + address3: Optional[pulumi.Input[str]] = None, + address4: Optional[pulumi.Input[str]] = None, + billing_address1: Optional[pulumi.Input[str]] = None, + billing_address2: Optional[pulumi.Input[str]] = None, + billing_address3: Optional[pulumi.Input[str]] = None, + billing_address4: Optional[pulumi.Input[str]] = None, + billing_city: Optional[pulumi.Input[str]] = None, + billing_country: Optional[pulumi.Input[str]] = None, + billing_county: Optional[pulumi.Input[str]] = None, + billing_postal_code: Optional[pulumi.Input[str]] = None, + billing_province: Optional[pulumi.Input[str]] = None, + billing_state: Optional[pulumi.Input[str]] = None, + birth_date: Optional[pulumi.Input[str]] = None, + business_email_address: Optional[pulumi.Input[str]] = None, + business_name: Optional[pulumi.Input[str]] = None, + business_phone_number: Optional[pulumi.Input[str]] = None, + city: Optional[pulumi.Input[str]] = None, + country: Optional[pulumi.Input[str]] = None, + county: Optional[pulumi.Input[str]] = None, + custom: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + email_address: Optional[pulumi.Input[str]] = None, + first_name: Optional[pulumi.Input[str]] = None, + gender: Optional[pulumi.Input[str]] = None, + home_phone_number: Optional[pulumi.Input[str]] = None, + last_name: Optional[pulumi.Input[str]] = None, + mailing_address1: Optional[pulumi.Input[str]] = None, + mailing_address2: Optional[pulumi.Input[str]] = None, + mailing_address3: Optional[pulumi.Input[str]] = None, + mailing_address4: Optional[pulumi.Input[str]] = None, + mailing_city: Optional[pulumi.Input[str]] = None, + mailing_country: Optional[pulumi.Input[str]] = None, + mailing_county: Optional[pulumi.Input[str]] = None, + mailing_postal_code: Optional[pulumi.Input[str]] = None, + mailing_province: Optional[pulumi.Input[str]] = None, + mailing_state: Optional[pulumi.Input[str]] = None, + middle_name: Optional[pulumi.Input[str]] = None, + mobile_phone_number: Optional[pulumi.Input[str]] = None, + party_type: Optional[pulumi.Input[str]] = None, + phone_number: Optional[pulumi.Input[str]] = None, + postal_code: Optional[pulumi.Input[str]] = None, + profile_arn: Optional[pulumi.Input[str]] = None, + profile_id: Optional[pulumi.Input[str]] = None, + province: Optional[pulumi.Input[str]] = None, + shipping_address1: Optional[pulumi.Input[str]] = None, + shipping_address2: Optional[pulumi.Input[str]] = None, + shipping_address3: Optional[pulumi.Input[str]] = None, + shipping_address4: Optional[pulumi.Input[str]] = None, + shipping_city: Optional[pulumi.Input[str]] = None, + shipping_country: Optional[pulumi.Input[str]] = None, + shipping_county: Optional[pulumi.Input[str]] = None, + shipping_postal_code: Optional[pulumi.Input[str]] = None, + shipping_province: Optional[pulumi.Input[str]] = None, + shipping_state: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None): + """ + The customer profile attributes that are used with the message template. + :param pulumi.Input[str] account_number: A unique account number that you have given to the customer. + :param pulumi.Input[str] additional_information: Any additional information relevant to the customer's profile. + :param pulumi.Input[str] address1: The first line of a customer address. + :param pulumi.Input[str] address2: The second line of a customer address. + :param pulumi.Input[str] address3: The third line of a customer address. + :param pulumi.Input[str] address4: The fourth line of a customer address. + :param pulumi.Input[str] billing_address1: The first line of a customer’s billing address. + :param pulumi.Input[str] billing_address2: The second line of a customer’s billing address. + :param pulumi.Input[str] billing_address3: The third line of a customer’s billing address. + :param pulumi.Input[str] billing_address4: The fourth line of a customer’s billing address. + :param pulumi.Input[str] billing_city: The city of a customer’s billing address. + :param pulumi.Input[str] billing_country: The country of a customer’s billing address. + :param pulumi.Input[str] billing_county: The county of a customer’s billing address. + :param pulumi.Input[str] billing_postal_code: The postal code of a customer’s billing address. + :param pulumi.Input[str] billing_province: The province of a customer’s billing address. + :param pulumi.Input[str] billing_state: The state of a customer’s billing address. + :param pulumi.Input[str] birth_date: The customer's birth date. + :param pulumi.Input[str] business_email_address: The customer's business email address. + :param pulumi.Input[str] business_name: The name of the customer's business. + :param pulumi.Input[str] business_phone_number: The customer's business phone number. + :param pulumi.Input[str] city: The city in which a customer lives. + :param pulumi.Input[str] country: The country in which a customer lives. + :param pulumi.Input[str] county: The county in which a customer lives. + :param pulumi.Input[str] email_address: The customer's email address, which has not been specified as a personal or business address. + :param pulumi.Input[str] first_name: The customer's first name. + :param pulumi.Input[str] gender: The customer's gender. + :param pulumi.Input[str] home_phone_number: The customer's home phone number. + :param pulumi.Input[str] last_name: The customer's last name. + :param pulumi.Input[str] mailing_address1: The first line of a customer’s mailing address. + :param pulumi.Input[str] mailing_address2: The second line of a customer’s mailing address. + :param pulumi.Input[str] mailing_address3: The third line of a customer’s mailing address. + :param pulumi.Input[str] mailing_address4: The fourth line of a customer’s mailing address. + :param pulumi.Input[str] mailing_city: The city of a customer’s mailing address. + :param pulumi.Input[str] mailing_country: The country of a customer’s mailing address. + :param pulumi.Input[str] mailing_county: The county of a customer’s mailing address. + :param pulumi.Input[str] mailing_postal_code: The postal code of a customer’s mailing address + :param pulumi.Input[str] mailing_province: The province of a customer’s mailing address. + :param pulumi.Input[str] mailing_state: The state of a customer’s mailing address. + :param pulumi.Input[str] middle_name: The customer's middle name. + :param pulumi.Input[str] mobile_phone_number: The customer's mobile phone number. + :param pulumi.Input[str] party_type: The customer's party type. + :param pulumi.Input[str] phone_number: The customer's phone number, which has not been specified as a mobile, home, or business number. + :param pulumi.Input[str] postal_code: The postal code of a customer address. + :param pulumi.Input[str] profile_arn: The ARN of a customer profile. + :param pulumi.Input[str] profile_id: The unique identifier of a customer profile. + :param pulumi.Input[str] province: The province in which a customer lives. + :param pulumi.Input[str] shipping_address1: The first line of a customer’s shipping address. + :param pulumi.Input[str] shipping_address2: The second line of a customer’s shipping address. + :param pulumi.Input[str] shipping_address3: The third line of a customer’s shipping address. + :param pulumi.Input[str] shipping_address4: The fourth line of a customer’s shipping address + :param pulumi.Input[str] shipping_city: The city of a customer’s shipping address. + :param pulumi.Input[str] shipping_country: The country of a customer’s shipping address. + :param pulumi.Input[str] shipping_county: The county of a customer’s shipping address. + :param pulumi.Input[str] shipping_postal_code: The postal code of a customer’s shipping address. + :param pulumi.Input[str] shipping_province: The province of a customer’s shipping address. + :param pulumi.Input[str] shipping_state: The state of a customer’s shipping address. + :param pulumi.Input[str] state: The state in which a customer lives. + """ + if account_number is not None: + pulumi.set(__self__, "account_number", account_number) + if additional_information is not None: + pulumi.set(__self__, "additional_information", additional_information) + if address1 is not None: + pulumi.set(__self__, "address1", address1) + if address2 is not None: + pulumi.set(__self__, "address2", address2) + if address3 is not None: + pulumi.set(__self__, "address3", address3) + if address4 is not None: + pulumi.set(__self__, "address4", address4) + if billing_address1 is not None: + pulumi.set(__self__, "billing_address1", billing_address1) + if billing_address2 is not None: + pulumi.set(__self__, "billing_address2", billing_address2) + if billing_address3 is not None: + pulumi.set(__self__, "billing_address3", billing_address3) + if billing_address4 is not None: + pulumi.set(__self__, "billing_address4", billing_address4) + if billing_city is not None: + pulumi.set(__self__, "billing_city", billing_city) + if billing_country is not None: + pulumi.set(__self__, "billing_country", billing_country) + if billing_county is not None: + pulumi.set(__self__, "billing_county", billing_county) + if billing_postal_code is not None: + pulumi.set(__self__, "billing_postal_code", billing_postal_code) + if billing_province is not None: + pulumi.set(__self__, "billing_province", billing_province) + if billing_state is not None: + pulumi.set(__self__, "billing_state", billing_state) + if birth_date is not None: + pulumi.set(__self__, "birth_date", birth_date) + if business_email_address is not None: + pulumi.set(__self__, "business_email_address", business_email_address) + if business_name is not None: + pulumi.set(__self__, "business_name", business_name) + if business_phone_number is not None: + pulumi.set(__self__, "business_phone_number", business_phone_number) + if city is not None: + pulumi.set(__self__, "city", city) + if country is not None: + pulumi.set(__self__, "country", country) + if county is not None: + pulumi.set(__self__, "county", county) + if custom is not None: + pulumi.set(__self__, "custom", custom) + if email_address is not None: + pulumi.set(__self__, "email_address", email_address) + if first_name is not None: + pulumi.set(__self__, "first_name", first_name) + if gender is not None: + pulumi.set(__self__, "gender", gender) + if home_phone_number is not None: + pulumi.set(__self__, "home_phone_number", home_phone_number) + if last_name is not None: + pulumi.set(__self__, "last_name", last_name) + if mailing_address1 is not None: + pulumi.set(__self__, "mailing_address1", mailing_address1) + if mailing_address2 is not None: + pulumi.set(__self__, "mailing_address2", mailing_address2) + if mailing_address3 is not None: + pulumi.set(__self__, "mailing_address3", mailing_address3) + if mailing_address4 is not None: + pulumi.set(__self__, "mailing_address4", mailing_address4) + if mailing_city is not None: + pulumi.set(__self__, "mailing_city", mailing_city) + if mailing_country is not None: + pulumi.set(__self__, "mailing_country", mailing_country) + if mailing_county is not None: + pulumi.set(__self__, "mailing_county", mailing_county) + if mailing_postal_code is not None: + pulumi.set(__self__, "mailing_postal_code", mailing_postal_code) + if mailing_province is not None: + pulumi.set(__self__, "mailing_province", mailing_province) + if mailing_state is not None: + pulumi.set(__self__, "mailing_state", mailing_state) + if middle_name is not None: + pulumi.set(__self__, "middle_name", middle_name) + if mobile_phone_number is not None: + pulumi.set(__self__, "mobile_phone_number", mobile_phone_number) + if party_type is not None: + pulumi.set(__self__, "party_type", party_type) + if phone_number is not None: + pulumi.set(__self__, "phone_number", phone_number) + if postal_code is not None: + pulumi.set(__self__, "postal_code", postal_code) + if profile_arn is not None: + pulumi.set(__self__, "profile_arn", profile_arn) + if profile_id is not None: + pulumi.set(__self__, "profile_id", profile_id) + if province is not None: + pulumi.set(__self__, "province", province) + if shipping_address1 is not None: + pulumi.set(__self__, "shipping_address1", shipping_address1) + if shipping_address2 is not None: + pulumi.set(__self__, "shipping_address2", shipping_address2) + if shipping_address3 is not None: + pulumi.set(__self__, "shipping_address3", shipping_address3) + if shipping_address4 is not None: + pulumi.set(__self__, "shipping_address4", shipping_address4) + if shipping_city is not None: + pulumi.set(__self__, "shipping_city", shipping_city) + if shipping_country is not None: + pulumi.set(__self__, "shipping_country", shipping_country) + if shipping_county is not None: + pulumi.set(__self__, "shipping_county", shipping_county) + if shipping_postal_code is not None: + pulumi.set(__self__, "shipping_postal_code", shipping_postal_code) + if shipping_province is not None: + pulumi.set(__self__, "shipping_province", shipping_province) + if shipping_state is not None: + pulumi.set(__self__, "shipping_state", shipping_state) + if state is not None: + pulumi.set(__self__, "state", state) + + @property + @pulumi.getter(name="accountNumber") + def account_number(self) -> Optional[pulumi.Input[str]]: + """ + A unique account number that you have given to the customer. + """ + return pulumi.get(self, "account_number") + + @account_number.setter + def account_number(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "account_number", value) + + @property + @pulumi.getter(name="additionalInformation") + def additional_information(self) -> Optional[pulumi.Input[str]]: + """ + Any additional information relevant to the customer's profile. + """ + return pulumi.get(self, "additional_information") + + @additional_information.setter + def additional_information(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "additional_information", value) + + @property + @pulumi.getter + def address1(self) -> Optional[pulumi.Input[str]]: + """ + The first line of a customer address. + """ + return pulumi.get(self, "address1") + + @address1.setter + def address1(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "address1", value) + + @property + @pulumi.getter + def address2(self) -> Optional[pulumi.Input[str]]: + """ + The second line of a customer address. + """ + return pulumi.get(self, "address2") + + @address2.setter + def address2(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "address2", value) + + @property + @pulumi.getter + def address3(self) -> Optional[pulumi.Input[str]]: + """ + The third line of a customer address. + """ + return pulumi.get(self, "address3") + + @address3.setter + def address3(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "address3", value) + + @property + @pulumi.getter + def address4(self) -> Optional[pulumi.Input[str]]: + """ + The fourth line of a customer address. + """ + return pulumi.get(self, "address4") + + @address4.setter + def address4(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "address4", value) + + @property + @pulumi.getter(name="billingAddress1") + def billing_address1(self) -> Optional[pulumi.Input[str]]: + """ + The first line of a customer’s billing address. + """ + return pulumi.get(self, "billing_address1") + + @billing_address1.setter + def billing_address1(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "billing_address1", value) + + @property + @pulumi.getter(name="billingAddress2") + def billing_address2(self) -> Optional[pulumi.Input[str]]: + """ + The second line of a customer’s billing address. + """ + return pulumi.get(self, "billing_address2") + + @billing_address2.setter + def billing_address2(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "billing_address2", value) + + @property + @pulumi.getter(name="billingAddress3") + def billing_address3(self) -> Optional[pulumi.Input[str]]: + """ + The third line of a customer’s billing address. + """ + return pulumi.get(self, "billing_address3") + + @billing_address3.setter + def billing_address3(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "billing_address3", value) + + @property + @pulumi.getter(name="billingAddress4") + def billing_address4(self) -> Optional[pulumi.Input[str]]: + """ + The fourth line of a customer’s billing address. + """ + return pulumi.get(self, "billing_address4") + + @billing_address4.setter + def billing_address4(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "billing_address4", value) + + @property + @pulumi.getter(name="billingCity") + def billing_city(self) -> Optional[pulumi.Input[str]]: + """ + The city of a customer’s billing address. + """ + return pulumi.get(self, "billing_city") + + @billing_city.setter + def billing_city(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "billing_city", value) + + @property + @pulumi.getter(name="billingCountry") + def billing_country(self) -> Optional[pulumi.Input[str]]: + """ + The country of a customer’s billing address. + """ + return pulumi.get(self, "billing_country") + + @billing_country.setter + def billing_country(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "billing_country", value) + + @property + @pulumi.getter(name="billingCounty") + def billing_county(self) -> Optional[pulumi.Input[str]]: + """ + The county of a customer’s billing address. + """ + return pulumi.get(self, "billing_county") + + @billing_county.setter + def billing_county(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "billing_county", value) + + @property + @pulumi.getter(name="billingPostalCode") + def billing_postal_code(self) -> Optional[pulumi.Input[str]]: + """ + The postal code of a customer’s billing address. + """ + return pulumi.get(self, "billing_postal_code") + + @billing_postal_code.setter + def billing_postal_code(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "billing_postal_code", value) + + @property + @pulumi.getter(name="billingProvince") + def billing_province(self) -> Optional[pulumi.Input[str]]: + """ + The province of a customer’s billing address. + """ + return pulumi.get(self, "billing_province") + + @billing_province.setter + def billing_province(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "billing_province", value) + + @property + @pulumi.getter(name="billingState") + def billing_state(self) -> Optional[pulumi.Input[str]]: + """ + The state of a customer’s billing address. + """ + return pulumi.get(self, "billing_state") + + @billing_state.setter + def billing_state(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "billing_state", value) + + @property + @pulumi.getter(name="birthDate") + def birth_date(self) -> Optional[pulumi.Input[str]]: + """ + The customer's birth date. + """ + return pulumi.get(self, "birth_date") + + @birth_date.setter + def birth_date(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "birth_date", value) + + @property + @pulumi.getter(name="businessEmailAddress") + def business_email_address(self) -> Optional[pulumi.Input[str]]: + """ + The customer's business email address. + """ + return pulumi.get(self, "business_email_address") + + @business_email_address.setter + def business_email_address(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "business_email_address", value) + + @property + @pulumi.getter(name="businessName") + def business_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the customer's business. + """ + return pulumi.get(self, "business_name") + + @business_name.setter + def business_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "business_name", value) + + @property + @pulumi.getter(name="businessPhoneNumber") + def business_phone_number(self) -> Optional[pulumi.Input[str]]: + """ + The customer's business phone number. + """ + return pulumi.get(self, "business_phone_number") + + @business_phone_number.setter + def business_phone_number(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "business_phone_number", value) + + @property + @pulumi.getter + def city(self) -> Optional[pulumi.Input[str]]: + """ + The city in which a customer lives. + """ + return pulumi.get(self, "city") + + @city.setter + def city(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "city", value) + + @property + @pulumi.getter + def country(self) -> Optional[pulumi.Input[str]]: + """ + The country in which a customer lives. + """ + return pulumi.get(self, "country") + + @country.setter + def country(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "country", value) + + @property + @pulumi.getter + def county(self) -> Optional[pulumi.Input[str]]: + """ + The county in which a customer lives. + """ + return pulumi.get(self, "county") + + @county.setter + def county(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "county", value) + + @property + @pulumi.getter + def custom(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + return pulumi.get(self, "custom") + + @custom.setter + def custom(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "custom", value) + + @property + @pulumi.getter(name="emailAddress") + def email_address(self) -> Optional[pulumi.Input[str]]: + """ + The customer's email address, which has not been specified as a personal or business address. + """ + return pulumi.get(self, "email_address") + + @email_address.setter + def email_address(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "email_address", value) + + @property + @pulumi.getter(name="firstName") + def first_name(self) -> Optional[pulumi.Input[str]]: + """ + The customer's first name. + """ + return pulumi.get(self, "first_name") + + @first_name.setter + def first_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "first_name", value) + + @property + @pulumi.getter + def gender(self) -> Optional[pulumi.Input[str]]: + """ + The customer's gender. + """ + return pulumi.get(self, "gender") + + @gender.setter + def gender(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "gender", value) + + @property + @pulumi.getter(name="homePhoneNumber") + def home_phone_number(self) -> Optional[pulumi.Input[str]]: + """ + The customer's home phone number. + """ + return pulumi.get(self, "home_phone_number") + + @home_phone_number.setter + def home_phone_number(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "home_phone_number", value) + + @property + @pulumi.getter(name="lastName") + def last_name(self) -> Optional[pulumi.Input[str]]: + """ + The customer's last name. + """ + return pulumi.get(self, "last_name") + + @last_name.setter + def last_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "last_name", value) + + @property + @pulumi.getter(name="mailingAddress1") + def mailing_address1(self) -> Optional[pulumi.Input[str]]: + """ + The first line of a customer’s mailing address. + """ + return pulumi.get(self, "mailing_address1") + + @mailing_address1.setter + def mailing_address1(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mailing_address1", value) + + @property + @pulumi.getter(name="mailingAddress2") + def mailing_address2(self) -> Optional[pulumi.Input[str]]: + """ + The second line of a customer’s mailing address. + """ + return pulumi.get(self, "mailing_address2") + + @mailing_address2.setter + def mailing_address2(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mailing_address2", value) + + @property + @pulumi.getter(name="mailingAddress3") + def mailing_address3(self) -> Optional[pulumi.Input[str]]: + """ + The third line of a customer’s mailing address. + """ + return pulumi.get(self, "mailing_address3") + + @mailing_address3.setter + def mailing_address3(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mailing_address3", value) + + @property + @pulumi.getter(name="mailingAddress4") + def mailing_address4(self) -> Optional[pulumi.Input[str]]: + """ + The fourth line of a customer’s mailing address. + """ + return pulumi.get(self, "mailing_address4") + + @mailing_address4.setter + def mailing_address4(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mailing_address4", value) + + @property + @pulumi.getter(name="mailingCity") + def mailing_city(self) -> Optional[pulumi.Input[str]]: + """ + The city of a customer’s mailing address. + """ + return pulumi.get(self, "mailing_city") + + @mailing_city.setter + def mailing_city(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mailing_city", value) + + @property + @pulumi.getter(name="mailingCountry") + def mailing_country(self) -> Optional[pulumi.Input[str]]: + """ + The country of a customer’s mailing address. + """ + return pulumi.get(self, "mailing_country") + + @mailing_country.setter + def mailing_country(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mailing_country", value) + + @property + @pulumi.getter(name="mailingCounty") + def mailing_county(self) -> Optional[pulumi.Input[str]]: + """ + The county of a customer’s mailing address. + """ + return pulumi.get(self, "mailing_county") + + @mailing_county.setter + def mailing_county(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mailing_county", value) + + @property + @pulumi.getter(name="mailingPostalCode") + def mailing_postal_code(self) -> Optional[pulumi.Input[str]]: + """ + The postal code of a customer’s mailing address + """ + return pulumi.get(self, "mailing_postal_code") + + @mailing_postal_code.setter + def mailing_postal_code(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mailing_postal_code", value) + + @property + @pulumi.getter(name="mailingProvince") + def mailing_province(self) -> Optional[pulumi.Input[str]]: + """ + The province of a customer’s mailing address. + """ + return pulumi.get(self, "mailing_province") + + @mailing_province.setter + def mailing_province(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mailing_province", value) + + @property + @pulumi.getter(name="mailingState") + def mailing_state(self) -> Optional[pulumi.Input[str]]: + """ + The state of a customer’s mailing address. + """ + return pulumi.get(self, "mailing_state") + + @mailing_state.setter + def mailing_state(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mailing_state", value) + + @property + @pulumi.getter(name="middleName") + def middle_name(self) -> Optional[pulumi.Input[str]]: + """ + The customer's middle name. + """ + return pulumi.get(self, "middle_name") + + @middle_name.setter + def middle_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "middle_name", value) + + @property + @pulumi.getter(name="mobilePhoneNumber") + def mobile_phone_number(self) -> Optional[pulumi.Input[str]]: + """ + The customer's mobile phone number. + """ + return pulumi.get(self, "mobile_phone_number") + + @mobile_phone_number.setter + def mobile_phone_number(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mobile_phone_number", value) + + @property + @pulumi.getter(name="partyType") + def party_type(self) -> Optional[pulumi.Input[str]]: + """ + The customer's party type. + """ + return pulumi.get(self, "party_type") + + @party_type.setter + def party_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "party_type", value) + + @property + @pulumi.getter(name="phoneNumber") + def phone_number(self) -> Optional[pulumi.Input[str]]: + """ + The customer's phone number, which has not been specified as a mobile, home, or business number. + """ + return pulumi.get(self, "phone_number") + + @phone_number.setter + def phone_number(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "phone_number", value) + + @property + @pulumi.getter(name="postalCode") + def postal_code(self) -> Optional[pulumi.Input[str]]: + """ + The postal code of a customer address. + """ + return pulumi.get(self, "postal_code") + + @postal_code.setter + def postal_code(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "postal_code", value) + + @property + @pulumi.getter(name="profileArn") + def profile_arn(self) -> Optional[pulumi.Input[str]]: + """ + The ARN of a customer profile. + """ + return pulumi.get(self, "profile_arn") + + @profile_arn.setter + def profile_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "profile_arn", value) + + @property + @pulumi.getter(name="profileId") + def profile_id(self) -> Optional[pulumi.Input[str]]: + """ + The unique identifier of a customer profile. + """ + return pulumi.get(self, "profile_id") + + @profile_id.setter + def profile_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "profile_id", value) + + @property + @pulumi.getter + def province(self) -> Optional[pulumi.Input[str]]: + """ + The province in which a customer lives. + """ + return pulumi.get(self, "province") + + @province.setter + def province(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "province", value) + + @property + @pulumi.getter(name="shippingAddress1") + def shipping_address1(self) -> Optional[pulumi.Input[str]]: + """ + The first line of a customer’s shipping address. + """ + return pulumi.get(self, "shipping_address1") + + @shipping_address1.setter + def shipping_address1(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "shipping_address1", value) + + @property + @pulumi.getter(name="shippingAddress2") + def shipping_address2(self) -> Optional[pulumi.Input[str]]: + """ + The second line of a customer’s shipping address. + """ + return pulumi.get(self, "shipping_address2") + + @shipping_address2.setter + def shipping_address2(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "shipping_address2", value) + + @property + @pulumi.getter(name="shippingAddress3") + def shipping_address3(self) -> Optional[pulumi.Input[str]]: + """ + The third line of a customer’s shipping address. + """ + return pulumi.get(self, "shipping_address3") + + @shipping_address3.setter + def shipping_address3(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "shipping_address3", value) + + @property + @pulumi.getter(name="shippingAddress4") + def shipping_address4(self) -> Optional[pulumi.Input[str]]: + """ + The fourth line of a customer’s shipping address + """ + return pulumi.get(self, "shipping_address4") + + @shipping_address4.setter + def shipping_address4(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "shipping_address4", value) + + @property + @pulumi.getter(name="shippingCity") + def shipping_city(self) -> Optional[pulumi.Input[str]]: + """ + The city of a customer’s shipping address. + """ + return pulumi.get(self, "shipping_city") + + @shipping_city.setter + def shipping_city(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "shipping_city", value) + + @property + @pulumi.getter(name="shippingCountry") + def shipping_country(self) -> Optional[pulumi.Input[str]]: + """ + The country of a customer’s shipping address. + """ + return pulumi.get(self, "shipping_country") + + @shipping_country.setter + def shipping_country(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "shipping_country", value) + + @property + @pulumi.getter(name="shippingCounty") + def shipping_county(self) -> Optional[pulumi.Input[str]]: + """ + The county of a customer’s shipping address. + """ + return pulumi.get(self, "shipping_county") + + @shipping_county.setter + def shipping_county(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "shipping_county", value) + + @property + @pulumi.getter(name="shippingPostalCode") + def shipping_postal_code(self) -> Optional[pulumi.Input[str]]: + """ + The postal code of a customer’s shipping address. + """ + return pulumi.get(self, "shipping_postal_code") + + @shipping_postal_code.setter + def shipping_postal_code(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "shipping_postal_code", value) + + @property + @pulumi.getter(name="shippingProvince") + def shipping_province(self) -> Optional[pulumi.Input[str]]: + """ + The province of a customer’s shipping address. + """ + return pulumi.get(self, "shipping_province") + + @shipping_province.setter + def shipping_province(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "shipping_province", value) + + @property + @pulumi.getter(name="shippingState") + def shipping_state(self) -> Optional[pulumi.Input[str]]: + """ + The state of a customer’s shipping address. + """ + return pulumi.get(self, "shipping_state") + + @shipping_state.setter + def shipping_state(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "shipping_state", value) + + @property + @pulumi.getter + def state(self) -> Optional[pulumi.Input[str]]: + """ + The state in which a customer lives. + """ + return pulumi.get(self, "state") + + @state.setter + def state(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "state", value) + + +if not MYPY: + class MessageTemplateEmailMessageTemplateContentBodyArgsDict(TypedDict): + """ + The body to use in email messages. + """ + html: NotRequired[pulumi.Input['MessageTemplateBodyContentProviderArgsDict']] + """ + The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + """ + plain_text: NotRequired[pulumi.Input['MessageTemplateBodyContentProviderArgsDict']] + """ + The message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + """ +elif False: + MessageTemplateEmailMessageTemplateContentBodyArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MessageTemplateEmailMessageTemplateContentBodyArgs: + def __init__(__self__, *, + html: Optional[pulumi.Input['MessageTemplateBodyContentProviderArgs']] = None, + plain_text: Optional[pulumi.Input['MessageTemplateBodyContentProviderArgs']] = None): + """ + The body to use in email messages. + :param pulumi.Input['MessageTemplateBodyContentProviderArgs'] html: The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + :param pulumi.Input['MessageTemplateBodyContentProviderArgs'] plain_text: The message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + """ + if html is not None: + pulumi.set(__self__, "html", html) + if plain_text is not None: + pulumi.set(__self__, "plain_text", plain_text) + + @property + @pulumi.getter + def html(self) -> Optional[pulumi.Input['MessageTemplateBodyContentProviderArgs']]: + """ + The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + """ + return pulumi.get(self, "html") + + @html.setter + def html(self, value: Optional[pulumi.Input['MessageTemplateBodyContentProviderArgs']]): + pulumi.set(self, "html", value) + + @property + @pulumi.getter(name="plainText") + def plain_text(self) -> Optional[pulumi.Input['MessageTemplateBodyContentProviderArgs']]: + """ + The message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + """ + return pulumi.get(self, "plain_text") + + @plain_text.setter + def plain_text(self, value: Optional[pulumi.Input['MessageTemplateBodyContentProviderArgs']]): + pulumi.set(self, "plain_text", value) + + +if not MYPY: + class MessageTemplateEmailMessageTemplateContentArgsDict(TypedDict): + """ + The content of message template that applies to email channel subtype. + """ + body: pulumi.Input['MessageTemplateEmailMessageTemplateContentBodyArgsDict'] + headers: pulumi.Input[Sequence[pulumi.Input['MessageTemplateEmailMessageTemplateHeaderArgsDict']]] + """ + The email headers to include in email messages. + """ + subject: pulumi.Input[str] + """ + The subject line, or title, to use in email messages. + """ +elif False: + MessageTemplateEmailMessageTemplateContentArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MessageTemplateEmailMessageTemplateContentArgs: + def __init__(__self__, *, + body: pulumi.Input['MessageTemplateEmailMessageTemplateContentBodyArgs'], + headers: pulumi.Input[Sequence[pulumi.Input['MessageTemplateEmailMessageTemplateHeaderArgs']]], + subject: pulumi.Input[str]): + """ + The content of message template that applies to email channel subtype. + :param pulumi.Input[Sequence[pulumi.Input['MessageTemplateEmailMessageTemplateHeaderArgs']]] headers: The email headers to include in email messages. + :param pulumi.Input[str] subject: The subject line, or title, to use in email messages. + """ + pulumi.set(__self__, "body", body) + pulumi.set(__self__, "headers", headers) + pulumi.set(__self__, "subject", subject) + + @property + @pulumi.getter + def body(self) -> pulumi.Input['MessageTemplateEmailMessageTemplateContentBodyArgs']: + return pulumi.get(self, "body") + + @body.setter + def body(self, value: pulumi.Input['MessageTemplateEmailMessageTemplateContentBodyArgs']): + pulumi.set(self, "body", value) + + @property + @pulumi.getter + def headers(self) -> pulumi.Input[Sequence[pulumi.Input['MessageTemplateEmailMessageTemplateHeaderArgs']]]: + """ + The email headers to include in email messages. + """ + return pulumi.get(self, "headers") + + @headers.setter + def headers(self, value: pulumi.Input[Sequence[pulumi.Input['MessageTemplateEmailMessageTemplateHeaderArgs']]]): + pulumi.set(self, "headers", value) + + @property + @pulumi.getter + def subject(self) -> pulumi.Input[str]: + """ + The subject line, or title, to use in email messages. + """ + return pulumi.get(self, "subject") + + @subject.setter + def subject(self, value: pulumi.Input[str]): + pulumi.set(self, "subject", value) + + +if not MYPY: + class MessageTemplateEmailMessageTemplateHeaderArgsDict(TypedDict): + """ + The email header to include in email messages. + """ + name: NotRequired[pulumi.Input[str]] + """ + The name of the email header. + """ + value: NotRequired[pulumi.Input[str]] + """ + The value of the email header. + """ +elif False: + MessageTemplateEmailMessageTemplateHeaderArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MessageTemplateEmailMessageTemplateHeaderArgs: + def __init__(__self__, *, + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None): + """ + The email header to include in email messages. + :param pulumi.Input[str] name: The name of the email header. + :param pulumi.Input[str] value: The value of the email header. + """ + if name is not None: + pulumi.set(__self__, "name", name) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the email header. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def value(self) -> Optional[pulumi.Input[str]]: + """ + The value of the email header. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "value", value) + + +if not MYPY: + class MessageTemplateGroupingConfigurationArgsDict(TypedDict): + """ + The configuration information of the user groups that the message template is accessible to. + """ + criteria: pulumi.Input[str] + """ + The criteria used for grouping Amazon Q in Connect users. + """ + values: pulumi.Input[Sequence[pulumi.Input[str]]] + """ + The list of values that define different groups of Amazon Q in Connect users. + """ +elif False: + MessageTemplateGroupingConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MessageTemplateGroupingConfigurationArgs: + def __init__(__self__, *, + criteria: pulumi.Input[str], + values: pulumi.Input[Sequence[pulumi.Input[str]]]): + """ + The configuration information of the user groups that the message template is accessible to. + :param pulumi.Input[str] criteria: The criteria used for grouping Amazon Q in Connect users. + :param pulumi.Input[Sequence[pulumi.Input[str]]] values: The list of values that define different groups of Amazon Q in Connect users. + """ + pulumi.set(__self__, "criteria", criteria) + pulumi.set(__self__, "values", values) + + @property + @pulumi.getter + def criteria(self) -> pulumi.Input[str]: + """ + The criteria used for grouping Amazon Q in Connect users. + """ + return pulumi.get(self, "criteria") + + @criteria.setter + def criteria(self, value: pulumi.Input[str]): + pulumi.set(self, "criteria", value) + + @property + @pulumi.getter + def values(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + """ + The list of values that define different groups of Amazon Q in Connect users. + """ + return pulumi.get(self, "values") + + @values.setter + def values(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(self, "values", value) + + +if not MYPY: + class MessageTemplateSmsMessageTemplateContentBodyArgsDict(TypedDict): + """ + The body to use in SMS messages. + """ + plain_text: NotRequired[pulumi.Input['MessageTemplateBodyContentProviderArgsDict']] +elif False: + MessageTemplateSmsMessageTemplateContentBodyArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MessageTemplateSmsMessageTemplateContentBodyArgs: + def __init__(__self__, *, + plain_text: Optional[pulumi.Input['MessageTemplateBodyContentProviderArgs']] = None): + """ + The body to use in SMS messages. + """ + if plain_text is not None: + pulumi.set(__self__, "plain_text", plain_text) + + @property + @pulumi.getter(name="plainText") + def plain_text(self) -> Optional[pulumi.Input['MessageTemplateBodyContentProviderArgs']]: + return pulumi.get(self, "plain_text") + + @plain_text.setter + def plain_text(self, value: Optional[pulumi.Input['MessageTemplateBodyContentProviderArgs']]): + pulumi.set(self, "plain_text", value) + + +if not MYPY: + class MessageTemplateSmsMessageTemplateContentArgsDict(TypedDict): + """ + The content of message template that applies to SMS channel subtype. + """ + body: pulumi.Input['MessageTemplateSmsMessageTemplateContentBodyArgsDict'] +elif False: + MessageTemplateSmsMessageTemplateContentArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MessageTemplateSmsMessageTemplateContentArgs: + def __init__(__self__, *, + body: pulumi.Input['MessageTemplateSmsMessageTemplateContentBodyArgs']): + """ + The content of message template that applies to SMS channel subtype. + """ + pulumi.set(__self__, "body", body) + + @property + @pulumi.getter + def body(self) -> pulumi.Input['MessageTemplateSmsMessageTemplateContentBodyArgs']: + return pulumi.get(self, "body") + + @body.setter + def body(self, value: pulumi.Input['MessageTemplateSmsMessageTemplateContentBodyArgs']): + pulumi.set(self, "body", value) + + +if not MYPY: + class MessageTemplateSystemAttributesArgsDict(TypedDict): + """ + The system attributes that are used with the message template. + """ + customer_endpoint: NotRequired[pulumi.Input['MessageTemplateSystemEndpointAttributesArgsDict']] + """ + The CustomerEndpoint attribute. + """ + name: NotRequired[pulumi.Input[str]] + """ + The name of the task. + """ + system_endpoint: NotRequired[pulumi.Input['MessageTemplateSystemEndpointAttributesArgsDict']] + """ + The SystemEndpoint attribute. + """ +elif False: + MessageTemplateSystemAttributesArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MessageTemplateSystemAttributesArgs: + def __init__(__self__, *, + customer_endpoint: Optional[pulumi.Input['MessageTemplateSystemEndpointAttributesArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + system_endpoint: Optional[pulumi.Input['MessageTemplateSystemEndpointAttributesArgs']] = None): + """ + The system attributes that are used with the message template. + :param pulumi.Input['MessageTemplateSystemEndpointAttributesArgs'] customer_endpoint: The CustomerEndpoint attribute. + :param pulumi.Input[str] name: The name of the task. + :param pulumi.Input['MessageTemplateSystemEndpointAttributesArgs'] system_endpoint: The SystemEndpoint attribute. + """ + if customer_endpoint is not None: + pulumi.set(__self__, "customer_endpoint", customer_endpoint) + if name is not None: + pulumi.set(__self__, "name", name) + if system_endpoint is not None: + pulumi.set(__self__, "system_endpoint", system_endpoint) + + @property + @pulumi.getter(name="customerEndpoint") + def customer_endpoint(self) -> Optional[pulumi.Input['MessageTemplateSystemEndpointAttributesArgs']]: + """ + The CustomerEndpoint attribute. + """ + return pulumi.get(self, "customer_endpoint") + + @customer_endpoint.setter + def customer_endpoint(self, value: Optional[pulumi.Input['MessageTemplateSystemEndpointAttributesArgs']]): + pulumi.set(self, "customer_endpoint", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the task. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="systemEndpoint") + def system_endpoint(self) -> Optional[pulumi.Input['MessageTemplateSystemEndpointAttributesArgs']]: + """ + The SystemEndpoint attribute. + """ + return pulumi.get(self, "system_endpoint") + + @system_endpoint.setter + def system_endpoint(self, value: Optional[pulumi.Input['MessageTemplateSystemEndpointAttributesArgs']]): + pulumi.set(self, "system_endpoint", value) + + +if not MYPY: + class MessageTemplateSystemEndpointAttributesArgsDict(TypedDict): + """ + The system endpoint attributes that are used with the message template. + """ + address: NotRequired[pulumi.Input[str]] + """ + The customer's phone number if used with customerEndpoint, or the number the customer dialed to call your contact center if used with systemEndpoint. + """ +elif False: + MessageTemplateSystemEndpointAttributesArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MessageTemplateSystemEndpointAttributesArgs: + def __init__(__self__, *, + address: Optional[pulumi.Input[str]] = None): + """ + The system endpoint attributes that are used with the message template. + :param pulumi.Input[str] address: The customer's phone number if used with customerEndpoint, or the number the customer dialed to call your contact center if used with systemEndpoint. + """ + if address is not None: + pulumi.set(__self__, "address", address) + + @property + @pulumi.getter + def address(self) -> Optional[pulumi.Input[str]]: + """ + The customer's phone number if used with customerEndpoint, or the number the customer dialed to call your contact center if used with systemEndpoint. + """ + return pulumi.get(self, "address") + + @address.setter + def address(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "address", value) + + diff --git a/sdk/python/pulumi_aws_native/wisdom/get_message_template.py b/sdk/python/pulumi_aws_native/wisdom/get_message_template.py new file mode 100644 index 0000000000..af91b9878d --- /dev/null +++ b/sdk/python/pulumi_aws_native/wisdom/get_message_template.py @@ -0,0 +1,196 @@ +# 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 + +__all__ = [ + 'GetMessageTemplateResult', + 'AwaitableGetMessageTemplateResult', + 'get_message_template', + 'get_message_template_output', +] + +@pulumi.output_type +class GetMessageTemplateResult: + def __init__(__self__, content=None, default_attributes=None, description=None, grouping_configuration=None, language=None, message_template_arn=None, message_template_content_sha256=None, message_template_id=None, name=None, tags=None): + if content and not isinstance(content, dict): + raise TypeError("Expected argument 'content' to be a dict") + pulumi.set(__self__, "content", content) + if default_attributes and not isinstance(default_attributes, dict): + raise TypeError("Expected argument 'default_attributes' to be a dict") + pulumi.set(__self__, "default_attributes", default_attributes) + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if grouping_configuration and not isinstance(grouping_configuration, dict): + raise TypeError("Expected argument 'grouping_configuration' to be a dict") + pulumi.set(__self__, "grouping_configuration", grouping_configuration) + if language and not isinstance(language, str): + raise TypeError("Expected argument 'language' to be a str") + pulumi.set(__self__, "language", language) + if message_template_arn and not isinstance(message_template_arn, str): + raise TypeError("Expected argument 'message_template_arn' to be a str") + pulumi.set(__self__, "message_template_arn", message_template_arn) + if message_template_content_sha256 and not isinstance(message_template_content_sha256, str): + raise TypeError("Expected argument 'message_template_content_sha256' to be a str") + pulumi.set(__self__, "message_template_content_sha256", message_template_content_sha256) + if message_template_id and not isinstance(message_template_id, str): + raise TypeError("Expected argument 'message_template_id' to be a str") + pulumi.set(__self__, "message_template_id", message_template_id) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if tags and not isinstance(tags, list): + raise TypeError("Expected argument 'tags' to be a list") + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter + def content(self) -> Optional['outputs.MessageTemplateContent']: + return pulumi.get(self, "content") + + @property + @pulumi.getter(name="defaultAttributes") + def default_attributes(self) -> Optional['outputs.MessageTemplateAttributes']: + return pulumi.get(self, "default_attributes") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + """ + The description of the message template. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="groupingConfiguration") + def grouping_configuration(self) -> Optional['outputs.MessageTemplateGroupingConfiguration']: + return pulumi.get(self, "grouping_configuration") + + @property + @pulumi.getter + def language(self) -> Optional[str]: + """ + The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW + """ + return pulumi.get(self, "language") + + @property + @pulumi.getter(name="messageTemplateArn") + def message_template_arn(self) -> Optional[str]: + """ + The Amazon Resource Name (ARN) of the message template. + """ + return pulumi.get(self, "message_template_arn") + + @property + @pulumi.getter(name="messageTemplateContentSha256") + def message_template_content_sha256(self) -> Optional[str]: + """ + The content SHA256 of the message template. + """ + return pulumi.get(self, "message_template_content_sha256") + + @property + @pulumi.getter(name="messageTemplateId") + def message_template_id(self) -> Optional[str]: + """ + The unique identifier of the message template. + """ + return pulumi.get(self, "message_template_id") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + The name of the message template. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: + """ + The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }. + """ + return pulumi.get(self, "tags") + + +class AwaitableGetMessageTemplateResult(GetMessageTemplateResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetMessageTemplateResult( + content=self.content, + default_attributes=self.default_attributes, + description=self.description, + grouping_configuration=self.grouping_configuration, + language=self.language, + message_template_arn=self.message_template_arn, + message_template_content_sha256=self.message_template_content_sha256, + message_template_id=self.message_template_id, + name=self.name, + tags=self.tags) + + +def get_message_template(message_template_arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetMessageTemplateResult: + """ + Definition of AWS::Wisdom::MessageTemplate Resource Type + + + :param str message_template_arn: The Amazon Resource Name (ARN) of the message template. + """ + __args__ = dict() + __args__['messageTemplateArn'] = message_template_arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:wisdom:getMessageTemplate', __args__, opts=opts, typ=GetMessageTemplateResult).value + + return AwaitableGetMessageTemplateResult( + content=pulumi.get(__ret__, 'content'), + default_attributes=pulumi.get(__ret__, 'default_attributes'), + description=pulumi.get(__ret__, 'description'), + grouping_configuration=pulumi.get(__ret__, 'grouping_configuration'), + language=pulumi.get(__ret__, 'language'), + message_template_arn=pulumi.get(__ret__, 'message_template_arn'), + message_template_content_sha256=pulumi.get(__ret__, 'message_template_content_sha256'), + message_template_id=pulumi.get(__ret__, 'message_template_id'), + name=pulumi.get(__ret__, 'name'), + tags=pulumi.get(__ret__, 'tags')) +def get_message_template_output(message_template_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetMessageTemplateResult]: + """ + Definition of AWS::Wisdom::MessageTemplate Resource Type + + + :param str message_template_arn: The Amazon Resource Name (ARN) of the message template. + """ + __args__ = dict() + __args__['messageTemplateArn'] = message_template_arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('aws-native:wisdom:getMessageTemplate', __args__, opts=opts, typ=GetMessageTemplateResult) + return __ret__.apply(lambda __response__: GetMessageTemplateResult( + content=pulumi.get(__response__, 'content'), + default_attributes=pulumi.get(__response__, 'default_attributes'), + description=pulumi.get(__response__, 'description'), + grouping_configuration=pulumi.get(__response__, 'grouping_configuration'), + language=pulumi.get(__response__, 'language'), + message_template_arn=pulumi.get(__response__, 'message_template_arn'), + message_template_content_sha256=pulumi.get(__response__, 'message_template_content_sha256'), + message_template_id=pulumi.get(__response__, 'message_template_id'), + name=pulumi.get(__response__, 'name'), + tags=pulumi.get(__response__, 'tags'))) diff --git a/sdk/python/pulumi_aws_native/wisdom/get_message_template_version.py b/sdk/python/pulumi_aws_native/wisdom/get_message_template_version.py new file mode 100644 index 0000000000..b269f6dca7 --- /dev/null +++ b/sdk/python/pulumi_aws_native/wisdom/get_message_template_version.py @@ -0,0 +1,105 @@ +# 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__ = [ + 'GetMessageTemplateVersionResult', + 'AwaitableGetMessageTemplateVersionResult', + 'get_message_template_version', + 'get_message_template_version_output', +] + +@pulumi.output_type +class GetMessageTemplateVersionResult: + def __init__(__self__, message_template_content_sha256=None, message_template_version_arn=None, message_template_version_number=None): + if message_template_content_sha256 and not isinstance(message_template_content_sha256, str): + raise TypeError("Expected argument 'message_template_content_sha256' to be a str") + pulumi.set(__self__, "message_template_content_sha256", message_template_content_sha256) + if message_template_version_arn and not isinstance(message_template_version_arn, str): + raise TypeError("Expected argument 'message_template_version_arn' to be a str") + pulumi.set(__self__, "message_template_version_arn", message_template_version_arn) + if message_template_version_number and not isinstance(message_template_version_number, float): + raise TypeError("Expected argument 'message_template_version_number' to be a float") + pulumi.set(__self__, "message_template_version_number", message_template_version_number) + + @property + @pulumi.getter(name="messageTemplateContentSha256") + def message_template_content_sha256(self) -> Optional[str]: + """ + The content SHA256 of the message template. + """ + return pulumi.get(self, "message_template_content_sha256") + + @property + @pulumi.getter(name="messageTemplateVersionArn") + def message_template_version_arn(self) -> Optional[str]: + """ + The unqualified Amazon Resource Name (ARN) of the message template version. + """ + return pulumi.get(self, "message_template_version_arn") + + @property + @pulumi.getter(name="messageTemplateVersionNumber") + def message_template_version_number(self) -> Optional[float]: + """ + Current version number of the message template. + """ + return pulumi.get(self, "message_template_version_number") + + +class AwaitableGetMessageTemplateVersionResult(GetMessageTemplateVersionResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetMessageTemplateVersionResult( + message_template_content_sha256=self.message_template_content_sha256, + message_template_version_arn=self.message_template_version_arn, + message_template_version_number=self.message_template_version_number) + + +def get_message_template_version(message_template_version_arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetMessageTemplateVersionResult: + """ + A version for the specified customer-managed message template within the specified knowledge base. + + + :param str message_template_version_arn: The unqualified Amazon Resource Name (ARN) of the message template version. + """ + __args__ = dict() + __args__['messageTemplateVersionArn'] = message_template_version_arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:wisdom:getMessageTemplateVersion', __args__, opts=opts, typ=GetMessageTemplateVersionResult).value + + return AwaitableGetMessageTemplateVersionResult( + message_template_content_sha256=pulumi.get(__ret__, 'message_template_content_sha256'), + message_template_version_arn=pulumi.get(__ret__, 'message_template_version_arn'), + message_template_version_number=pulumi.get(__ret__, 'message_template_version_number')) +def get_message_template_version_output(message_template_version_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetMessageTemplateVersionResult]: + """ + A version for the specified customer-managed message template within the specified knowledge base. + + + :param str message_template_version_arn: The unqualified Amazon Resource Name (ARN) of the message template version. + """ + __args__ = dict() + __args__['messageTemplateVersionArn'] = message_template_version_arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('aws-native:wisdom:getMessageTemplateVersion', __args__, opts=opts, typ=GetMessageTemplateVersionResult) + return __ret__.apply(lambda __response__: GetMessageTemplateVersionResult( + message_template_content_sha256=pulumi.get(__response__, 'message_template_content_sha256'), + message_template_version_arn=pulumi.get(__response__, 'message_template_version_arn'), + message_template_version_number=pulumi.get(__response__, 'message_template_version_number'))) diff --git a/sdk/python/pulumi_aws_native/wisdom/message_template.py b/sdk/python/pulumi_aws_native/wisdom/message_template.py new file mode 100644 index 0000000000..b748d78017 --- /dev/null +++ b/sdk/python/pulumi_aws_native/wisdom/message_template.py @@ -0,0 +1,364 @@ +# 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__ = ['MessageTemplateArgs', 'MessageTemplate'] + +@pulumi.input_type +class MessageTemplateArgs: + def __init__(__self__, *, + channel_subtype: pulumi.Input['MessageTemplateChannelSubtype'], + content: pulumi.Input['MessageTemplateContentArgs'], + knowledge_base_arn: pulumi.Input[str], + default_attributes: Optional[pulumi.Input['MessageTemplateAttributesArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + grouping_configuration: Optional[pulumi.Input['MessageTemplateGroupingConfigurationArgs']] = None, + language: Optional[pulumi.Input[str]] = 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 MessageTemplate resource. + :param pulumi.Input[str] knowledge_base_arn: The Amazon Resource Name (ARN) of the knowledge base to which the message template belongs. + :param pulumi.Input[str] description: The description of the message template. + :param pulumi.Input[str] language: The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW + :param pulumi.Input[str] name: The name of the message template. + :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }. + """ + pulumi.set(__self__, "channel_subtype", channel_subtype) + pulumi.set(__self__, "content", content) + pulumi.set(__self__, "knowledge_base_arn", knowledge_base_arn) + if default_attributes is not None: + pulumi.set(__self__, "default_attributes", default_attributes) + if description is not None: + pulumi.set(__self__, "description", description) + if grouping_configuration is not None: + pulumi.set(__self__, "grouping_configuration", grouping_configuration) + if language is not None: + pulumi.set(__self__, "language", language) + if name is not None: + pulumi.set(__self__, "name", name) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="channelSubtype") + def channel_subtype(self) -> pulumi.Input['MessageTemplateChannelSubtype']: + return pulumi.get(self, "channel_subtype") + + @channel_subtype.setter + def channel_subtype(self, value: pulumi.Input['MessageTemplateChannelSubtype']): + pulumi.set(self, "channel_subtype", value) + + @property + @pulumi.getter + def content(self) -> pulumi.Input['MessageTemplateContentArgs']: + return pulumi.get(self, "content") + + @content.setter + def content(self, value: pulumi.Input['MessageTemplateContentArgs']): + pulumi.set(self, "content", value) + + @property + @pulumi.getter(name="knowledgeBaseArn") + def knowledge_base_arn(self) -> pulumi.Input[str]: + """ + The Amazon Resource Name (ARN) of the knowledge base to which the message template belongs. + """ + return pulumi.get(self, "knowledge_base_arn") + + @knowledge_base_arn.setter + def knowledge_base_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "knowledge_base_arn", value) + + @property + @pulumi.getter(name="defaultAttributes") + def default_attributes(self) -> Optional[pulumi.Input['MessageTemplateAttributesArgs']]: + return pulumi.get(self, "default_attributes") + + @default_attributes.setter + def default_attributes(self, value: Optional[pulumi.Input['MessageTemplateAttributesArgs']]): + pulumi.set(self, "default_attributes", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + The description of the message template. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="groupingConfiguration") + def grouping_configuration(self) -> Optional[pulumi.Input['MessageTemplateGroupingConfigurationArgs']]: + return pulumi.get(self, "grouping_configuration") + + @grouping_configuration.setter + def grouping_configuration(self, value: Optional[pulumi.Input['MessageTemplateGroupingConfigurationArgs']]): + pulumi.set(self, "grouping_configuration", value) + + @property + @pulumi.getter + def language(self) -> Optional[pulumi.Input[str]]: + """ + The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW + """ + return pulumi.get(self, "language") + + @language.setter + def language(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "language", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the message template. + """ + 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']]]]: + """ + The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }. + """ + 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 MessageTemplate(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + channel_subtype: Optional[pulumi.Input['MessageTemplateChannelSubtype']] = None, + content: Optional[pulumi.Input[Union['MessageTemplateContentArgs', 'MessageTemplateContentArgsDict']]] = None, + default_attributes: Optional[pulumi.Input[Union['MessageTemplateAttributesArgs', 'MessageTemplateAttributesArgsDict']]] = None, + description: Optional[pulumi.Input[str]] = None, + grouping_configuration: Optional[pulumi.Input[Union['MessageTemplateGroupingConfigurationArgs', 'MessageTemplateGroupingConfigurationArgsDict']]] = None, + knowledge_base_arn: Optional[pulumi.Input[str]] = None, + language: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]]] = None, + __props__=None): + """ + Definition of AWS::Wisdom::MessageTemplate Resource Type + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] description: The description of the message template. + :param pulumi.Input[str] knowledge_base_arn: The Amazon Resource Name (ARN) of the knowledge base to which the message template belongs. + :param pulumi.Input[str] language: The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW + :param pulumi.Input[str] name: The name of the message template. + :param pulumi.Input[Sequence[pulumi.Input[Union['_root_inputs.TagArgs', '_root_inputs.TagArgsDict']]]] tags: The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: MessageTemplateArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Definition of AWS::Wisdom::MessageTemplate Resource Type + + :param str resource_name: The name of the resource. + :param MessageTemplateArgs 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(MessageTemplateArgs, 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, + channel_subtype: Optional[pulumi.Input['MessageTemplateChannelSubtype']] = None, + content: Optional[pulumi.Input[Union['MessageTemplateContentArgs', 'MessageTemplateContentArgsDict']]] = None, + default_attributes: Optional[pulumi.Input[Union['MessageTemplateAttributesArgs', 'MessageTemplateAttributesArgsDict']]] = None, + description: Optional[pulumi.Input[str]] = None, + grouping_configuration: Optional[pulumi.Input[Union['MessageTemplateGroupingConfigurationArgs', 'MessageTemplateGroupingConfigurationArgsDict']]] = None, + knowledge_base_arn: Optional[pulumi.Input[str]] = None, + language: Optional[pulumi.Input[str]] = 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__ = MessageTemplateArgs.__new__(MessageTemplateArgs) + + if channel_subtype is None and not opts.urn: + raise TypeError("Missing required property 'channel_subtype'") + __props__.__dict__["channel_subtype"] = channel_subtype + if content is None and not opts.urn: + raise TypeError("Missing required property 'content'") + __props__.__dict__["content"] = content + __props__.__dict__["default_attributes"] = default_attributes + __props__.__dict__["description"] = description + __props__.__dict__["grouping_configuration"] = grouping_configuration + if knowledge_base_arn is None and not opts.urn: + raise TypeError("Missing required property 'knowledge_base_arn'") + __props__.__dict__["knowledge_base_arn"] = knowledge_base_arn + __props__.__dict__["language"] = language + __props__.__dict__["name"] = name + __props__.__dict__["tags"] = tags + __props__.__dict__["message_template_arn"] = None + __props__.__dict__["message_template_content_sha256"] = None + __props__.__dict__["message_template_id"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["channelSubtype", "knowledgeBaseArn"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(MessageTemplate, __self__).__init__( + 'aws-native:wisdom:MessageTemplate', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'MessageTemplate': + """ + Get an existing MessageTemplate 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__ = MessageTemplateArgs.__new__(MessageTemplateArgs) + + __props__.__dict__["channel_subtype"] = None + __props__.__dict__["content"] = None + __props__.__dict__["default_attributes"] = None + __props__.__dict__["description"] = None + __props__.__dict__["grouping_configuration"] = None + __props__.__dict__["knowledge_base_arn"] = None + __props__.__dict__["language"] = None + __props__.__dict__["message_template_arn"] = None + __props__.__dict__["message_template_content_sha256"] = None + __props__.__dict__["message_template_id"] = None + __props__.__dict__["name"] = None + __props__.__dict__["tags"] = None + return MessageTemplate(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="channelSubtype") + def channel_subtype(self) -> pulumi.Output['MessageTemplateChannelSubtype']: + return pulumi.get(self, "channel_subtype") + + @property + @pulumi.getter + def content(self) -> pulumi.Output['outputs.MessageTemplateContent']: + return pulumi.get(self, "content") + + @property + @pulumi.getter(name="defaultAttributes") + def default_attributes(self) -> pulumi.Output[Optional['outputs.MessageTemplateAttributes']]: + return pulumi.get(self, "default_attributes") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + """ + The description of the message template. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="groupingConfiguration") + def grouping_configuration(self) -> pulumi.Output[Optional['outputs.MessageTemplateGroupingConfiguration']]: + return pulumi.get(self, "grouping_configuration") + + @property + @pulumi.getter(name="knowledgeBaseArn") + def knowledge_base_arn(self) -> pulumi.Output[str]: + """ + The Amazon Resource Name (ARN) of the knowledge base to which the message template belongs. + """ + return pulumi.get(self, "knowledge_base_arn") + + @property + @pulumi.getter + def language(self) -> pulumi.Output[Optional[str]]: + """ + The language code value for the language in which the message template is written. The supported language codes include de_DE, en_US, es_ES, fr_FR, id_ID, it_IT, ja_JP, ko_KR, pt_BR, zh_CN, zh_TW + """ + return pulumi.get(self, "language") + + @property + @pulumi.getter(name="messageTemplateArn") + def message_template_arn(self) -> pulumi.Output[str]: + """ + The Amazon Resource Name (ARN) of the message template. + """ + return pulumi.get(self, "message_template_arn") + + @property + @pulumi.getter(name="messageTemplateContentSha256") + def message_template_content_sha256(self) -> pulumi.Output[str]: + """ + The content SHA256 of the message template. + """ + return pulumi.get(self, "message_template_content_sha256") + + @property + @pulumi.getter(name="messageTemplateId") + def message_template_id(self) -> pulumi.Output[str]: + """ + The unique identifier of the message template. + """ + return pulumi.get(self, "message_template_id") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of the message template. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: + """ + The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }. + """ + return pulumi.get(self, "tags") + diff --git a/sdk/python/pulumi_aws_native/wisdom/message_template_version.py b/sdk/python/pulumi_aws_native/wisdom/message_template_version.py new file mode 100644 index 0000000000..c5d5fb3dfa --- /dev/null +++ b/sdk/python/pulumi_aws_native/wisdom/message_template_version.py @@ -0,0 +1,176 @@ +# 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__ = ['MessageTemplateVersionArgs', 'MessageTemplateVersion'] + +@pulumi.input_type +class MessageTemplateVersionArgs: + def __init__(__self__, *, + message_template_arn: pulumi.Input[str], + message_template_content_sha256: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a MessageTemplateVersion resource. + :param pulumi.Input[str] message_template_arn: The unqualified Amazon Resource Name (ARN) of the message template. + :param pulumi.Input[str] message_template_content_sha256: The content SHA256 of the message template. + """ + pulumi.set(__self__, "message_template_arn", message_template_arn) + if message_template_content_sha256 is not None: + pulumi.set(__self__, "message_template_content_sha256", message_template_content_sha256) + + @property + @pulumi.getter(name="messageTemplateArn") + def message_template_arn(self) -> pulumi.Input[str]: + """ + The unqualified Amazon Resource Name (ARN) of the message template. + """ + return pulumi.get(self, "message_template_arn") + + @message_template_arn.setter + def message_template_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "message_template_arn", value) + + @property + @pulumi.getter(name="messageTemplateContentSha256") + def message_template_content_sha256(self) -> Optional[pulumi.Input[str]]: + """ + The content SHA256 of the message template. + """ + return pulumi.get(self, "message_template_content_sha256") + + @message_template_content_sha256.setter + def message_template_content_sha256(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "message_template_content_sha256", value) + + +class MessageTemplateVersion(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + message_template_arn: Optional[pulumi.Input[str]] = None, + message_template_content_sha256: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + A version for the specified customer-managed message template within the specified knowledge base. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] message_template_arn: The unqualified Amazon Resource Name (ARN) of the message template. + :param pulumi.Input[str] message_template_content_sha256: The content SHA256 of the message template. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: MessageTemplateVersionArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + A version for the specified customer-managed message template within the specified knowledge base. + + :param str resource_name: The name of the resource. + :param MessageTemplateVersionArgs 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(MessageTemplateVersionArgs, 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, + message_template_arn: Optional[pulumi.Input[str]] = None, + message_template_content_sha256: 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__ = MessageTemplateVersionArgs.__new__(MessageTemplateVersionArgs) + + if message_template_arn is None and not opts.urn: + raise TypeError("Missing required property 'message_template_arn'") + __props__.__dict__["message_template_arn"] = message_template_arn + __props__.__dict__["message_template_content_sha256"] = message_template_content_sha256 + __props__.__dict__["message_template_version_arn"] = None + __props__.__dict__["message_template_version_number"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["messageTemplateArn"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(MessageTemplateVersion, __self__).__init__( + 'aws-native:wisdom:MessageTemplateVersion', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'MessageTemplateVersion': + """ + Get an existing MessageTemplateVersion 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__ = MessageTemplateVersionArgs.__new__(MessageTemplateVersionArgs) + + __props__.__dict__["message_template_arn"] = None + __props__.__dict__["message_template_content_sha256"] = None + __props__.__dict__["message_template_version_arn"] = None + __props__.__dict__["message_template_version_number"] = None + return MessageTemplateVersion(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="messageTemplateArn") + def message_template_arn(self) -> pulumi.Output[str]: + """ + The unqualified Amazon Resource Name (ARN) of the message template. + """ + return pulumi.get(self, "message_template_arn") + + @property + @pulumi.getter(name="messageTemplateContentSha256") + def message_template_content_sha256(self) -> pulumi.Output[Optional[str]]: + """ + The content SHA256 of the message template. + """ + return pulumi.get(self, "message_template_content_sha256") + + @property + @pulumi.getter(name="messageTemplateVersionArn") + def message_template_version_arn(self) -> pulumi.Output[str]: + """ + The unqualified Amazon Resource Name (ARN) of the message template version. + """ + return pulumi.get(self, "message_template_version_arn") + + @property + @pulumi.getter(name="messageTemplateVersionNumber") + def message_template_version_number(self) -> pulumi.Output[float]: + """ + Current version number of the message template. + """ + return pulumi.get(self, "message_template_version_number") + diff --git a/sdk/python/pulumi_aws_native/wisdom/outputs.py b/sdk/python/pulumi_aws_native/wisdom/outputs.py index 9497b0e587..09e7e8d0fc 100644 --- a/sdk/python/pulumi_aws_native/wisdom/outputs.py +++ b/sdk/python/pulumi_aws_native/wisdom/outputs.py @@ -37,6 +37,19 @@ 'KnowledgeBaseRenderingConfiguration', 'KnowledgeBaseServerSideEncryptionConfiguration', 'KnowledgeBaseSourceConfiguration', + 'MessageTemplateAgentAttributes', + 'MessageTemplateAttributes', + 'MessageTemplateBodyContentProvider', + 'MessageTemplateContent', + 'MessageTemplateCustomerProfileAttributes', + 'MessageTemplateEmailMessageTemplateContent', + 'MessageTemplateEmailMessageTemplateContentBody', + 'MessageTemplateEmailMessageTemplateHeader', + 'MessageTemplateGroupingConfiguration', + 'MessageTemplateSmsMessageTemplateContent', + 'MessageTemplateSmsMessageTemplateContentBody', + 'MessageTemplateSystemAttributes', + 'MessageTemplateSystemEndpointAttributes', ] @pulumi.output_type @@ -773,3 +786,1303 @@ def app_integrations(self) -> Optional['outputs.KnowledgeBaseAppIntegrationsConf return pulumi.get(self, "app_integrations") +@pulumi.output_type +class MessageTemplateAgentAttributes(dict): + """ + The agent attributes that are used with the message template. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "firstName": + suggest = "first_name" + elif key == "lastName": + suggest = "last_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MessageTemplateAgentAttributes. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + MessageTemplateAgentAttributes.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MessageTemplateAgentAttributes.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + first_name: Optional[str] = None, + last_name: Optional[str] = None): + """ + The agent attributes that are used with the message template. + :param str first_name: The agent’s first name as entered in their Amazon Connect user account. + :param str last_name: The agent’s last name as entered in their Amazon Connect user account. + """ + if first_name is not None: + pulumi.set(__self__, "first_name", first_name) + if last_name is not None: + pulumi.set(__self__, "last_name", last_name) + + @property + @pulumi.getter(name="firstName") + def first_name(self) -> Optional[str]: + """ + The agent’s first name as entered in their Amazon Connect user account. + """ + return pulumi.get(self, "first_name") + + @property + @pulumi.getter(name="lastName") + def last_name(self) -> Optional[str]: + """ + The agent’s last name as entered in their Amazon Connect user account. + """ + return pulumi.get(self, "last_name") + + +@pulumi.output_type +class MessageTemplateAttributes(dict): + """ + An object that specifies the default values to use for variables in the message template. This object contains different categories of key-value pairs. Each key defines a variable or placeholder in the message template. The corresponding value defines the default value for that variable. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "agentAttributes": + suggest = "agent_attributes" + elif key == "customAttributes": + suggest = "custom_attributes" + elif key == "customerProfileAttributes": + suggest = "customer_profile_attributes" + elif key == "systemAttributes": + suggest = "system_attributes" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MessageTemplateAttributes. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + MessageTemplateAttributes.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MessageTemplateAttributes.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + agent_attributes: Optional['outputs.MessageTemplateAgentAttributes'] = None, + custom_attributes: Optional[Mapping[str, str]] = None, + customer_profile_attributes: Optional['outputs.MessageTemplateCustomerProfileAttributes'] = None, + system_attributes: Optional['outputs.MessageTemplateSystemAttributes'] = None): + """ + An object that specifies the default values to use for variables in the message template. This object contains different categories of key-value pairs. Each key defines a variable or placeholder in the message template. The corresponding value defines the default value for that variable. + """ + if agent_attributes is not None: + pulumi.set(__self__, "agent_attributes", agent_attributes) + if custom_attributes is not None: + pulumi.set(__self__, "custom_attributes", custom_attributes) + if customer_profile_attributes is not None: + pulumi.set(__self__, "customer_profile_attributes", customer_profile_attributes) + if system_attributes is not None: + pulumi.set(__self__, "system_attributes", system_attributes) + + @property + @pulumi.getter(name="agentAttributes") + def agent_attributes(self) -> Optional['outputs.MessageTemplateAgentAttributes']: + return pulumi.get(self, "agent_attributes") + + @property + @pulumi.getter(name="customAttributes") + def custom_attributes(self) -> Optional[Mapping[str, str]]: + return pulumi.get(self, "custom_attributes") + + @property + @pulumi.getter(name="customerProfileAttributes") + def customer_profile_attributes(self) -> Optional['outputs.MessageTemplateCustomerProfileAttributes']: + return pulumi.get(self, "customer_profile_attributes") + + @property + @pulumi.getter(name="systemAttributes") + def system_attributes(self) -> Optional['outputs.MessageTemplateSystemAttributes']: + return pulumi.get(self, "system_attributes") + + +@pulumi.output_type +class MessageTemplateBodyContentProvider(dict): + """ + The container of message template body. + """ + def __init__(__self__, *, + content: Optional[str] = None): + """ + The container of message template body. + """ + if content is not None: + pulumi.set(__self__, "content", content) + + @property + @pulumi.getter + def content(self) -> Optional[str]: + return pulumi.get(self, "content") + + +@pulumi.output_type +class MessageTemplateContent(dict): + """ + The content of the message template. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "emailMessageTemplateContent": + suggest = "email_message_template_content" + elif key == "smsMessageTemplateContent": + suggest = "sms_message_template_content" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MessageTemplateContent. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + MessageTemplateContent.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MessageTemplateContent.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + email_message_template_content: Optional['outputs.MessageTemplateEmailMessageTemplateContent'] = None, + sms_message_template_content: Optional['outputs.MessageTemplateSmsMessageTemplateContent'] = None): + """ + The content of the message template. + """ + if email_message_template_content is not None: + pulumi.set(__self__, "email_message_template_content", email_message_template_content) + if sms_message_template_content is not None: + pulumi.set(__self__, "sms_message_template_content", sms_message_template_content) + + @property + @pulumi.getter(name="emailMessageTemplateContent") + def email_message_template_content(self) -> Optional['outputs.MessageTemplateEmailMessageTemplateContent']: + return pulumi.get(self, "email_message_template_content") + + @property + @pulumi.getter(name="smsMessageTemplateContent") + def sms_message_template_content(self) -> Optional['outputs.MessageTemplateSmsMessageTemplateContent']: + return pulumi.get(self, "sms_message_template_content") + + +@pulumi.output_type +class MessageTemplateCustomerProfileAttributes(dict): + """ + The customer profile attributes that are used with the message template. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "accountNumber": + suggest = "account_number" + elif key == "additionalInformation": + suggest = "additional_information" + elif key == "billingAddress1": + suggest = "billing_address1" + elif key == "billingAddress2": + suggest = "billing_address2" + elif key == "billingAddress3": + suggest = "billing_address3" + elif key == "billingAddress4": + suggest = "billing_address4" + elif key == "billingCity": + suggest = "billing_city" + elif key == "billingCountry": + suggest = "billing_country" + elif key == "billingCounty": + suggest = "billing_county" + elif key == "billingPostalCode": + suggest = "billing_postal_code" + elif key == "billingProvince": + suggest = "billing_province" + elif key == "billingState": + suggest = "billing_state" + elif key == "birthDate": + suggest = "birth_date" + elif key == "businessEmailAddress": + suggest = "business_email_address" + elif key == "businessName": + suggest = "business_name" + elif key == "businessPhoneNumber": + suggest = "business_phone_number" + elif key == "emailAddress": + suggest = "email_address" + elif key == "firstName": + suggest = "first_name" + elif key == "homePhoneNumber": + suggest = "home_phone_number" + elif key == "lastName": + suggest = "last_name" + elif key == "mailingAddress1": + suggest = "mailing_address1" + elif key == "mailingAddress2": + suggest = "mailing_address2" + elif key == "mailingAddress3": + suggest = "mailing_address3" + elif key == "mailingAddress4": + suggest = "mailing_address4" + elif key == "mailingCity": + suggest = "mailing_city" + elif key == "mailingCountry": + suggest = "mailing_country" + elif key == "mailingCounty": + suggest = "mailing_county" + elif key == "mailingPostalCode": + suggest = "mailing_postal_code" + elif key == "mailingProvince": + suggest = "mailing_province" + elif key == "mailingState": + suggest = "mailing_state" + elif key == "middleName": + suggest = "middle_name" + elif key == "mobilePhoneNumber": + suggest = "mobile_phone_number" + elif key == "partyType": + suggest = "party_type" + elif key == "phoneNumber": + suggest = "phone_number" + elif key == "postalCode": + suggest = "postal_code" + elif key == "profileArn": + suggest = "profile_arn" + elif key == "profileId": + suggest = "profile_id" + elif key == "shippingAddress1": + suggest = "shipping_address1" + elif key == "shippingAddress2": + suggest = "shipping_address2" + elif key == "shippingAddress3": + suggest = "shipping_address3" + elif key == "shippingAddress4": + suggest = "shipping_address4" + elif key == "shippingCity": + suggest = "shipping_city" + elif key == "shippingCountry": + suggest = "shipping_country" + elif key == "shippingCounty": + suggest = "shipping_county" + elif key == "shippingPostalCode": + suggest = "shipping_postal_code" + elif key == "shippingProvince": + suggest = "shipping_province" + elif key == "shippingState": + suggest = "shipping_state" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MessageTemplateCustomerProfileAttributes. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + MessageTemplateCustomerProfileAttributes.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MessageTemplateCustomerProfileAttributes.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + account_number: Optional[str] = None, + additional_information: Optional[str] = None, + address1: Optional[str] = None, + address2: Optional[str] = None, + address3: Optional[str] = None, + address4: Optional[str] = None, + billing_address1: Optional[str] = None, + billing_address2: Optional[str] = None, + billing_address3: Optional[str] = None, + billing_address4: Optional[str] = None, + billing_city: Optional[str] = None, + billing_country: Optional[str] = None, + billing_county: Optional[str] = None, + billing_postal_code: Optional[str] = None, + billing_province: Optional[str] = None, + billing_state: Optional[str] = None, + birth_date: Optional[str] = None, + business_email_address: Optional[str] = None, + business_name: Optional[str] = None, + business_phone_number: Optional[str] = None, + city: Optional[str] = None, + country: Optional[str] = None, + county: Optional[str] = None, + custom: Optional[Mapping[str, str]] = None, + email_address: Optional[str] = None, + first_name: Optional[str] = None, + gender: Optional[str] = None, + home_phone_number: Optional[str] = None, + last_name: Optional[str] = None, + mailing_address1: Optional[str] = None, + mailing_address2: Optional[str] = None, + mailing_address3: Optional[str] = None, + mailing_address4: Optional[str] = None, + mailing_city: Optional[str] = None, + mailing_country: Optional[str] = None, + mailing_county: Optional[str] = None, + mailing_postal_code: Optional[str] = None, + mailing_province: Optional[str] = None, + mailing_state: Optional[str] = None, + middle_name: Optional[str] = None, + mobile_phone_number: Optional[str] = None, + party_type: Optional[str] = None, + phone_number: Optional[str] = None, + postal_code: Optional[str] = None, + profile_arn: Optional[str] = None, + profile_id: Optional[str] = None, + province: Optional[str] = None, + shipping_address1: Optional[str] = None, + shipping_address2: Optional[str] = None, + shipping_address3: Optional[str] = None, + shipping_address4: Optional[str] = None, + shipping_city: Optional[str] = None, + shipping_country: Optional[str] = None, + shipping_county: Optional[str] = None, + shipping_postal_code: Optional[str] = None, + shipping_province: Optional[str] = None, + shipping_state: Optional[str] = None, + state: Optional[str] = None): + """ + The customer profile attributes that are used with the message template. + :param str account_number: A unique account number that you have given to the customer. + :param str additional_information: Any additional information relevant to the customer's profile. + :param str address1: The first line of a customer address. + :param str address2: The second line of a customer address. + :param str address3: The third line of a customer address. + :param str address4: The fourth line of a customer address. + :param str billing_address1: The first line of a customer’s billing address. + :param str billing_address2: The second line of a customer’s billing address. + :param str billing_address3: The third line of a customer’s billing address. + :param str billing_address4: The fourth line of a customer’s billing address. + :param str billing_city: The city of a customer’s billing address. + :param str billing_country: The country of a customer’s billing address. + :param str billing_county: The county of a customer’s billing address. + :param str billing_postal_code: The postal code of a customer’s billing address. + :param str billing_province: The province of a customer’s billing address. + :param str billing_state: The state of a customer’s billing address. + :param str birth_date: The customer's birth date. + :param str business_email_address: The customer's business email address. + :param str business_name: The name of the customer's business. + :param str business_phone_number: The customer's business phone number. + :param str city: The city in which a customer lives. + :param str country: The country in which a customer lives. + :param str county: The county in which a customer lives. + :param str email_address: The customer's email address, which has not been specified as a personal or business address. + :param str first_name: The customer's first name. + :param str gender: The customer's gender. + :param str home_phone_number: The customer's home phone number. + :param str last_name: The customer's last name. + :param str mailing_address1: The first line of a customer’s mailing address. + :param str mailing_address2: The second line of a customer’s mailing address. + :param str mailing_address3: The third line of a customer’s mailing address. + :param str mailing_address4: The fourth line of a customer’s mailing address. + :param str mailing_city: The city of a customer’s mailing address. + :param str mailing_country: The country of a customer’s mailing address. + :param str mailing_county: The county of a customer’s mailing address. + :param str mailing_postal_code: The postal code of a customer’s mailing address + :param str mailing_province: The province of a customer’s mailing address. + :param str mailing_state: The state of a customer’s mailing address. + :param str middle_name: The customer's middle name. + :param str mobile_phone_number: The customer's mobile phone number. + :param str party_type: The customer's party type. + :param str phone_number: The customer's phone number, which has not been specified as a mobile, home, or business number. + :param str postal_code: The postal code of a customer address. + :param str profile_arn: The ARN of a customer profile. + :param str profile_id: The unique identifier of a customer profile. + :param str province: The province in which a customer lives. + :param str shipping_address1: The first line of a customer’s shipping address. + :param str shipping_address2: The second line of a customer’s shipping address. + :param str shipping_address3: The third line of a customer’s shipping address. + :param str shipping_address4: The fourth line of a customer’s shipping address + :param str shipping_city: The city of a customer’s shipping address. + :param str shipping_country: The country of a customer’s shipping address. + :param str shipping_county: The county of a customer’s shipping address. + :param str shipping_postal_code: The postal code of a customer’s shipping address. + :param str shipping_province: The province of a customer’s shipping address. + :param str shipping_state: The state of a customer’s shipping address. + :param str state: The state in which a customer lives. + """ + if account_number is not None: + pulumi.set(__self__, "account_number", account_number) + if additional_information is not None: + pulumi.set(__self__, "additional_information", additional_information) + if address1 is not None: + pulumi.set(__self__, "address1", address1) + if address2 is not None: + pulumi.set(__self__, "address2", address2) + if address3 is not None: + pulumi.set(__self__, "address3", address3) + if address4 is not None: + pulumi.set(__self__, "address4", address4) + if billing_address1 is not None: + pulumi.set(__self__, "billing_address1", billing_address1) + if billing_address2 is not None: + pulumi.set(__self__, "billing_address2", billing_address2) + if billing_address3 is not None: + pulumi.set(__self__, "billing_address3", billing_address3) + if billing_address4 is not None: + pulumi.set(__self__, "billing_address4", billing_address4) + if billing_city is not None: + pulumi.set(__self__, "billing_city", billing_city) + if billing_country is not None: + pulumi.set(__self__, "billing_country", billing_country) + if billing_county is not None: + pulumi.set(__self__, "billing_county", billing_county) + if billing_postal_code is not None: + pulumi.set(__self__, "billing_postal_code", billing_postal_code) + if billing_province is not None: + pulumi.set(__self__, "billing_province", billing_province) + if billing_state is not None: + pulumi.set(__self__, "billing_state", billing_state) + if birth_date is not None: + pulumi.set(__self__, "birth_date", birth_date) + if business_email_address is not None: + pulumi.set(__self__, "business_email_address", business_email_address) + if business_name is not None: + pulumi.set(__self__, "business_name", business_name) + if business_phone_number is not None: + pulumi.set(__self__, "business_phone_number", business_phone_number) + if city is not None: + pulumi.set(__self__, "city", city) + if country is not None: + pulumi.set(__self__, "country", country) + if county is not None: + pulumi.set(__self__, "county", county) + if custom is not None: + pulumi.set(__self__, "custom", custom) + if email_address is not None: + pulumi.set(__self__, "email_address", email_address) + if first_name is not None: + pulumi.set(__self__, "first_name", first_name) + if gender is not None: + pulumi.set(__self__, "gender", gender) + if home_phone_number is not None: + pulumi.set(__self__, "home_phone_number", home_phone_number) + if last_name is not None: + pulumi.set(__self__, "last_name", last_name) + if mailing_address1 is not None: + pulumi.set(__self__, "mailing_address1", mailing_address1) + if mailing_address2 is not None: + pulumi.set(__self__, "mailing_address2", mailing_address2) + if mailing_address3 is not None: + pulumi.set(__self__, "mailing_address3", mailing_address3) + if mailing_address4 is not None: + pulumi.set(__self__, "mailing_address4", mailing_address4) + if mailing_city is not None: + pulumi.set(__self__, "mailing_city", mailing_city) + if mailing_country is not None: + pulumi.set(__self__, "mailing_country", mailing_country) + if mailing_county is not None: + pulumi.set(__self__, "mailing_county", mailing_county) + if mailing_postal_code is not None: + pulumi.set(__self__, "mailing_postal_code", mailing_postal_code) + if mailing_province is not None: + pulumi.set(__self__, "mailing_province", mailing_province) + if mailing_state is not None: + pulumi.set(__self__, "mailing_state", mailing_state) + if middle_name is not None: + pulumi.set(__self__, "middle_name", middle_name) + if mobile_phone_number is not None: + pulumi.set(__self__, "mobile_phone_number", mobile_phone_number) + if party_type is not None: + pulumi.set(__self__, "party_type", party_type) + if phone_number is not None: + pulumi.set(__self__, "phone_number", phone_number) + if postal_code is not None: + pulumi.set(__self__, "postal_code", postal_code) + if profile_arn is not None: + pulumi.set(__self__, "profile_arn", profile_arn) + if profile_id is not None: + pulumi.set(__self__, "profile_id", profile_id) + if province is not None: + pulumi.set(__self__, "province", province) + if shipping_address1 is not None: + pulumi.set(__self__, "shipping_address1", shipping_address1) + if shipping_address2 is not None: + pulumi.set(__self__, "shipping_address2", shipping_address2) + if shipping_address3 is not None: + pulumi.set(__self__, "shipping_address3", shipping_address3) + if shipping_address4 is not None: + pulumi.set(__self__, "shipping_address4", shipping_address4) + if shipping_city is not None: + pulumi.set(__self__, "shipping_city", shipping_city) + if shipping_country is not None: + pulumi.set(__self__, "shipping_country", shipping_country) + if shipping_county is not None: + pulumi.set(__self__, "shipping_county", shipping_county) + if shipping_postal_code is not None: + pulumi.set(__self__, "shipping_postal_code", shipping_postal_code) + if shipping_province is not None: + pulumi.set(__self__, "shipping_province", shipping_province) + if shipping_state is not None: + pulumi.set(__self__, "shipping_state", shipping_state) + if state is not None: + pulumi.set(__self__, "state", state) + + @property + @pulumi.getter(name="accountNumber") + def account_number(self) -> Optional[str]: + """ + A unique account number that you have given to the customer. + """ + return pulumi.get(self, "account_number") + + @property + @pulumi.getter(name="additionalInformation") + def additional_information(self) -> Optional[str]: + """ + Any additional information relevant to the customer's profile. + """ + return pulumi.get(self, "additional_information") + + @property + @pulumi.getter + def address1(self) -> Optional[str]: + """ + The first line of a customer address. + """ + return pulumi.get(self, "address1") + + @property + @pulumi.getter + def address2(self) -> Optional[str]: + """ + The second line of a customer address. + """ + return pulumi.get(self, "address2") + + @property + @pulumi.getter + def address3(self) -> Optional[str]: + """ + The third line of a customer address. + """ + return pulumi.get(self, "address3") + + @property + @pulumi.getter + def address4(self) -> Optional[str]: + """ + The fourth line of a customer address. + """ + return pulumi.get(self, "address4") + + @property + @pulumi.getter(name="billingAddress1") + def billing_address1(self) -> Optional[str]: + """ + The first line of a customer’s billing address. + """ + return pulumi.get(self, "billing_address1") + + @property + @pulumi.getter(name="billingAddress2") + def billing_address2(self) -> Optional[str]: + """ + The second line of a customer’s billing address. + """ + return pulumi.get(self, "billing_address2") + + @property + @pulumi.getter(name="billingAddress3") + def billing_address3(self) -> Optional[str]: + """ + The third line of a customer’s billing address. + """ + return pulumi.get(self, "billing_address3") + + @property + @pulumi.getter(name="billingAddress4") + def billing_address4(self) -> Optional[str]: + """ + The fourth line of a customer’s billing address. + """ + return pulumi.get(self, "billing_address4") + + @property + @pulumi.getter(name="billingCity") + def billing_city(self) -> Optional[str]: + """ + The city of a customer’s billing address. + """ + return pulumi.get(self, "billing_city") + + @property + @pulumi.getter(name="billingCountry") + def billing_country(self) -> Optional[str]: + """ + The country of a customer’s billing address. + """ + return pulumi.get(self, "billing_country") + + @property + @pulumi.getter(name="billingCounty") + def billing_county(self) -> Optional[str]: + """ + The county of a customer’s billing address. + """ + return pulumi.get(self, "billing_county") + + @property + @pulumi.getter(name="billingPostalCode") + def billing_postal_code(self) -> Optional[str]: + """ + The postal code of a customer’s billing address. + """ + return pulumi.get(self, "billing_postal_code") + + @property + @pulumi.getter(name="billingProvince") + def billing_province(self) -> Optional[str]: + """ + The province of a customer’s billing address. + """ + return pulumi.get(self, "billing_province") + + @property + @pulumi.getter(name="billingState") + def billing_state(self) -> Optional[str]: + """ + The state of a customer’s billing address. + """ + return pulumi.get(self, "billing_state") + + @property + @pulumi.getter(name="birthDate") + def birth_date(self) -> Optional[str]: + """ + The customer's birth date. + """ + return pulumi.get(self, "birth_date") + + @property + @pulumi.getter(name="businessEmailAddress") + def business_email_address(self) -> Optional[str]: + """ + The customer's business email address. + """ + return pulumi.get(self, "business_email_address") + + @property + @pulumi.getter(name="businessName") + def business_name(self) -> Optional[str]: + """ + The name of the customer's business. + """ + return pulumi.get(self, "business_name") + + @property + @pulumi.getter(name="businessPhoneNumber") + def business_phone_number(self) -> Optional[str]: + """ + The customer's business phone number. + """ + return pulumi.get(self, "business_phone_number") + + @property + @pulumi.getter + def city(self) -> Optional[str]: + """ + The city in which a customer lives. + """ + return pulumi.get(self, "city") + + @property + @pulumi.getter + def country(self) -> Optional[str]: + """ + The country in which a customer lives. + """ + return pulumi.get(self, "country") + + @property + @pulumi.getter + def county(self) -> Optional[str]: + """ + The county in which a customer lives. + """ + return pulumi.get(self, "county") + + @property + @pulumi.getter + def custom(self) -> Optional[Mapping[str, str]]: + return pulumi.get(self, "custom") + + @property + @pulumi.getter(name="emailAddress") + def email_address(self) -> Optional[str]: + """ + The customer's email address, which has not been specified as a personal or business address. + """ + return pulumi.get(self, "email_address") + + @property + @pulumi.getter(name="firstName") + def first_name(self) -> Optional[str]: + """ + The customer's first name. + """ + return pulumi.get(self, "first_name") + + @property + @pulumi.getter + def gender(self) -> Optional[str]: + """ + The customer's gender. + """ + return pulumi.get(self, "gender") + + @property + @pulumi.getter(name="homePhoneNumber") + def home_phone_number(self) -> Optional[str]: + """ + The customer's home phone number. + """ + return pulumi.get(self, "home_phone_number") + + @property + @pulumi.getter(name="lastName") + def last_name(self) -> Optional[str]: + """ + The customer's last name. + """ + return pulumi.get(self, "last_name") + + @property + @pulumi.getter(name="mailingAddress1") + def mailing_address1(self) -> Optional[str]: + """ + The first line of a customer’s mailing address. + """ + return pulumi.get(self, "mailing_address1") + + @property + @pulumi.getter(name="mailingAddress2") + def mailing_address2(self) -> Optional[str]: + """ + The second line of a customer’s mailing address. + """ + return pulumi.get(self, "mailing_address2") + + @property + @pulumi.getter(name="mailingAddress3") + def mailing_address3(self) -> Optional[str]: + """ + The third line of a customer’s mailing address. + """ + return pulumi.get(self, "mailing_address3") + + @property + @pulumi.getter(name="mailingAddress4") + def mailing_address4(self) -> Optional[str]: + """ + The fourth line of a customer’s mailing address. + """ + return pulumi.get(self, "mailing_address4") + + @property + @pulumi.getter(name="mailingCity") + def mailing_city(self) -> Optional[str]: + """ + The city of a customer’s mailing address. + """ + return pulumi.get(self, "mailing_city") + + @property + @pulumi.getter(name="mailingCountry") + def mailing_country(self) -> Optional[str]: + """ + The country of a customer’s mailing address. + """ + return pulumi.get(self, "mailing_country") + + @property + @pulumi.getter(name="mailingCounty") + def mailing_county(self) -> Optional[str]: + """ + The county of a customer’s mailing address. + """ + return pulumi.get(self, "mailing_county") + + @property + @pulumi.getter(name="mailingPostalCode") + def mailing_postal_code(self) -> Optional[str]: + """ + The postal code of a customer’s mailing address + """ + return pulumi.get(self, "mailing_postal_code") + + @property + @pulumi.getter(name="mailingProvince") + def mailing_province(self) -> Optional[str]: + """ + The province of a customer’s mailing address. + """ + return pulumi.get(self, "mailing_province") + + @property + @pulumi.getter(name="mailingState") + def mailing_state(self) -> Optional[str]: + """ + The state of a customer’s mailing address. + """ + return pulumi.get(self, "mailing_state") + + @property + @pulumi.getter(name="middleName") + def middle_name(self) -> Optional[str]: + """ + The customer's middle name. + """ + return pulumi.get(self, "middle_name") + + @property + @pulumi.getter(name="mobilePhoneNumber") + def mobile_phone_number(self) -> Optional[str]: + """ + The customer's mobile phone number. + """ + return pulumi.get(self, "mobile_phone_number") + + @property + @pulumi.getter(name="partyType") + def party_type(self) -> Optional[str]: + """ + The customer's party type. + """ + return pulumi.get(self, "party_type") + + @property + @pulumi.getter(name="phoneNumber") + def phone_number(self) -> Optional[str]: + """ + The customer's phone number, which has not been specified as a mobile, home, or business number. + """ + return pulumi.get(self, "phone_number") + + @property + @pulumi.getter(name="postalCode") + def postal_code(self) -> Optional[str]: + """ + The postal code of a customer address. + """ + return pulumi.get(self, "postal_code") + + @property + @pulumi.getter(name="profileArn") + def profile_arn(self) -> Optional[str]: + """ + The ARN of a customer profile. + """ + return pulumi.get(self, "profile_arn") + + @property + @pulumi.getter(name="profileId") + def profile_id(self) -> Optional[str]: + """ + The unique identifier of a customer profile. + """ + return pulumi.get(self, "profile_id") + + @property + @pulumi.getter + def province(self) -> Optional[str]: + """ + The province in which a customer lives. + """ + return pulumi.get(self, "province") + + @property + @pulumi.getter(name="shippingAddress1") + def shipping_address1(self) -> Optional[str]: + """ + The first line of a customer’s shipping address. + """ + return pulumi.get(self, "shipping_address1") + + @property + @pulumi.getter(name="shippingAddress2") + def shipping_address2(self) -> Optional[str]: + """ + The second line of a customer’s shipping address. + """ + return pulumi.get(self, "shipping_address2") + + @property + @pulumi.getter(name="shippingAddress3") + def shipping_address3(self) -> Optional[str]: + """ + The third line of a customer’s shipping address. + """ + return pulumi.get(self, "shipping_address3") + + @property + @pulumi.getter(name="shippingAddress4") + def shipping_address4(self) -> Optional[str]: + """ + The fourth line of a customer’s shipping address + """ + return pulumi.get(self, "shipping_address4") + + @property + @pulumi.getter(name="shippingCity") + def shipping_city(self) -> Optional[str]: + """ + The city of a customer’s shipping address. + """ + return pulumi.get(self, "shipping_city") + + @property + @pulumi.getter(name="shippingCountry") + def shipping_country(self) -> Optional[str]: + """ + The country of a customer’s shipping address. + """ + return pulumi.get(self, "shipping_country") + + @property + @pulumi.getter(name="shippingCounty") + def shipping_county(self) -> Optional[str]: + """ + The county of a customer’s shipping address. + """ + return pulumi.get(self, "shipping_county") + + @property + @pulumi.getter(name="shippingPostalCode") + def shipping_postal_code(self) -> Optional[str]: + """ + The postal code of a customer’s shipping address. + """ + return pulumi.get(self, "shipping_postal_code") + + @property + @pulumi.getter(name="shippingProvince") + def shipping_province(self) -> Optional[str]: + """ + The province of a customer’s shipping address. + """ + return pulumi.get(self, "shipping_province") + + @property + @pulumi.getter(name="shippingState") + def shipping_state(self) -> Optional[str]: + """ + The state of a customer’s shipping address. + """ + return pulumi.get(self, "shipping_state") + + @property + @pulumi.getter + def state(self) -> Optional[str]: + """ + The state in which a customer lives. + """ + return pulumi.get(self, "state") + + +@pulumi.output_type +class MessageTemplateEmailMessageTemplateContent(dict): + """ + The content of message template that applies to email channel subtype. + """ + def __init__(__self__, *, + body: 'outputs.MessageTemplateEmailMessageTemplateContentBody', + headers: Sequence['outputs.MessageTemplateEmailMessageTemplateHeader'], + subject: str): + """ + The content of message template that applies to email channel subtype. + :param Sequence['MessageTemplateEmailMessageTemplateHeader'] headers: The email headers to include in email messages. + :param str subject: The subject line, or title, to use in email messages. + """ + pulumi.set(__self__, "body", body) + pulumi.set(__self__, "headers", headers) + pulumi.set(__self__, "subject", subject) + + @property + @pulumi.getter + def body(self) -> 'outputs.MessageTemplateEmailMessageTemplateContentBody': + return pulumi.get(self, "body") + + @property + @pulumi.getter + def headers(self) -> Sequence['outputs.MessageTemplateEmailMessageTemplateHeader']: + """ + The email headers to include in email messages. + """ + return pulumi.get(self, "headers") + + @property + @pulumi.getter + def subject(self) -> str: + """ + The subject line, or title, to use in email messages. + """ + return pulumi.get(self, "subject") + + +@pulumi.output_type +class MessageTemplateEmailMessageTemplateContentBody(dict): + """ + The body to use in email messages. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "plainText": + suggest = "plain_text" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MessageTemplateEmailMessageTemplateContentBody. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + MessageTemplateEmailMessageTemplateContentBody.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MessageTemplateEmailMessageTemplateContentBody.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + html: Optional['outputs.MessageTemplateBodyContentProvider'] = None, + plain_text: Optional['outputs.MessageTemplateBodyContentProvider'] = None): + """ + The body to use in email messages. + :param 'MessageTemplateBodyContentProvider' html: The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + :param 'MessageTemplateBodyContentProvider' plain_text: The message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + """ + if html is not None: + pulumi.set(__self__, "html", html) + if plain_text is not None: + pulumi.set(__self__, "plain_text", plain_text) + + @property + @pulumi.getter + def html(self) -> Optional['outputs.MessageTemplateBodyContentProvider']: + """ + The message body, in HTML format, to use in email messages that are based on the message template. We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message. + """ + return pulumi.get(self, "html") + + @property + @pulumi.getter(name="plainText") + def plain_text(self) -> Optional['outputs.MessageTemplateBodyContentProvider']: + """ + The message body, in plain text format, to use in email messages that are based on the message template. We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices. + """ + return pulumi.get(self, "plain_text") + + +@pulumi.output_type +class MessageTemplateEmailMessageTemplateHeader(dict): + """ + The email header to include in email messages. + """ + def __init__(__self__, *, + name: Optional[str] = None, + value: Optional[str] = None): + """ + The email header to include in email messages. + :param str name: The name of the email header. + :param str value: The value of the email header. + """ + if name is not None: + pulumi.set(__self__, "name", name) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + The name of the email header. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def value(self) -> Optional[str]: + """ + The value of the email header. + """ + return pulumi.get(self, "value") + + +@pulumi.output_type +class MessageTemplateGroupingConfiguration(dict): + """ + The configuration information of the user groups that the message template is accessible to. + """ + def __init__(__self__, *, + criteria: str, + values: Sequence[str]): + """ + The configuration information of the user groups that the message template is accessible to. + :param str criteria: The criteria used for grouping Amazon Q in Connect users. + :param Sequence[str] values: The list of values that define different groups of Amazon Q in Connect users. + """ + pulumi.set(__self__, "criteria", criteria) + pulumi.set(__self__, "values", values) + + @property + @pulumi.getter + def criteria(self) -> str: + """ + The criteria used for grouping Amazon Q in Connect users. + """ + return pulumi.get(self, "criteria") + + @property + @pulumi.getter + def values(self) -> Sequence[str]: + """ + The list of values that define different groups of Amazon Q in Connect users. + """ + return pulumi.get(self, "values") + + +@pulumi.output_type +class MessageTemplateSmsMessageTemplateContent(dict): + """ + The content of message template that applies to SMS channel subtype. + """ + def __init__(__self__, *, + body: 'outputs.MessageTemplateSmsMessageTemplateContentBody'): + """ + The content of message template that applies to SMS channel subtype. + """ + pulumi.set(__self__, "body", body) + + @property + @pulumi.getter + def body(self) -> 'outputs.MessageTemplateSmsMessageTemplateContentBody': + return pulumi.get(self, "body") + + +@pulumi.output_type +class MessageTemplateSmsMessageTemplateContentBody(dict): + """ + The body to use in SMS messages. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "plainText": + suggest = "plain_text" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MessageTemplateSmsMessageTemplateContentBody. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + MessageTemplateSmsMessageTemplateContentBody.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MessageTemplateSmsMessageTemplateContentBody.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + plain_text: Optional['outputs.MessageTemplateBodyContentProvider'] = None): + """ + The body to use in SMS messages. + """ + if plain_text is not None: + pulumi.set(__self__, "plain_text", plain_text) + + @property + @pulumi.getter(name="plainText") + def plain_text(self) -> Optional['outputs.MessageTemplateBodyContentProvider']: + return pulumi.get(self, "plain_text") + + +@pulumi.output_type +class MessageTemplateSystemAttributes(dict): + """ + The system attributes that are used with the message template. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "customerEndpoint": + suggest = "customer_endpoint" + elif key == "systemEndpoint": + suggest = "system_endpoint" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MessageTemplateSystemAttributes. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + MessageTemplateSystemAttributes.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MessageTemplateSystemAttributes.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + customer_endpoint: Optional['outputs.MessageTemplateSystemEndpointAttributes'] = None, + name: Optional[str] = None, + system_endpoint: Optional['outputs.MessageTemplateSystemEndpointAttributes'] = None): + """ + The system attributes that are used with the message template. + :param 'MessageTemplateSystemEndpointAttributes' customer_endpoint: The CustomerEndpoint attribute. + :param str name: The name of the task. + :param 'MessageTemplateSystemEndpointAttributes' system_endpoint: The SystemEndpoint attribute. + """ + if customer_endpoint is not None: + pulumi.set(__self__, "customer_endpoint", customer_endpoint) + if name is not None: + pulumi.set(__self__, "name", name) + if system_endpoint is not None: + pulumi.set(__self__, "system_endpoint", system_endpoint) + + @property + @pulumi.getter(name="customerEndpoint") + def customer_endpoint(self) -> Optional['outputs.MessageTemplateSystemEndpointAttributes']: + """ + The CustomerEndpoint attribute. + """ + return pulumi.get(self, "customer_endpoint") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + The name of the task. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="systemEndpoint") + def system_endpoint(self) -> Optional['outputs.MessageTemplateSystemEndpointAttributes']: + """ + The SystemEndpoint attribute. + """ + return pulumi.get(self, "system_endpoint") + + +@pulumi.output_type +class MessageTemplateSystemEndpointAttributes(dict): + """ + The system endpoint attributes that are used with the message template. + """ + def __init__(__self__, *, + address: Optional[str] = None): + """ + The system endpoint attributes that are used with the message template. + :param str address: The customer's phone number if used with customerEndpoint, or the number the customer dialed to call your contact center if used with systemEndpoint. + """ + if address is not None: + pulumi.set(__self__, "address", address) + + @property + @pulumi.getter + def address(self) -> Optional[str]: + """ + The customer's phone number if used with customerEndpoint, or the number the customer dialed to call your contact center if used with systemEndpoint. + """ + return pulumi.get(self, "address") + +