diff --git a/aws-cloudformation-schema/aws-appconfig-environment.json b/aws-cloudformation-schema/aws-appconfig-environment.json index fbae43fca1..51dc4eeae0 100644 --- a/aws-cloudformation-schema/aws-appconfig-environment.json +++ b/aws-cloudformation-schema/aws-appconfig-environment.json @@ -1,129 +1,137 @@ { - "typeName" : "AWS::AppConfig::Environment", - "description" : "Resource Type definition for AWS::AppConfig::Environment", "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-appconfig.git", - "additionalProperties" : false, - "properties" : { - "EnvironmentId" : { - "type" : "string", - "description" : "The environment ID.", - "pattern" : "[a-z0-9]{4,7}" - }, - "ApplicationId" : { - "type" : "string", - "description" : "The application ID.", - "pattern" : "[a-z0-9]{4,7}" + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "tagProperty" : "/properties/Tags", + "cloudFormationSystemTags" : true + }, + "handlers" : { + "read" : { + "permissions" : [ "appconfig:GetEnvironment", "appconfig:ListTagsForResource" ] }, - "Name" : { - "type" : "string", - "description" : "A name for the environment.", - "minLength" : 1, - "maxLength" : 64 + "create" : { + "permissions" : [ "appconfig:CreateEnvironment", "appconfig:GetEnvironment", "appconfig:ListTagsForResource", "appconfig:TagResource", "iam:PassRole" ] }, - "Description" : { - "type" : "string", - "description" : "A description of the environment.", - "minLength" : 0, - "maxLength" : 1024 + "update" : { + "permissions" : [ "appconfig:UpdateEnvironment", "appconfig:TagResource", "appconfig:UntagResource", "iam:PassRole" ] }, - "Monitors" : { - "type" : "array", - "description" : "Amazon CloudWatch alarms to monitor during the deployment process.", - "insertionOrder" : false, - "items" : { - "$ref" : "#/definitions/Monitor" - }, - "minItems" : 0, - "maxItems" : 5 + "list" : { + "permissions" : [ "appconfig:ListEnvironments" ], + "handlerSchema" : { + "properties" : { + "ApplicationId" : { + "$ref" : "resource-schema.json#/properties/ApplicationId" + } + }, + "required" : [ "ApplicationId" ] + } }, - "Tags" : { - "type" : "array", - "description" : "Metadata to assign to the environment. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.", - "uniqueItems" : true, - "items" : { - "$ref" : "#/definitions/Tag" - }, - "insertionOrder" : false + "delete" : { + "permissions" : [ "appconfig:GetEnvironment", "appconfig:DeleteEnvironment" ] } }, + "typeName" : "AWS::AppConfig::Environment", + "readOnlyProperties" : [ "/properties/EnvironmentId" ], + "description" : "Resource Type definition for AWS::AppConfig::Environment", + "createOnlyProperties" : [ "/properties/ApplicationId" ], + "additionalProperties" : false, + "primaryIdentifier" : [ "/properties/ApplicationId", "/properties/EnvironmentId" ], "definitions" : { "Monitor" : { - "type" : "object", "description" : "Amazon CloudWatch alarm to monitor during the deployment process.", "additionalProperties" : false, + "type" : "object", "properties" : { "AlarmArn" : { - "type" : "string", - "description" : "Amazon Resource Name (ARN) of the Amazon CloudWatch alarm.", + "relationshipRef" : { + "typeName" : "AWS::CloudWatch::Alarm", + "propertyPath" : "/properties/Arn" + }, "minLength" : 1, + "description" : "Amazon Resource Name (ARN) of the Amazon CloudWatch alarm.", + "type" : "string", "maxLength" : 2048 }, "AlarmRoleArn" : { - "type" : "string", - "description" : "ARN of an AWS Identity and Access Management (IAM) role for AWS AppConfig to monitor AlarmArn.", + "relationshipRef" : { + "typeName" : "AWS::IAM::Role", + "propertyPath" : "/properties/Arn" + }, "minLength" : 20, - "maxLength" : 2048, - "pattern" : "^((arn):(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):(iam)::\\d{12}:role[/].*)$" + "pattern" : "^((arn):(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):(iam)::\\d{12}:role[/].*)$", + "description" : "ARN of an AWS Identity and Access Management (IAM) role for AWS AppConfig to monitor AlarmArn.", + "type" : "string", + "maxLength" : 2048 } }, "required" : [ "AlarmArn" ] }, "Tag" : { "description" : "Metadata to assign to the environment. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.", - "type" : "object", "additionalProperties" : false, + "type" : "object", "properties" : { - "Key" : { - "type" : "string", - "description" : "The key-value string map. The valid character set is [a-zA-Z1-9+-=._:/]. The tag key can be up to 128 characters and must not start with aws:.", - "minLength" : 1, - "maxLength" : 128, - "pattern" : "^(?!aws:.)[a-zA-Z1-9+=._:/-]*$" - }, "Value" : { - "type" : "string", - "description" : "The tag value can be up to 256 characters.", "minLength" : 0, + "description" : "The tag value can be up to 256 characters.", + "type" : "string", "maxLength" : 256 + }, + "Key" : { + "minLength" : 1, + "pattern" : "^(?!aws:.)[a-zA-Z1-9+=._:/-]*$", + "description" : "The key-value string map. The valid character set is [a-zA-Z1-9+-=._:/]. The tag key can be up to 128 characters and must not start with aws:.", + "type" : "string", + "maxLength" : 128 } }, "required" : [ "Key", "Value" ] } }, - "required" : [ "Name", "ApplicationId" ], - "readOnlyProperties" : [ "/properties/EnvironmentId" ], - "createOnlyProperties" : [ "/properties/ApplicationId" ], - "primaryIdentifier" : [ "/properties/ApplicationId", "/properties/EnvironmentId" ], - "handlers" : { - "create" : { - "permissions" : [ "appconfig:CreateEnvironment", "appconfig:GetEnvironment", "appconfig:ListTagsForResource", "appconfig:TagResource", "iam:PassRole" ] + "properties" : { + "EnvironmentId" : { + "pattern" : "[a-z0-9]{4,7}", + "description" : "The environment ID.", + "type" : "string" }, - "read" : { - "permissions" : [ "appconfig:GetEnvironment", "appconfig:ListTagsForResource" ] + "Description" : { + "minLength" : 0, + "description" : "A description of the environment.", + "type" : "string", + "maxLength" : 1024 }, - "update" : { - "permissions" : [ "appconfig:UpdateEnvironment", "appconfig:TagResource", "appconfig:UntagResource", "iam:PassRole" ] + "Monitors" : { + "minItems" : 0, + "maxItems" : 5, + "description" : "Amazon CloudWatch alarms to monitor during the deployment process.", + "insertionOrder" : false, + "type" : "array", + "items" : { + "$ref" : "#/definitions/Monitor" + } }, - "delete" : { - "permissions" : [ "appconfig:GetEnvironment", "appconfig:DeleteEnvironment" ] + "ApplicationId" : { + "pattern" : "[a-z0-9]{4,7}", + "description" : "The application ID.", + "type" : "string" }, - "list" : { - "handlerSchema" : { - "properties" : { - "ApplicationId" : { - "$ref" : "resource-schema.json#/properties/ApplicationId" - } - }, - "required" : [ "ApplicationId" ] - }, - "permissions" : [ "appconfig:ListEnvironments" ] + "Tags" : { + "uniqueItems" : true, + "description" : "Metadata to assign to the environment. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.", + "insertionOrder" : false, + "type" : "array", + "items" : { + "$ref" : "#/definitions/Tag" + } + }, + "Name" : { + "minLength" : 1, + "description" : "A name for the environment.", + "type" : "string", + "maxLength" : 64 } }, - "tagging" : { - "taggable" : true, - "tagOnCreate" : true, - "tagUpdatable" : true, - "cloudFormationSystemTags" : true, - "tagProperty" : "/properties/Tags" - } + "required" : [ "Name", "ApplicationId" ] } \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-appconfig-hostedconfigurationversion.json b/aws-cloudformation-schema/aws-appconfig-hostedconfigurationversion.json index f1ab627785..9baf590e5f 100644 --- a/aws-cloudformation-schema/aws-appconfig-hostedconfigurationversion.json +++ b/aws-cloudformation-schema/aws-appconfig-hostedconfigurationversion.json @@ -1,85 +1,85 @@ { + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-appconfig.git", + "tagging" : { + "taggable" : false, + "tagOnCreate" : false, + "tagUpdatable" : false, + "cloudFormationSystemTags" : false + }, + "handlers" : { + "read" : { + "permissions" : [ "appconfig:GetHostedConfigurationVersion" ] + }, + "create" : { + "permissions" : [ "appconfig:CreateHostedConfigurationVersion" ] + }, + "list" : { + "permissions" : [ "appconfig:ListHostedConfigurationVersions" ], + "handlerSchema" : { + "properties" : { + "ConfigurationProfileId" : { + "$ref" : "resource-schema.json#/properties/ConfigurationProfileId" + }, + "ApplicationId" : { + "$ref" : "resource-schema.json#/properties/ApplicationId" + } + }, + "required" : [ "ApplicationId", "ConfigurationProfileId" ] + } + }, + "delete" : { + "permissions" : [ "appconfig:DeleteHostedConfigurationVersion" ] + } + }, "typeName" : "AWS::AppConfig::HostedConfigurationVersion", + "readOnlyProperties" : [ "/properties/VersionNumber" ], "description" : "Resource Type definition for AWS::AppConfig::HostedConfigurationVersion", - "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-appconfig.git", + "writeOnlyProperties" : [ "/properties/LatestVersionNumber" ], + "createOnlyProperties" : [ "/properties/ApplicationId", "/properties/ConfigurationProfileId", "/properties/Description", "/properties/Content", "/properties/ContentType", "/properties/LatestVersionNumber", "/properties/VersionLabel" ], "additionalProperties" : false, + "primaryIdentifier" : [ "/properties/ApplicationId", "/properties/ConfigurationProfileId", "/properties/VersionNumber" ], "properties" : { - "ApplicationId" : { - "type" : "string", - "description" : "The application ID.", - "pattern" : "[a-z0-9]{4,7}" - }, "ConfigurationProfileId" : { - "type" : "string", + "pattern" : "[a-z0-9]{4,7}", "description" : "The configuration profile ID.", - "pattern" : "[a-z0-9]{4,7}" - }, - "VersionNumber" : { - "type" : "string", - "description" : "Current version number of hosted configuration version." + "type" : "string" }, "Description" : { - "type" : "string", - "description" : "A description of the hosted configuration version.", "minLength" : 0, - "maxLength" : 1024 - }, - "Content" : { + "description" : "A description of the hosted configuration version.", "type" : "string", - "description" : "The content of the configuration or the configuration data." + "maxLength" : 1024 }, "ContentType" : { - "type" : "string", - "description" : "A standard MIME type describing the format of the configuration content.", "minLength" : 1, + "description" : "A standard MIME type describing the format of the configuration content.", + "type" : "string", "maxLength" : 255 }, "LatestVersionNumber" : { - "type" : "integer", - "description" : "An optional locking token used to prevent race conditions from overwriting configuration updates when creating a new version. To ensure your data is not overwritten when creating multiple hosted configuration versions in rapid succession, specify the version number of the latest hosted configuration version." + "description" : "An optional locking token used to prevent race conditions from overwriting configuration updates when creating a new version. To ensure your data is not overwritten when creating multiple hosted configuration versions in rapid succession, specify the version number of the latest hosted configuration version.", + "type" : "integer" + }, + "Content" : { + "description" : "The content of the configuration or the configuration data.", + "type" : "string" }, "VersionLabel" : { - "type" : "string", - "description" : "A user-defined label for an AWS AppConfig hosted configuration version.", - "pattern" : "^$|.*[^0-9].*", "minLength" : 0, + "pattern" : "^$|.*[^0-9].*", + "description" : "A user-defined label for an AWS AppConfig hosted configuration version.", + "type" : "string", "maxLength" : 64 - } - }, - "required" : [ "ApplicationId", "ConfigurationProfileId", "Content", "ContentType" ], - "readOnlyProperties" : [ "/properties/VersionNumber" ], - "writeOnlyProperties" : [ "/properties/LatestVersionNumber" ], - "createOnlyProperties" : [ "/properties/ApplicationId", "/properties/ConfigurationProfileId", "/properties/Description", "/properties/Content", "/properties/ContentType", "/properties/LatestVersionNumber", "/properties/VersionLabel" ], - "primaryIdentifier" : [ "/properties/ApplicationId", "/properties/ConfigurationProfileId", "/properties/VersionNumber" ], - "handlers" : { - "create" : { - "permissions" : [ "appconfig:CreateHostedConfigurationVersion" ] }, - "read" : { - "permissions" : [ "appconfig:GetHostedConfigurationVersion" ] - }, - "delete" : { - "permissions" : [ "appconfig:DeleteHostedConfigurationVersion" ] + "ApplicationId" : { + "pattern" : "[a-z0-9]{4,7}", + "description" : "The application ID.", + "type" : "string" }, - "list" : { - "handlerSchema" : { - "properties" : { - "ApplicationId" : { - "$ref" : "resource-schema.json#/properties/ApplicationId" - }, - "ConfigurationProfileId" : { - "$ref" : "resource-schema.json#/properties/ConfigurationProfileId" - } - }, - "required" : [ "ApplicationId", "ConfigurationProfileId" ] - }, - "permissions" : [ "appconfig:ListHostedConfigurationVersions" ] + "VersionNumber" : { + "description" : "Current version number of hosted configuration version.", + "type" : "string" } }, - "tagging" : { - "taggable" : false, - "tagOnCreate" : false, - "tagUpdatable" : false, - "cloudFormationSystemTags" : false - } + "required" : [ "ApplicationId", "ConfigurationProfileId", "Content", "ContentType" ] } \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-appintegrations-application.json b/aws-cloudformation-schema/aws-appintegrations-application.json new file mode 100644 index 0000000000..717898f428 --- /dev/null +++ b/aws-cloudformation-schema/aws-appintegrations-application.json @@ -0,0 +1,139 @@ +{ + "typeName" : "AWS::AppIntegrations::Application", + "description" : "Resource Type definition for AWS:AppIntegrations::Application", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions" : { + "Tag" : { + "description" : "A label for tagging Application resources", + "type" : "object", + "properties" : { + "Key" : { + "description" : "A key to identify the tag.", + "type" : "string", + "pattern" : "^(?!aws:)[a-zA-Z+-=._:/]+$", + "minLength" : 1, + "maxLength" : 128 + }, + "Value" : { + "description" : "Corresponding tag value for the key.", + "type" : "string", + "minLength" : 0, + "maxLength" : 256 + } + }, + "additionalProperties" : false, + "required" : [ "Key", "Value" ] + }, + "ExternalUrlConfig" : { + "type" : "object", + "additionalProperties" : false, + "required" : [ "AccessUrl", "ApprovedOrigins" ], + "properties" : { + "AccessUrl" : { + "type" : "string", + "pattern" : "^\\w+\\:\\/\\/.*$", + "minLength" : 1, + "maxLength" : 1000 + }, + "ApprovedOrigins" : { + "type" : "array", + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/ApprovedOrigins" + }, + "minItems" : 0, + "maxItems" : 50 + } + } + }, + "ApprovedOrigins" : { + "type" : "string", + "pattern" : "^\\w+\\:\\/\\/.*$", + "minLength" : 1, + "maxLength" : 1000 + } + }, + "properties" : { + "Name" : { + "description" : "The name of the application.", + "type" : "string", + "pattern" : "^[a-zA-Z0-9/\\._\\-]+$", + "minLength" : 1, + "maxLength" : 255 + }, + "Id" : { + "description" : "The id of the application.", + "type" : "string", + "pattern" : "^[a-zA-Z0-9/\\._\\-]+$", + "minLength" : 1, + "maxLength" : 255 + }, + "Namespace" : { + "description" : "The namespace of the application.", + "type" : "string", + "pattern" : "^[a-zA-Z0-9/\\._\\-]+$", + "minLength" : 1, + "maxLength" : 255 + }, + "Description" : { + "description" : "The application description.", + "type" : "string", + "minLength" : 1, + "maxLength" : 1000 + }, + "ApplicationArn" : { + "description" : "The Amazon Resource Name (ARN) of the application.", + "type" : "string", + "minLength" : 1, + "maxLength" : 2048 + }, + "ApplicationSourceConfig" : { + "description" : "Application source config", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "ExternalUrlConfig" : { + "$ref" : "#/definitions/ExternalUrlConfig" + } + }, + "required" : [ "ExternalUrlConfig" ] + }, + "Tags" : { + "description" : "The tags (keys and values) associated with the application.", + "type" : "array", + "items" : { + "$ref" : "#/definitions/Tag" + }, + "minItems" : 0, + "maxItems" : 200 + } + }, + "additionalProperties" : false, + "required" : [ "Name", "Description", "ApplicationSourceConfig" ], + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : true, + "tagProperty" : "/properties/Tags" + }, + "readOnlyProperties" : [ "/properties/ApplicationArn", "/properties/Id" ], + "primaryIdentifier" : [ "/properties/ApplicationArn" ], + "handlers" : { + "create" : { + "permissions" : [ "app-integrations:CreateApplication", "app-integrations:TagResource" ] + }, + "read" : { + "permissions" : [ "app-integrations:GetApplication" ] + }, + "list" : { + "permissions" : [ "app-integrations:ListApplications", "app-integrations:ListTagsForResource" ] + }, + "update" : { + "permissions" : [ "app-integrations:GetApplication", "app-integrations:UpdateApplication", "app-integrations:TagResource", "app-integrations:UntagResource" ] + }, + "delete" : { + "permissions" : [ "app-integrations:DeleteApplication" ] + } + } +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-appintegrations-eventintegration.json b/aws-cloudformation-schema/aws-appintegrations-eventintegration.json index 8ac0588e4c..48cbfe8334 100644 --- a/aws-cloudformation-schema/aws-appintegrations-eventintegration.json +++ b/aws-cloudformation-schema/aws-appintegrations-eventintegration.json @@ -101,6 +101,13 @@ "maxItems" : 200 } }, + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : true, + "tagProperty" : "/properties/Tags" + }, "additionalProperties" : false, "required" : [ "Name", "EventBridgeBus", "EventFilter" ], "readOnlyProperties" : [ "/properties/EventIntegrationArn" ], diff --git a/aws-cloudformation-schema/aws-appsync-resolver.json b/aws-cloudformation-schema/aws-appsync-resolver.json index c649a2b759..7320a15061 100644 --- a/aws-cloudformation-schema/aws-appsync-resolver.json +++ b/aws-cloudformation-schema/aws-appsync-resolver.json @@ -159,7 +159,7 @@ }, "MetricsConfig" : { "type" : "string", - "description" : "", + "description" : "Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value.", "enum" : [ "ENABLED", "DISABLED" ] } }, diff --git a/aws-cloudformation-schema/aws-aps-scraper.json b/aws-cloudformation-schema/aws-aps-scraper.json new file mode 100644 index 0000000000..9549d3db1b --- /dev/null +++ b/aws-cloudformation-schema/aws-aps-scraper.json @@ -0,0 +1,188 @@ +{ + "typeName" : "AWS::APS::Scraper", + "description" : "Resource Type definition for AWS::APS::Scraper", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-aps", + "definitions" : { + "Tag" : { + "description" : "A key-value pair to associate with a resource.", + "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 -.", + "minLength" : 1, + "maxLength" : 128 + }, + "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 -.", + "minLength" : 0, + "maxLength" : 256 + } + }, + "required" : [ "Key", "Value" ], + "additionalProperties" : false + }, + "ScrapeConfiguration" : { + "description" : "Scraper configuration", + "type" : "object", + "properties" : { + "ConfigurationBlob" : { + "description" : "Prometheus compatible scrape configuration in base64 encoded blob format", + "type" : "string" + } + }, + "oneOf" : [ { + "required" : [ "ConfigurationBlob" ] + } ], + "additionalProperties" : false + }, + "Source" : { + "description" : "Scraper metrics source", + "type" : "object", + "properties" : { + "EksConfiguration" : { + "description" : "Configuration for EKS metrics source", + "type" : "object", + "properties" : { + "ClusterArn" : { + "description" : "ARN of an EKS cluster", + "type" : "string", + "pattern" : "^arn:aws[-a-z]*:eks:[-a-z0-9]+:[0-9]{12}:cluster/.+$" + }, + "SecurityGroupIds" : { + "description" : "List of security group IDs", + "type" : "array", + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/SecurityGroupId" + } + }, + "SubnetIds" : { + "description" : "List of subnet IDs", + "type" : "array", + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/SubnetId" + } + } + }, + "required" : [ "ClusterArn", "SubnetIds" ], + "additionalProperties" : false + } + }, + "oneOf" : [ { + "required" : [ "EksConfiguration" ] + } ], + "additionalProperties" : false + }, + "Destination" : { + "description" : "Scraper metrics destination", + "type" : "object", + "properties" : { + "AmpConfiguration" : { + "description" : "Configuration for Amazon Managed Prometheus metrics destination", + "type" : "object", + "properties" : { + "WorkspaceArn" : { + "description" : "ARN of an Amazon Managed Prometheus workspace", + "type" : "string", + "pattern" : "^arn:aws[-a-z]*:aps:[-a-z0-9]+:[0-9]{12}:workspace/.+$" + } + }, + "required" : [ "WorkspaceArn" ], + "additionalProperties" : false + } + }, + "oneOf" : [ { + "required" : [ "AmpConfiguration" ] + } ], + "additionalProperties" : false + }, + "SecurityGroupId" : { + "description" : "ID of a security group", + "type" : "string", + "pattern" : "^sg-[0-9a-z]+$" + }, + "SubnetId" : { + "description" : "ID of a subnet", + "type" : "string", + "pattern" : "^subnet-[0-9a-z]+$" + } + }, + "properties" : { + "ScraperId" : { + "description" : "Required to identify a specific scraper.", + "type" : "string", + "pattern" : "^s-[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$", + "minLength" : 1, + "maxLength" : 64 + }, + "Alias" : { + "description" : "Scraper alias.", + "type" : "string", + "pattern" : "^[0-9A-Za-z][-.0-9A-Z_a-z]*$", + "minLength" : 1, + "maxLength" : 100 + }, + "Arn" : { + "description" : "Scraper ARN.", + "type" : "string", + "pattern" : "^arn:(aws|aws-us-gov|aws-cn):aps:(af|ap|ca|eu|me|sa|us)-(central|north|(north(?:east|west))|south|south(?:east|west)|east|west)-[0-9]+:[0-9]+:scraper/s-[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}$" + }, + "RoleArn" : { + "description" : "IAM role ARN for the scraper.", + "type" : "string", + "pattern" : "^arn:(aws|aws-us-gov|aws-cn):iam::[0-9]{12}:role/[a-zA-Z0-9-]+$", + "minLength" : 20, + "maxLength" : 2048 + }, + "ScrapeConfiguration" : { + "$ref" : "#/definitions/ScrapeConfiguration" + }, + "Source" : { + "$ref" : "#/definitions/Source" + }, + "Destination" : { + "$ref" : "#/definitions/Destination" + }, + "Tags" : { + "description" : "An array of key-value pairs to apply to this resource.", + "type" : "array", + "uniqueItems" : true, + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/Tag" + } + } + }, + "additionalProperties" : false, + "required" : [ "ScrapeConfiguration", "Source", "Destination" ], + "readOnlyProperties" : [ "/properties/ScraperId", "/properties/Arn", "/properties/RoleArn" ], + "createOnlyProperties" : [ "/properties/ScrapeConfiguration", "/properties/Source", "/properties/Destination", "/properties/Alias" ], + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : true, + "tagProperty" : "/properties/Tags" + }, + "primaryIdentifier" : [ "/properties/Arn" ], + "handlers" : { + "create" : { + "permissions" : [ "aps:CreateScraper", "aps:DescribeScraper", "aps:DescribeWorkspace", "aps:TagResource", "eks:CreateAccessEntry", "eks:AssociateAccessPolicy", "eks:DescribeCluster", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "iam:CreateServiceLinkedRole" ] + }, + "read" : { + "permissions" : [ "aps:DescribeScraper", "aps:ListTagsForResource" ] + }, + "update" : { + "permissions" : [ "aps:DescribeScraper", "aps:TagResource", "aps:UntagResource", "aps:ListTagsForResource" ] + }, + "delete" : { + "permissions" : [ "aps:DeleteScraper", "aps:DescribeScraper", "aps:DescribeWorkspace", "eks:AssociateAccessPolicy", "eks:DescribeCluster", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "iam:DeleteServiceLinkedRole" ] + }, + "list" : { + "permissions" : [ "aps:ListScrapers", "aps:ListTagsForResource" ] + } + } +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-bcmdataexports-export.json b/aws-cloudformation-schema/aws-bcmdataexports-export.json new file mode 100644 index 0000000000..fd4ce322cc --- /dev/null +++ b/aws-cloudformation-schema/aws-bcmdataexports-export.json @@ -0,0 +1,230 @@ +{ + "typeName" : "AWS::BCMDataExports::Export", + "description" : "Definition of AWS::BCMDataExports::Export Resource Type", + "definitions" : { + "CompressionOption" : { + "type" : "string", + "enum" : [ "GZIP", "PARQUET" ] + }, + "DataQuery" : { + "type" : "object", + "properties" : { + "QueryStatement" : { + "type" : "string", + "maxLength" : 36000, + "minLength" : 1, + "pattern" : "^[\\S\\s]*$" + }, + "TableConfigurations" : { + "$ref" : "#/definitions/TableConfigurations" + } + }, + "required" : [ "QueryStatement" ], + "additionalProperties" : false + }, + "DestinationConfigurations" : { + "type" : "object", + "properties" : { + "S3Destination" : { + "$ref" : "#/definitions/S3Destination" + } + }, + "required" : [ "S3Destination" ], + "additionalProperties" : false + }, + "Export" : { + "type" : "object", + "properties" : { + "ExportArn" : { + "type" : "string", + "maxLength" : 2048, + "minLength" : 20, + "pattern" : "^arn:aws[-a-z0-9]*:[-a-z0-9]+:[-a-z0-9]*:[0-9]{12}:[-a-zA-Z0-9/:_]+$" + }, + "Name" : { + "type" : "string", + "maxLength" : 128, + "minLength" : 1, + "pattern" : "^[0-9A-Za-z\\-_]+$" + }, + "Description" : { + "type" : "string", + "maxLength" : 1024, + "minLength" : 0, + "pattern" : "^[\\S\\s]*$" + }, + "DataQuery" : { + "$ref" : "#/definitions/DataQuery" + }, + "DestinationConfigurations" : { + "$ref" : "#/definitions/DestinationConfigurations" + }, + "RefreshCadence" : { + "$ref" : "#/definitions/RefreshCadence" + } + }, + "required" : [ "DataQuery", "DestinationConfigurations", "Name", "RefreshCadence" ], + "additionalProperties" : false + }, + "FormatOption" : { + "type" : "string", + "enum" : [ "TEXT_OR_CSV", "PARQUET" ] + }, + "FrequencyOption" : { + "type" : "string", + "enum" : [ "SYNCHRONOUS" ] + }, + "OverwriteOption" : { + "type" : "string", + "enum" : [ "CREATE_NEW_REPORT", "OVERWRITE_REPORT" ] + }, + "RefreshCadence" : { + "type" : "object", + "properties" : { + "Frequency" : { + "$ref" : "#/definitions/FrequencyOption" + } + }, + "required" : [ "Frequency" ], + "additionalProperties" : false + }, + "ResourceTag" : { + "type" : "object", + "properties" : { + "Key" : { + "type" : "string", + "maxLength" : 128, + "minLength" : 1 + }, + "Value" : { + "type" : "string", + "maxLength" : 256, + "minLength" : 0 + } + }, + "required" : [ "Key", "Value" ], + "additionalProperties" : false + }, + "S3Destination" : { + "type" : "object", + "properties" : { + "S3Bucket" : { + "type" : "string", + "maxLength" : 1024, + "minLength" : 0, + "pattern" : "^[\\S\\s]*$" + }, + "S3Prefix" : { + "type" : "string", + "maxLength" : 1024, + "minLength" : 0, + "pattern" : "^[\\S\\s]*$" + }, + "S3Region" : { + "type" : "string", + "maxLength" : 1024, + "minLength" : 0, + "pattern" : "^[\\S\\s]*$" + }, + "S3OutputConfigurations" : { + "$ref" : "#/definitions/S3OutputConfigurations" + } + }, + "required" : [ "S3Bucket", "S3OutputConfigurations", "S3Prefix", "S3Region" ], + "additionalProperties" : false + }, + "S3OutputConfigurations" : { + "type" : "object", + "properties" : { + "OutputType" : { + "$ref" : "#/definitions/S3OutputType" + }, + "Format" : { + "$ref" : "#/definitions/FormatOption" + }, + "Compression" : { + "$ref" : "#/definitions/CompressionOption" + }, + "Overwrite" : { + "$ref" : "#/definitions/OverwriteOption" + } + }, + "required" : [ "Compression", "Format", "OutputType", "Overwrite" ], + "additionalProperties" : false + }, + "S3OutputType" : { + "type" : "string", + "enum" : [ "CUSTOM" ] + }, + "TableConfigurations" : { + "type" : "object", + "patternProperties" : { + "^[\\S\\s]*$" : { + "$ref" : "#/definitions/TableProperties" + } + }, + "additionalProperties" : false + }, + "TableProperties" : { + "type" : "object", + "patternProperties" : { + "^[\\S\\s]*$" : { + "type" : "string", + "maxLength" : 1024, + "minLength" : 0, + "pattern" : "^[\\S\\s]*$" + } + }, + "additionalProperties" : false + } + }, + "properties" : { + "Export" : { + "$ref" : "#/definitions/Export" + }, + "ExportArn" : { + "type" : "string", + "maxLength" : 2048, + "minLength" : 20, + "pattern" : "^arn:aws[-a-z0-9]*:[-a-z0-9]+:[-a-z0-9]*:[0-9]{12}:[-a-zA-Z0-9/:_]+$" + }, + "Tags" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/ResourceTag" + }, + "maxItems" : 200, + "minItems" : 0 + } + }, + "required" : [ "Export" ], + "readOnlyProperties" : [ "/properties/ExportArn" ], + "primaryIdentifier" : [ "/properties/ExportArn" ], + "createOnlyProperties" : [ "/properties/Export/Name", "/properties/Export/DataQuery/TableConfigurations", "/properties/Export/RefreshCadence" ], + "documentationUrl" : "https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DataExports_CreateExport.html#API_DataExports_CreateExport_RequestSyntax", + "handlers" : { + "create" : { + "permissions" : [ "bcm-data-exports:CreateExport", "bcm-data-exports:GetExport", "bcm-data-exports:ListTagsForResource", "bcm-data-exports:TagResource", "cur:PutReportDefinition" ] + }, + "read" : { + "permissions" : [ "bcm-data-exports:GetExport", "bcm-data-exports:ListTagsForResource" ] + }, + "update" : { + "permissions" : [ "bcm-data-exports:UpdateExport", "bcm-data-exports:TagResource", "bcm-data-exports:UntagResource", "bcm-data-exports:GetExport", "bcm-data-exports:ListTagsForResource" ] + }, + "delete" : { + "permissions" : [ "bcm-data-exports:DeleteExport" ] + }, + "list" : { + "permissions" : [ "bcm-data-exports:ListExports" ] + } + }, + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : false, + "tagProperty" : "/properties/Tags" + }, + "additionalProperties" : false +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-bedrock-agent.json b/aws-cloudformation-schema/aws-bedrock-agent.json new file mode 100644 index 0000000000..088d5c4c87 --- /dev/null +++ b/aws-cloudformation-schema/aws-bedrock-agent.json @@ -0,0 +1,429 @@ +{ + "typeName" : "AWS::Bedrock::Agent", + "description" : "Definition of AWS::Bedrock::Agent Resource Type", + "definitions" : { + "APISchema" : { + "description" : "Contains information about the API Schema for the Action Group", + "oneOf" : [ { + "type" : "object", + "title" : "S3", + "properties" : { + "S3" : { + "$ref" : "#/definitions/S3Identifier" + } + }, + "required" : [ "S3" ], + "additionalProperties" : false + }, { + "type" : "object", + "title" : "Payload", + "properties" : { + "Payload" : { + "type" : "string", + "description" : "String OpenAPI Payload" + } + }, + "required" : [ "Payload" ], + "additionalProperties" : false + } ] + }, + "ActionGroupExecutor" : { + "type" : "object", + "title" : "Lambda", + "properties" : { + "Lambda" : { + "type" : "string", + "maxLength" : 2048, + "pattern" : "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "description" : "ARN of a Lambda." + } + }, + "required" : [ "Lambda" ], + "additionalProperties" : false + }, + "ActionGroupSignature" : { + "type" : "string", + "description" : "Action Group Signature for a BuiltIn Action", + "enum" : [ "AMAZON.UserInput" ] + }, + "ActionGroupState" : { + "type" : "string", + "description" : "State of the action group", + "enum" : [ "ENABLED", "DISABLED" ] + }, + "AgentActionGroup" : { + "type" : "object", + "description" : "Contains the information of an Agent Action Group", + "properties" : { + "ActionGroupName" : { + "type" : "string", + "pattern" : "^([0-9a-zA-Z][_-]?){1,100}$", + "description" : "Name of the action group" + }, + "Description" : { + "type" : "string", + "maxLength" : 200, + "minLength" : 1, + "description" : "Description of action group" + }, + "ParentActionGroupSignature" : { + "$ref" : "#/definitions/ActionGroupSignature" + }, + "ActionGroupExecutor" : { + "$ref" : "#/definitions/ActionGroupExecutor" + }, + "ApiSchema" : { + "$ref" : "#/definitions/APISchema" + }, + "ActionGroupState" : { + "$ref" : "#/definitions/ActionGroupState" + }, + "SkipResourceInUseCheckOnDelete" : { + "description" : "Specifies whether to allow deleting action group while it is in use.", + "type" : "boolean", + "default" : false + } + }, + "required" : [ "ActionGroupName" ], + "additionalProperties" : false + }, + "AgentKnowledgeBase" : { + "type" : "object", + "description" : "Agent Knowledge Base", + "properties" : { + "KnowledgeBaseId" : { + "type" : "string", + "pattern" : "^[0-9a-zA-Z]{10}$", + "description" : "Identifier for a resource." + }, + "Description" : { + "type" : "string", + "maxLength" : 200, + "minLength" : 1, + "description" : "Description of the Resource." + }, + "KnowledgeBaseState" : { + "$ref" : "#/definitions/KnowledgeBaseState" + } + }, + "required" : [ "KnowledgeBaseId", "Description" ], + "additionalProperties" : false + }, + "AgentStatus" : { + "type" : "string", + "description" : "Schema Type for Action APIs.", + "enum" : [ "CREATING", "PREPARING", "PREPARED", "NOT_PREPARED", "DELETING", "FAILED", "VERSIONING", "UPDATING" ] + }, + "CreationMode" : { + "type" : "string", + "description" : "Creation Mode for Prompt Configuration.", + "enum" : [ "DEFAULT", "OVERRIDDEN" ] + }, + "InferenceConfiguration" : { + "type" : "object", + "description" : "Configuration for inference in prompt configuration", + "properties" : { + "Temperature" : { + "type" : "number", + "maximum" : 1, + "minimum" : 0, + "description" : "Controls randomness, higher values increase diversity" + }, + "TopP" : { + "type" : "number", + "maximum" : 1, + "minimum" : 0, + "description" : "Cumulative probability cutoff for token selection" + }, + "TopK" : { + "type" : "number", + "maximum" : 500, + "minimum" : 0, + "description" : "Sample from the k most likely next tokens" + }, + "MaximumLength" : { + "type" : "number", + "maximum" : 4096, + "minimum" : 0, + "description" : "Maximum length of output" + }, + "StopSequences" : { + "type" : "array", + "items" : { + "type" : "string" + }, + "maxItems" : 4, + "minItems" : 0, + "description" : "List of stop sequences", + "insertionOrder" : false + } + }, + "additionalProperties" : false + }, + "KnowledgeBaseState" : { + "type" : "string", + "description" : "State of the knowledge base; whether it is enabled or disabled", + "enum" : [ "ENABLED", "DISABLED" ] + }, + "PromptConfiguration" : { + "type" : "object", + "description" : "BasePromptConfiguration per Prompt Type.", + "properties" : { + "PromptType" : { + "$ref" : "#/definitions/PromptType" + }, + "PromptCreationMode" : { + "$ref" : "#/definitions/CreationMode" + }, + "PromptState" : { + "$ref" : "#/definitions/PromptState" + }, + "BasePromptTemplate" : { + "type" : "string", + "maxLength" : 100000, + "minLength" : 1, + "description" : "Base Prompt Template." + }, + "InferenceConfiguration" : { + "$ref" : "#/definitions/InferenceConfiguration" + }, + "ParserMode" : { + "$ref" : "#/definitions/CreationMode" + } + }, + "additionalProperties" : false + }, + "PromptOverrideConfiguration" : { + "type" : "object", + "description" : "Configuration for prompt override.", + "properties" : { + "PromptConfigurations" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/PromptConfiguration" + }, + "maxItems" : 10, + "description" : "List of BasePromptConfiguration", + "insertionOrder" : false + }, + "OverrideLambda" : { + "type" : "string", + "maxLength" : 2048, + "pattern" : "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}(-gov)?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_\\.]+(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", + "description" : "ARN of a Lambda." + } + }, + "required" : [ "PromptConfigurations" ], + "additionalProperties" : false + }, + "PromptState" : { + "type" : "string", + "description" : "Prompt State.", + "enum" : [ "ENABLED", "DISABLED" ] + }, + "PromptType" : { + "type" : "string", + "description" : "Prompt Type.", + "enum" : [ "PRE_PROCESSING", "ORCHESTRATION", "POST_PROCESSING", "KNOWLEDGE_BASE_RESPONSE_GENERATION" ] + }, + "S3Identifier" : { + "type" : "object", + "description" : "The identifier for the S3 resource.", + "properties" : { + "S3BucketName" : { + "type" : "string", + "maxLength" : 63, + "minLength" : 3, + "pattern" : "^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$", + "description" : "A bucket in S3." + }, + "S3ObjectKey" : { + "type" : "string", + "maxLength" : 1024, + "minLength" : 1, + "pattern" : "^[\\.\\-\\!\\*\\_\\'\\(\\)a-zA-Z0-9][\\.\\-\\!\\*\\_\\'\\(\\)\\/a-zA-Z0-9]*$", + "description" : "A object key in S3." + } + }, + "additionalProperties" : false + }, + "TagsMap" : { + "type" : "object", + "description" : "A map of tag keys and values", + "patternProperties" : { + "^[a-zA-Z0-9\\s._:/=+@-]*$" : { + "type" : "string", + "maxLength" : 256, + "minLength" : 0, + "pattern" : "^[a-zA-Z0-9\\s._:/=+@-]*$", + "description" : "Value of a tag" + } + }, + "additionalProperties" : false + } + }, + "properties" : { + "ActionGroups" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/AgentActionGroup" + }, + "description" : "List of ActionGroups", + "insertionOrder" : false + }, + "AgentArn" : { + "type" : "string", + "maxLength" : 2048, + "pattern" : "^arn:aws(|-cn|-us-gov):bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent/[0-9a-zA-Z]{10}$", + "description" : "Arn representation of the Agent." + }, + "AgentId" : { + "type" : "string", + "pattern" : "^[0-9a-zA-Z]{10}$", + "description" : "Identifier for a resource." + }, + "AgentName" : { + "type" : "string", + "pattern" : "^([0-9a-zA-Z][_-]?){1,100}$", + "description" : "Name for a resource." + }, + "AgentResourceRoleArn" : { + "type" : "string", + "maxLength" : 2048, + "pattern" : "^arn:aws(-[^:]+)?:iam::([0-9]{12})?:role/(service-role/)?AmazonBedrockExecutionRoleForAgents.+$", + "description" : "ARN of a IAM role." + }, + "AgentStatus" : { + "$ref" : "#/definitions/AgentStatus" + }, + "AgentVersion" : { + "type" : "string", + "maxLength" : 5, + "minLength" : 5, + "pattern" : "^DRAFT$", + "description" : "Draft Agent Version." + }, + "AutoPrepare" : { + "description" : "Specifies whether to automatically prepare after creating or updating the agent.", + "type" : "boolean", + "default" : false + }, + "CreatedAt" : { + "type" : "string", + "description" : "Time Stamp.", + "format" : "date-time" + }, + "CustomerEncryptionKeyArn" : { + "type" : "string", + "maxLength" : 2048, + "minLength" : 1, + "pattern" : "^arn:aws(|-cn|-us-gov):kms:[a-zA-Z0-9-]*:[0-9]{12}:key/[a-zA-Z0-9-]{36}$", + "description" : "A KMS key ARN" + }, + "SkipResourceInUseCheckOnDelete" : { + "description" : "Specifies whether to allow deleting agent while it is in use.", + "type" : "boolean", + "default" : false + }, + "Description" : { + "type" : "string", + "maxLength" : 200, + "minLength" : 1, + "description" : "Description of the Resource." + }, + "FailureReasons" : { + "type" : "array", + "items" : { + "type" : "string", + "maxLength" : 2048, + "description" : "Failure Reason for Error." + }, + "maxItems" : 2048, + "description" : "Failure Reasons for Error.", + "insertionOrder" : false + }, + "FoundationModel" : { + "type" : "string", + "maxLength" : 2048, + "minLength" : 1, + "pattern" : "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}(([:][a-z0-9-]{1,63}){0,2})?/[a-z0-9]{12})|(:foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})))|(([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2}))|(([0-9a-zA-Z][_-]?)+)$", + "description" : "ARN or name of a Bedrock model." + }, + "IdleSessionTTLInSeconds" : { + "type" : "number", + "maximum" : 3600, + "minimum" : 60, + "description" : "Max Session Time." + }, + "Instruction" : { + "type" : "string", + "maxLength" : 1200, + "minLength" : 40, + "description" : "Instruction for the agent." + }, + "KnowledgeBases" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/AgentKnowledgeBase" + }, + "description" : "List of Agent Knowledge Bases", + "insertionOrder" : false + }, + "PreparedAt" : { + "type" : "string", + "description" : "Time Stamp.", + "format" : "date-time" + }, + "PromptOverrideConfiguration" : { + "$ref" : "#/definitions/PromptOverrideConfiguration" + }, + "RecommendedActions" : { + "type" : "array", + "items" : { + "type" : "string", + "maxLength" : 2048, + "description" : "The recommended action users can take to resolve an error in failureReasons." + }, + "maxItems" : 2048, + "description" : "The recommended actions users can take to resolve an error in failureReasons.", + "insertionOrder" : false + }, + "Tags" : { + "$ref" : "#/definitions/TagsMap" + }, + "UpdatedAt" : { + "type" : "string", + "description" : "Time Stamp.", + "format" : "date-time" + } + }, + "required" : [ "AgentName" ], + "readOnlyProperties" : [ "/properties/AgentArn", "/properties/AgentId", "/properties/AgentStatus", "/properties/AgentVersion", "/properties/CreatedAt", "/properties/FailureReasons", "/properties/PreparedAt", "/properties/RecommendedActions", "/properties/UpdatedAt" ], + "writeOnlyProperties" : [ "/properties/AutoPrepare", "/properties/SkipResourceInUseCheckOnDelete", "/properties/ActionGroups/*/SkipResourceInUseCheckOnDelete" ], + "primaryIdentifier" : [ "/properties/AgentId" ], + "handlers" : { + "create" : { + "permissions" : [ "bedrock:CreateAgent", "bedrock:GetAgent", "bedrock:PrepareAgent", "bedrock:GetAgentKnowledgeBase", "bedrock:AssociateAgentKnowledgeBase", "bedrock:ListAgentKnowledgeBases", "bedrock:CreateAgentActionGroup", "bedrock:GetAgentActionGroup", "bedrock:ListAgentActionGroups", "bedrock:TagResource", "bedrock:ListTagsForResource", "iam:PassRole" ] + }, + "read" : { + "permissions" : [ "bedrock:GetAgent", "bedrock:GetAgentActionGroup", "bedrock:ListAgentActionGroups", "bedrock:GetAgentKnowledgeBase", "bedrock:ListAgentKnowledgeBases", "bedrock:ListTagsForResource" ] + }, + "update" : { + "permissions" : [ "bedrock:GetAgent", "bedrock:UpdateAgent", "bedrock:PrepareAgent", "bedrock:GetAgentKnowledgeBase", "bedrock:UpdateAgentKnowledgeBase", "bedrock:AssociateAgentKnowledgeBase", "bedrock:DisassociateAgentKnowledgeBase", "bedrock:ListAgentKnowledgeBases", "bedrock:CreateAgentActionGroup", "bedrock:GetAgentActionGroup", "bedrock:UpdateAgentActionGroup", "bedrock:DeleteAgentActionGroup", "bedrock:ListAgentActionGroups", "bedrock:TagResource", "bedrock:UntagResource", "bedrock:ListTagsForResource", "iam:PassRole" ] + }, + "delete" : { + "permissions" : [ "bedrock:GetAgent", "bedrock:DeleteAgent" ] + }, + "list" : { + "permissions" : [ "bedrock:ListAgents" ] + } + }, + "tagging" : { + "cloudFormationSystemTags" : true, + "tagOnCreate" : true, + "tagProperty" : "/properties/Tags", + "tagUpdatable" : true, + "taggable" : true + }, + "additionalProperties" : false +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-bedrock-agentalias.json b/aws-cloudformation-schema/aws-bedrock-agentalias.json new file mode 100644 index 0000000000..c832371269 --- /dev/null +++ b/aws-cloudformation-schema/aws-bedrock-agentalias.json @@ -0,0 +1,166 @@ +{ + "typeName" : "AWS::Bedrock::AgentAlias", + "description" : "Definition of AWS::Bedrock::AgentAlias Resource Type", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-agents", + "definitions" : { + "AgentAliasHistoryEvent" : { + "type" : "object", + "description" : "History event for an alias for an Agent.", + "properties" : { + "RoutingConfiguration" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/AgentAliasRoutingConfigurationListItem" + }, + "maxItems" : 1, + "description" : "Routing configuration for an Agent alias.", + "insertionOrder" : false + }, + "EndDate" : { + "type" : "string", + "description" : "Time Stamp." + }, + "StartDate" : { + "type" : "string", + "description" : "Time Stamp." + } + }, + "additionalProperties" : false + }, + "AgentAliasRoutingConfigurationListItem" : { + "type" : "object", + "description" : "Details about the routing configuration for an Agent alias.", + "properties" : { + "AgentVersion" : { + "type" : "string", + "maxLength" : 5, + "minLength" : 1, + "pattern" : "^(DRAFT|[0-9]{0,4}[1-9][0-9]{0,4})$", + "description" : "Agent Version." + } + }, + "required" : [ "AgentVersion" ], + "additionalProperties" : false + }, + "AgentAliasStatus" : { + "type" : "string", + "description" : "The statuses an Agent Alias can be in.", + "enum" : [ "CREATING", "PREPARED", "FAILED", "UPDATING", "DELETING" ] + }, + "TagsMap" : { + "type" : "object", + "description" : "A map of tag keys and values", + "patternProperties" : { + "^[a-zA-Z0-9\\s._:/=+@-]*$" : { + "type" : "string", + "maxLength" : 256, + "minLength" : 0, + "pattern" : "^[a-zA-Z0-9\\s._:/=+@-]*$", + "description" : "Value of a tag" + } + }, + "additionalProperties" : false + } + }, + "properties" : { + "AgentAliasArn" : { + "type" : "string", + "maxLength" : 2048, + "pattern" : "^arn:aws(|-cn|-us-gov):bedrock:[a-z0-9-]{1,20}:[0-9]{12}:agent-alias/[0-9a-zA-Z]{10}/[0-9a-zA-Z]{10}$", + "description" : "Arn representation of the Agent Alias." + }, + "AgentAliasHistoryEvents" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/AgentAliasHistoryEvent" + }, + "maxItems" : 10, + "description" : "The list of history events for an alias for an Agent.", + "insertionOrder" : false + }, + "AgentAliasId" : { + "type" : "string", + "maxLength" : 10, + "minLength" : 10, + "pattern" : "^(\\bTSTALIASID\\b|[0-9a-zA-Z]+)$", + "description" : "Id for an Agent Alias generated at the server side." + }, + "AgentAliasName" : { + "type" : "string", + "pattern" : "^([0-9a-zA-Z][_-]?){1,100}$", + "description" : "Name for a resource." + }, + "AgentAliasStatus" : { + "$ref" : "#/definitions/AgentAliasStatus" + }, + "AgentId" : { + "type" : "string", + "pattern" : "^[0-9a-zA-Z]{10}$", + "description" : "Identifier for a resource." + }, + "CreatedAt" : { + "type" : "string", + "description" : "Time Stamp." + }, + "Description" : { + "type" : "string", + "maxLength" : 200, + "minLength" : 1, + "description" : "Description of the Resource." + }, + "RoutingConfiguration" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/AgentAliasRoutingConfigurationListItem" + }, + "maxItems" : 1, + "description" : "Routing configuration for an Agent alias.", + "insertionOrder" : false + }, + "Tags" : { + "$ref" : "#/definitions/TagsMap" + }, + "UpdatedAt" : { + "type" : "string", + "description" : "Time Stamp." + } + }, + "required" : [ "AgentAliasName", "AgentId" ], + "readOnlyProperties" : [ "/properties/AgentAliasArn", "/properties/AgentAliasHistoryEvents", "/properties/AgentAliasId", "/properties/AgentAliasStatus", "/properties/CreatedAt", "/properties/UpdatedAt" ], + "createOnlyProperties" : [ "/properties/AgentId" ], + "primaryIdentifier" : [ "/properties/AgentId", "/properties/AgentAliasId" ], + "additionalIdentifiers" : [ [ "/properties/AgentAliasArn" ] ], + "handlers" : { + "create" : { + "permissions" : [ "bedrock:PrepareAgent", "bedrock:GetAgent", "bedrock:CreateAgentAlias", "bedrock:TagResource", "bedrock:GetAgentAlias", "bedrock:ListTagsForResource" ] + }, + "read" : { + "permissions" : [ "bedrock:GetAgentAlias", "bedrock:ListTagsForResource" ] + }, + "update" : { + "permissions" : [ "bedrock:PrepareAgent", "bedrock:GetAgent", "bedrock:UpdateAgentAlias", "bedrock:TagResource", "bedrock:UntagResource", "bedrock:GetAgentAlias", "bedrock:ListTagsForResource" ] + }, + "delete" : { + "permissions" : [ "bedrock:DeleteAgentAlias" ] + }, + "list" : { + "permissions" : [ "bedrock:ListAgentAliases" ], + "handlerSchema" : { + "properties" : { + "AgentId" : { + "$ref" : "resource-schema.json#/properties/AgentId" + } + }, + "required" : [ "AgentId" ] + } + } + }, + "tagging" : { + "cloudFormationSystemTags" : false, + "tagOnCreate" : false, + "tagProperty" : "/properties/Tags", + "tagUpdatable" : true, + "taggable" : true + }, + "additionalProperties" : false +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-cleanrooms-configuredtable.json b/aws-cloudformation-schema/aws-cleanrooms-configuredtable.json index b1800fe92c..f5fd3d9892 100644 --- a/aws-cloudformation-schema/aws-cleanrooms-configuredtable.json +++ b/aws-cloudformation-schema/aws-cleanrooms-configuredtable.json @@ -66,7 +66,7 @@ }, "ScalarFunctions" : { "type" : "string", - "enum" : [ "TRUNC", "ABS", "CEILING", "FLOOR", "LN", "LOG", "ROUND", "SQRT", "CAST", "LOWER", "RTRIM", "UPPER", "COALESCE" ] + "enum" : [ "TRUNC", "ABS", "CEILING", "FLOOR", "LN", "LOG", "ROUND", "SQRT", "CAST", "LOWER", "RTRIM", "UPPER", "COALESCE", "CONVERT", "CURRENT_DATE", "DATEADD", "EXTRACT", "GETDATE", "SUBSTRING", "TO_CHAR", "TO_DATE", "TO_NUMBER", "TO_TIMESTAMP", "TRIM" ] }, "AnalysisRuleAggregation" : { "type" : "object", @@ -181,6 +181,31 @@ "$ref" : "#/definitions/AllowedAnalysisProvider" } }, + "DifferentialPrivacyColumn" : { + "type" : "object", + "properties" : { + "Name" : { + "type" : "string" + } + }, + "required" : [ "Name" ], + "additionalProperties" : false + }, + "DifferentialPrivacy" : { + "type" : "object", + "properties" : { + "Columns" : { + "type" : "array", + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/DifferentialPrivacyColumn" + }, + "minItems" : 1 + } + }, + "required" : [ "Columns" ], + "additionalProperties" : false + }, "AnalysisRuleCustom" : { "type" : "object", "properties" : { @@ -189,6 +214,9 @@ }, "AllowedAnalysisProviders" : { "$ref" : "#/definitions/AllowedAnalysisProviders" + }, + "DifferentialPrivacy" : { + "$ref" : "#/definitions/DifferentialPrivacy" } }, "required" : [ "AllowedAnalyses" ], diff --git a/aws-cloudformation-schema/aws-cloudfront-distribution.json b/aws-cloudformation-schema/aws-cloudfront-distribution.json index 26252bce20..1bff923ccf 100644 --- a/aws-cloudformation-schema/aws-cloudfront-distribution.json +++ b/aws-cloudformation-schema/aws-cloudfront-distribution.json @@ -34,7 +34,7 @@ "DefaultTTL" : { "default" : 86400, "type" : "number", - "description" : "This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide" + "description" : "This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*." }, "FieldLevelEncryptionId" : { "default" : "", @@ -43,7 +43,7 @@ }, "ForwardedValues" : { "$ref" : "#/definitions/ForwardedValues", - "description" : "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r" + "description" : "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*.\n A ``CacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``.\n A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers." }, "FunctionAssociations" : { "items" : { @@ -64,12 +64,12 @@ "MaxTTL" : { "default" : 31536000, "type" : "number", - "description" : "This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration." + "description" : "This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*." }, "MinTTL" : { "default" : 0, "type" : "number", - "description" : "This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*.\n You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He" + "description" : "This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*.\n You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``)." }, "OriginRequestPolicyId" : { "type" : "string", @@ -114,19 +114,19 @@ }, "ViewerProtocolPolicy" : { "type" : "string", - "description" : "The protocol that viewers can use to access the files in the origin specified by ``TargetOriginId`` when a request matches the path pattern in ``PathPattern``. You can specify the following options:\n + ``allow-all``: Viewers can use HTTP or HTTPS.\n + ``redirect-to-https``: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.\n + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).\n \n For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*.\n The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol" + "description" : "The protocol that viewers can use to access the files in the origin specified by ``TargetOriginId`` when a request matches the path pattern in ``PathPattern``. You can specify the following options:\n + ``allow-all``: Viewers can use HTTP or HTTPS.\n + ``redirect-to-https``: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.\n + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).\n \n For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*.\n The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*." } }, "required" : [ "PathPattern", "TargetOriginId", "ViewerProtocolPolicy" ], "type" : "object", - "description" : "A complex type that describes how CloudFront processes requests.\n You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to serve objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin is never used.\n For the current quota (formerly known as limit) on the number of cache behaviors that you can add to a distribution, see [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) in the *Amazon CloudFront Developer Guide*.\n If you don't want to specify any cache behaviors, include only an empty ``CacheBehaviors`` element. Don't include an empty ``CacheBehavior`` element because this is invalid.\n To delete all cache behaviors in an exist" + "description" : "A complex type that describes how CloudFront processes requests.\n You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to serve objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin is never used.\n For the current quota (formerly known as limit) on the number of cache behaviors that you can add to a distribution, see [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) in the *Amazon CloudFront Developer Guide*.\n If you don't want to specify any cache behaviors, include only an empty ``CacheBehaviors`` element. Don't include an empty ``CacheBehavior`` element because this is invalid.\n To delete all cache behaviors in an existing distribution, update the distribution configuration and include only an empty ``CacheBehaviors`` element.\n To add, change, or remove one or more cache behaviors, update the distribution configuration and specify all of the cache behaviors that you want to include in the updated distribution.\n For more information about cache behaviors, see [Cache Behavior Settings](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesCacheBehavior) in the *Amazon CloudFront Developer Guide*." }, "Cookies" : { "additionalProperties" : false, "properties" : { "Forward" : { "type" : "string", - "description" : "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the ``WhitelistedNames`` complex type.\n Amazon S3 doesn't process cookies. When the cache behavior is forw" + "description" : "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the ``WhitelistedNames`` complex type.\n Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify none for the ``Forward`` element." }, "WhitelistedNames" : { "items" : { @@ -134,12 +134,12 @@ }, "type" : "array", "uniqueItems" : false, - "description" : "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward se" + "description" : "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward selected cookies, the names of those cookies.\n If you specify ``all`` or ``none`` for the value of ``Forward``, omit ``WhitelistedNames``. If you change the value of ``Forward`` from ``whitelist`` to ``all`` or ``none`` and you don't delete the ``WhitelistedNames`` element and its child elements, CloudFront deletes them automatically.\n For the current limit on the number of cookie names that you can whitelist for each cache behavior, see [CloudFront Limits](https://docs.aws.amazon.com/general/latest/gr/xrefaws_service_limits.html#limits_cloudfront) in the *General Reference*." } }, "required" : [ "Forward" ], "type" : "object", - "description" : "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C" + "description" : "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*." }, "CustomErrorResponse" : { "additionalProperties" : false, @@ -159,7 +159,7 @@ }, "ResponsePagePath" : { "type" : "string", - "description" : "The path to the custom error page that you want CloudFront to return to a viewer when your origin returns the HTTP status code specified by ``ErrorCode``, for example, ``/4xx-errors/403-forbidden.html``. If you want to store your objects and your custom error pages in different locations, your distribution must include a cache behavior for which the following is true:\n + The value of ``PathPattern`` matches the path to your custom error messages. For example, suppose you saved custom error pages for 4xx errors in an Amazon S3 bucket in a directory named ``/4xx-errors``. Your distribution must include a cache behavior for which the path pattern routes requests for your custom error pages to that location, for example, ``/4xx-errors/*``.\n + The value of ``TargetOriginId`` specifies the value of the ``ID`` element for the origin that contains your custom error pages.\n \n If you specify a value for ``ResponsePagePath``, you must also specify a value for ``ResponseCode``.\n We recommend " + "description" : "The path to the custom error page that you want CloudFront to return to a viewer when your origin returns the HTTP status code specified by ``ErrorCode``, for example, ``/4xx-errors/403-forbidden.html``. If you want to store your objects and your custom error pages in different locations, your distribution must include a cache behavior for which the following is true:\n + The value of ``PathPattern`` matches the path to your custom error messages. For example, suppose you saved custom error pages for 4xx errors in an Amazon S3 bucket in a directory named ``/4xx-errors``. Your distribution must include a cache behavior for which the path pattern routes requests for your custom error pages to that location, for example, ``/4xx-errors/*``.\n + The value of ``TargetOriginId`` specifies the value of the ``ID`` element for the origin that contains your custom error pages.\n \n If you specify a value for ``ResponsePagePath``, you must also specify a value for ``ResponseCode``.\n We recommend that you store custom error pages in an Amazon S3 bucket. If you store custom error pages on an HTTP server and the server starts to return 5xx errors, CloudFront can't get the files that you want to return to viewers because the origin server is unavailable." } }, "required" : [ "ErrorCode" ], @@ -241,7 +241,7 @@ "DefaultTTL" : { "default" : 86400, "type" : "number", - "description" : "This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide" + "description" : "This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*." }, "FieldLevelEncryptionId" : { "default" : "", @@ -250,7 +250,7 @@ }, "ForwardedValues" : { "$ref" : "#/definitions/ForwardedValues", - "description" : "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r" + "description" : "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*.\n A ``DefaultCacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``.\n A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers." }, "FunctionAssociations" : { "items" : { @@ -271,12 +271,12 @@ "MaxTTL" : { "default" : 31536000, "type" : "number", - "description" : "This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration." + "description" : "This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*." }, "MinTTL" : { "default" : 0, "type" : "number", - "description" : "This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*.\n You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He" + "description" : "This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*.\n You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``)." }, "OriginRequestPolicyId" : { "default" : "", @@ -320,7 +320,7 @@ }, "ViewerProtocolPolicy" : { "type" : "string", - "description" : "The protocol that viewers can use to access the files in the origin specified by ``TargetOriginId`` when a request matches the path pattern in ``PathPattern``. You can specify the following options:\n + ``allow-all``: Viewers can use HTTP or HTTPS.\n + ``redirect-to-https``: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.\n + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).\n \n For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*.\n The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol" + "description" : "The protocol that viewers can use to access the files in the origin specified by ``TargetOriginId`` when a request matches the path pattern in ``PathPattern``. You can specify the following options:\n + ``allow-all``: Viewers can use HTTP or HTTPS.\n + ``redirect-to-https``: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.\n + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).\n \n For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*.\n The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*." } }, "required" : [ "TargetOriginId", "ViewerProtocolPolicy" ], @@ -382,7 +382,7 @@ "DefaultRootObject" : { "default" : "", "type" : "string", - "description" : "The object that you want CloudFront to request from your origin (for example, ``index.html``) when a viewer requests the root URL for your distribution (``https://www.example.com``) instead of an object in your distribution (``https://www.example.com/product-description.html``). Specifying a default root object avoids exposing the contents of your distribution.\n Specify only the object name, for example, ``index.html``. Don't add a ``/`` before the object name.\n If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element.\n To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element.\n To replace the default root object, update the distribution configuration and specify the new object.\n For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/D" + "description" : "The object that you want CloudFront to request from your origin (for example, ``index.html``) when a viewer requests the root URL for your distribution (``https://www.example.com``) instead of an object in your distribution (``https://www.example.com/product-description.html``). Specifying a default root object avoids exposing the contents of your distribution.\n Specify only the object name, for example, ``index.html``. Don't add a ``/`` before the object name.\n If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element.\n To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element.\n To replace the default root object, update the distribution configuration and specify the new object.\n For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*." }, "Enabled" : { "type" : "boolean", @@ -395,7 +395,7 @@ }, "IPV6Enabled" : { "type" : "boolean", - "description" : "If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify ``true``. If you specify ``false``, CloudFront responds to IPv6 DNS requests with the DNS response code ``NOERROR`` and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution.\n In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/Devel" + "description" : "If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify ``true``. If you specify ``false``, CloudFront responds to IPv6 DNS requests with the DNS response code ``NOERROR`` and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution.\n In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html) in the *Amazon CloudFront Developer Guide*.\n If you're using an R53AWSIntlong alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true:\n + You enable IPv6 for the distribution\n + You're using alternate domain names in the URLs for your objects\n \n For more information, see [Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html) in the *Developer Guide*.\n If you created a CNAME resource record set, either with R53AWSIntlong or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request." }, "Logging" : { "$ref" : "#/definitions/Logging", @@ -446,7 +446,7 @@ "WebACLId" : { "default" : "", "type" : "string", - "description" : "A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example ``arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a``. To specify a web ACL created using WAF Classic, use the ACL ID, for example ``473e64fd-f30b-4765-81a0-62ad96dd167a``.\n WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest" + "description" : "A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example ``arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a``. To specify a web ACL created using WAF Classic, use the ACL ID, for example ``473e64fd-f30b-4765-81a0-62ad96dd167a``.\n WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html)." } }, "required" : [ "Enabled", "DefaultCacheBehavior" ], @@ -461,7 +461,7 @@ "default" : { "Forward" : "none" }, - "description" : "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C" + "description" : "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*." }, "Headers" : { "items" : { @@ -469,11 +469,11 @@ }, "type" : "array", "uniqueItems" : false, - "description" : "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include headers in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versio" + "description" : "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include headers in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versions of a specified object that is based on the header values in viewer requests.\n For more information, see [Caching Content Based on Request Headers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html) in the *Amazon CloudFront Developer Guide*." }, "QueryString" : { "type" : "boolean", - "description" : "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of" + "description" : "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of ``QueryString`` and on the values that you specify for ``QueryStringCacheKeys``, if any:\n If you specify true for ``QueryString`` and you don't specify any values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin and caches based on all query string parameters. Depending on how many query string parameters and values you have, this can adversely affect performance because CloudFront must forward more requests to the origin.\n If you specify true for ``QueryString`` and you specify one or more values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin, but it only caches based on the query string parameters that you specify.\n If you specify false for ``QueryString``, CloudFront doesn't forward any query string parameters to the origin, and doesn't cache based on query string parameters.\n For more information, see [Configuring CloudFront to Cache Based on Query String Parameters](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html) in the *Amazon CloudFront Developer Guide*." }, "QueryStringCacheKeys" : { "items" : { @@ -801,7 +801,7 @@ "OriginAccessIdentity" : { "default" : "", "type" : "string", - "description" : "The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that viewers can *only* access objects in an Amazon S3 bucket through CloudFront. The format of the value is:\n origin-access-identity/cloudfront/*ID-of-origin-access-identity* \n where ``ID-of-origin-access-identity`` is the value that CloudFront returned in the ``ID`` element when you created the origin access identity.\n If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element.\n To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element.\n To replace the origin access identity, update the distribution configuration and specify the new origin access identity.\n For more information about the origin access identity, see [Serving Private Content through CloudFront](https://d" + "description" : "The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that viewers can *only* access objects in an Amazon S3 bucket through CloudFront. The format of the value is:\n origin-access-identity/cloudfront/*ID-of-origin-access-identity* \n where ``ID-of-origin-access-identity`` is the value that CloudFront returned in the ``ID`` element when you created the origin access identity.\n If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element.\n To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element.\n To replace the origin access identity, update the distribution configuration and specify the new origin access identity.\n For more information about the origin access identity, see [Serving Private Content through CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*." } }, "type" : "object", @@ -860,15 +860,15 @@ }, "MinimumProtocolVersion" : { "type" : "string", - "description" : "If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify the security policy that you want CloudFront to use for HTTPS connections with viewers. The security policy determines two settings:\n + The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers.\n + The ciphers that CloudFront can use to encrypt the content that it returns to viewers.\n \n For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*.\n On the CloudFront console, this setting is called *Security Policy*.\n When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-onl" + "description" : "If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify the security policy that you want CloudFront to use for HTTPS connections with viewers. The security policy determines two settings:\n + The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers.\n + The ciphers that CloudFront can use to encrypt the content that it returns to viewers.\n \n For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*.\n On the CloudFront console, this setting is called *Security Policy*.\n When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-only``), you must specify ``TLSv1`` or higher. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.)\n If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` (you set ``CloudFrontDefaultCertificate`` to ``true``), CloudFront automatically sets the security policy to ``TLSv1`` regardless of the value that you set here." }, "SslSupportMethod" : { "type" : "string", - "description" : "In CloudFormation, this field name is ``SslSupportMethod``. Note the different capitalization.\n If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from.\n + ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication). This is recommended. Most browsers and clients support SNI.\n + ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront.\n + ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [Center](https://docs.aws.amazon.com/support/home)." + "description" : "In CloudFormation, this field name is ``SslSupportMethod``. Note the different capitalization.\n If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from.\n + ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication). This is recommended. Most browsers and clients support SNI.\n + ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront.\n + ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [Center](https://docs.aws.amazon.com/support/home).\n \n If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``, don't set a value for this field." } }, "type" : "object", - "description" : "A complex type that determines the distribution's SSL/TLS configuration for communicating with viewers.\n If the distribution doesn't use ``Aliases`` (also known as alternate domain names or CNAMEs)—that is, if the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``—set ``CloudFrontDefaultCertificate`` to ``true`` and leave all other fields empty.\n If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), use the fields in this type to specify the following settings:\n + Which viewers the distribution accepts HTTPS connections from: only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication) (recommended), or all viewers including those that don't support SNI.\n + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field n" + "description" : "A complex type that determines the distribution's SSL/TLS configuration for communicating with viewers.\n If the distribution doesn't use ``Aliases`` (also known as alternate domain names or CNAMEs)—that is, if the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``—set ``CloudFrontDefaultCertificate`` to ``true`` and leave all other fields empty.\n If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), use the fields in this type to specify the following settings:\n + Which viewers the distribution accepts HTTPS connections from: only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication) (recommended), or all viewers including those that don't support SNI.\n + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.)\n + To accept HTTPS connections from all viewers, including those that don't support SNI, set ``SSLSupportMethod`` to ``vip``. This is not recommended, and results in additional monthly charges from CloudFront. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.)\n \n + The minimum SSL/TLS protocol version that the distribution can use to communicate with viewers. To specify a minimum version, choose a value for ``MinimumProtocolVersion``. For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) in the *Amazon CloudFront Developer Guide*.\n + The location of the SSL/TLS certificate, [(ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) (recommended) or [(IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html). You specify the location by setting a value in one of the following fields (not both):\n + ``ACMCertificateArn`` (In CloudFormation, this field name is ``AcmCertificateArn``. Note the different capitalization.)\n + ``IAMCertificateId`` (In CloudFormation, this field name is ``IamCertificateId``. Note the different capitalization.)\n \n \n All distributions support HTTPS connections from viewers. To require viewers to use HTTPS only, or to redirect them from HTTP to HTTPS, use ``ViewerProtocolPolicy`` in the ``CacheBehavior`` or ``DefaultCacheBehavior``. To specify how CloudFront should use SSL/TLS to communicate with your custom origin, use ``CustomOriginConfig``.\n For more information, see [Using HTTPS with CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html) and [Using Alternate Domain Names and HTTPS](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-alternate-domain-names.html) in the *Amazon CloudFront Developer Guide*." } }, "deprecatedProperties" : [ "/properties/DistributionConfig/properties/CustomOrigin", "/properties/DistributionConfig/properties/S3Origin" ], diff --git a/aws-cloudformation-schema/aws-cloudfront-originaccesscontrol.json b/aws-cloudformation-schema/aws-cloudfront-originaccesscontrol.json index d07a485b6f..96e3045974 100644 --- a/aws-cloudformation-schema/aws-cloudfront-originaccesscontrol.json +++ b/aws-cloudformation-schema/aws-cloudfront-originaccesscontrol.json @@ -11,7 +11,7 @@ "type" : "string" }, "OriginAccessControlOriginType" : { - "pattern" : "^(s3|mediastore)$", + "pattern" : "^(s3|mediastore|lambda|mediapackagev2)$", "type" : "string" }, "SigningBehavior" : { diff --git a/aws-cloudformation-schema/aws-cloudwatch-anomalydetector.json b/aws-cloudformation-schema/aws-cloudwatch-anomalydetector.json index b15984c3e1..da6f2b7c1f 100644 --- a/aws-cloudformation-schema/aws-cloudwatch-anomalydetector.json +++ b/aws-cloudformation-schema/aws-cloudwatch-anomalydetector.json @@ -169,6 +169,9 @@ "$ref" : "#/definitions/Dimension" } }, + "AccountId" : { + "type" : "string" + }, "Stat" : { "type" : "string" }, diff --git a/aws-cloudformation-schema/aws-codeartifact-packagegroup.json b/aws-cloudformation-schema/aws-codeartifact-packagegroup.json new file mode 100644 index 0000000000..415ba4dd60 --- /dev/null +++ b/aws-cloudformation-schema/aws-codeartifact-packagegroup.json @@ -0,0 +1,162 @@ +{ + "typeName" : "AWS::CodeArtifact::PackageGroup", + "description" : "The resource schema to create a CodeArtifact package group.", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-codeartifact", + "definitions" : { + "Tag" : { + "description" : "A key-value pair to associate with a resource.", + "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 -. ", + "minLength" : 1, + "maxLength" : 128 + }, + "Value" : { + "type" : "string", + "description" : "The value for the tag. You can specify a value that is 1 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 -. ", + "minLength" : 1, + "maxLength" : 256 + } + }, + "required" : [ "Value", "Key" ], + "additionalProperties" : false + }, + "OriginConfiguration" : { + "type" : "object", + "properties" : { + "Restrictions" : { + "description" : "The origin configuration that is applied to the package group.", + "type" : "object", + "$ref" : "#/definitions/Restrictions" + } + }, + "required" : [ "Restrictions" ], + "additionalProperties" : false + }, + "Restrictions" : { + "type" : "object", + "properties" : { + "Publish" : { + "type" : "object", + "description" : "The publish restriction determines if new package versions can be published.", + "$ref" : "#/definitions/RestrictionType" + }, + "ExternalUpstream" : { + "type" : "object", + "description" : "The external upstream restriction determines if new package versions can be ingested or retained from external connections.", + "$ref" : "#/definitions/RestrictionType" + }, + "InternalUpstream" : { + "type" : "object", + "description" : "The internal upstream restriction determines if new package versions can be ingested or retained from upstream repositories.", + "$ref" : "#/definitions/RestrictionType" + } + }, + "additionalProperties" : false + }, + "RestrictionType" : { + "type" : "object", + "properties" : { + "RestrictionMode" : { + "type" : "string", + "enum" : [ "ALLOW", "BLOCK", "ALLOW_SPECIFIC_REPOSITORIES", "INHERIT" ] + }, + "Repositories" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + }, + "required" : [ "RestrictionMode" ], + "additionalProperties" : false + } + }, + "properties" : { + "DomainName" : { + "description" : "The name of the domain that contains the package group.", + "type" : "string", + "pattern" : "^([a-z][a-z0-9\\-]{0,48}[a-z0-9])$", + "minLength" : 2, + "maxLength" : 50 + }, + "DomainOwner" : { + "description" : "The 12-digit account ID of the AWS account that owns the domain.", + "pattern" : "[0-9]{12}", + "type" : "string" + }, + "Pattern" : { + "description" : "The package group pattern that is used to gather packages.", + "type" : "string", + "minLength" : 2, + "maxLength" : 520 + }, + "ContactInfo" : { + "description" : "The contact info of the package group.", + "type" : "string", + "maxLength" : 1000 + }, + "Description" : { + "description" : "The text description of the package group.", + "type" : "string", + "maxLength" : 1000 + }, + "OriginConfiguration" : { + "description" : "The package origin configuration of the package group.", + "type" : "object", + "$ref" : "#/definitions/OriginConfiguration" + }, + "Tags" : { + "type" : "array", + "description" : "An array of key-value pairs to apply to the package group.", + "items" : { + "$ref" : "#/definitions/Tag" + } + }, + "Arn" : { + "description" : "The ARN of the package group.", + "type" : "string", + "minLength" : 1, + "maxLength" : 2048 + } + }, + "additionalProperties" : false, + "required" : [ "Pattern", "DomainName" ], + "createOnlyProperties" : [ "/properties/DomainName", "/properties/Pattern" ], + "readOnlyProperties" : [ "/properties/Arn" ], + "primaryIdentifier" : [ "/properties/Arn" ], + "handlers" : { + "create" : { + "permissions" : [ "codeartifact:CreatePackageGroup", "codeartifact:DescribePackageGroup", "codeartifact:UpdatePackageGroup", "codeartifact:UpdatePackageGroupOriginConfiguration", "codeartifact:ListAllowedRepositoriesForGroup", "codeartifact:ListTagsForResource", "codeartifact:TagResource" ] + }, + "read" : { + "permissions" : [ "codeartifact:DescribePackageGroup", "codeartifact:ListAllowedRepositoriesForGroup", "codeartifact:ListTagsForResource" ] + }, + "update" : { + "permissions" : [ "codeartifact:UpdatePackageGroup", "codeartifact:UpdatePackageGroupOriginConfiguration", "codeartifact:DescribePackageGroup", "codeartifact:ListAllowedRepositoriesForGroup", "codeartifact:ListTagsForResource", "codeartifact:TagResource", "codeartifact:UntagResource" ] + }, + "delete" : { + "permissions" : [ "codeartifact:DeletePackageGroup", "codeartifact:DescribePackageGroup" ] + }, + "list" : { + "handlerSchema" : { + "properties" : { + "DomainName" : { + "$ref" : "resource-schema.json#/properties/DomainName" + } + }, + "required" : [ "DomainName" ] + }, + "permissions" : [ "codeartifact:ListPackageGroups" ] + } + }, + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : true, + "tagProperty" : "/properties/Tags" + } +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-codeconnections-connection.json b/aws-cloudformation-schema/aws-codeconnections-connection.json new file mode 100644 index 0000000000..999113b440 --- /dev/null +++ b/aws-cloudformation-schema/aws-codeconnections-connection.json @@ -0,0 +1,101 @@ +{ + "typeName" : "AWS::CodeConnections::Connection", + "description" : "Schema for AWS::CodeConnections::Connection resource which can be used to connect external source providers with other AWS services (i.e. AWS CodePipeline)", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-codeconnections.git", + "definitions" : { + "Tag" : { + "description" : "A key-value pair to associate with a resource.", + "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 -. ", + "minLength" : 1, + "maxLength" : 128 + }, + "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 -. ", + "minLength" : 0, + "maxLength" : 256 + } + }, + "required" : [ "Value", "Key" ], + "additionalProperties" : false + } + }, + "properties" : { + "ConnectionArn" : { + "description" : "The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services.", + "type" : "string", + "minLength" : 0, + "maxLength" : 256, + "pattern" : "arn:aws(-[\\w]+)*:.+:.+:[0-9]{12}:.+" + }, + "ConnectionName" : { + "description" : "The name of the connection. Connection names must be unique in an AWS user account.", + "type" : "string", + "minLength" : 1, + "maxLength" : 32 + }, + "ConnectionStatus" : { + "description" : "The current status of the connection.", + "type" : "string" + }, + "OwnerAccountId" : { + "description" : "The name of the external provider where your third-party code repository is configured. For Bitbucket, this is the account ID of the owner of the Bitbucket repository.", + "type" : "string", + "minLength" : 12, + "maxLength" : 12, + "pattern" : "[0-9]{12}" + }, + "ProviderType" : { + "description" : "The name of the external provider where your third-party code repository is configured. You must specify either a ProviderType or a HostArn.", + "type" : "string" + }, + "HostArn" : { + "description" : "The host arn configured to represent the infrastructure where your third-party provider is installed. You must specify either a ProviderType or a HostArn.", + "type" : "string", + "minLength" : 0, + "maxLength" : 256, + "pattern" : "arn:aws(-[\\w]+)*:.+:.+:[0-9]{12}:.+" + }, + "Tags" : { + "description" : "Specifies the tags applied to a connection.", + "type" : "array", + "items" : { + "$ref" : "#/definitions/Tag" + }, + "insertionOrder" : false + } + }, + "required" : [ "ConnectionName" ], + "createOnlyProperties" : [ "/properties/ConnectionName", "/properties/ProviderType", "/properties/HostArn" ], + "readOnlyProperties" : [ "/properties/ConnectionArn", "/properties/ConnectionStatus", "/properties/OwnerAccountId" ], + "primaryIdentifier" : [ "/properties/ConnectionArn" ], + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : true, + "tagProperty" : "/properties/Tags" + }, + "handlers" : { + "create" : { + "permissions" : [ "codeconnections:CreateConnection", "codeconnections:TagResource" ] + }, + "read" : { + "permissions" : [ "codeconnections:GetConnection", "codeconnections:ListTagsForResource" ] + }, + "update" : { + "permissions" : [ "codeconnections:ListTagsForResource", "codeconnections:TagResource", "codeconnections:UntagResource" ] + }, + "delete" : { + "permissions" : [ "codeconnections:DeleteConnection" ] + }, + "list" : { + "permissions" : [ "codeconnections:ListConnections", "codeconnections:ListTagsForResource" ] + } + }, + "additionalProperties" : false +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-codestarconnections-repositorylink.json b/aws-cloudformation-schema/aws-codestarconnections-repositorylink.json index 9a05aeeb6a..b6ea39624e 100644 --- a/aws-cloudformation-schema/aws-codestarconnections-repositorylink.json +++ b/aws-cloudformation-schema/aws-codestarconnections-repositorylink.json @@ -33,7 +33,7 @@ "ProviderType" : { "description" : "The name of the external provider where your third-party code repository is configured.", "type" : "string", - "pattern" : "^(GitHub|Bitbucket|GitHubEnterprise|GitLab)$" + "enum" : [ "GitHub", "Bitbucket", "GitHubEnterprise", "GitLab", "GitLabSelfManaged" ] }, "OwnerId" : { "description" : "the ID of the entity that owns the repository.", diff --git a/aws-cloudformation-schema/aws-codestarconnections-syncconfiguration.json b/aws-cloudformation-schema/aws-codestarconnections-syncconfiguration.json index 6ffd762c54..72bf022408 100644 --- a/aws-cloudformation-schema/aws-codestarconnections-syncconfiguration.json +++ b/aws-cloudformation-schema/aws-codestarconnections-syncconfiguration.json @@ -22,7 +22,7 @@ "ProviderType" : { "description" : "The name of the external provider where your third-party code repository is configured.", "type" : "string", - "pattern" : "^(GitHub|Bitbucket|GitHubEnterprise|GitLab)$" + "enum" : [ "GitHub", "Bitbucket", "GitHubEnterprise", "GitLab", "GitLabSelfManaged" ] }, "Branch" : { "description" : "The name of the branch of the repository from which resources are to be synchronized,", @@ -40,6 +40,16 @@ "description" : "The IAM Role that allows AWS to update CloudFormation stacks based on content in the specified repository.", "type" : "string" }, + "PublishDeploymentStatus" : { + "description" : "Whether to enable or disable publishing of deployment status to source providers.", + "type" : "string", + "enum" : [ "ENABLED", "DISABLED" ] + }, + "TriggerResourceUpdateOn" : { + "description" : "When to trigger Git sync to begin the stack update.", + "type" : "string", + "enum" : [ "ANY_CHANGE", "FILE_CHANGE" ] + }, "RepositoryLinkId" : { "description" : "A UUID that uniquely identifies the RepositoryLink that the SyncConfig is associated with.", "type" : "string", diff --git a/aws-cloudformation-schema/aws-config-conformancepack.json b/aws-cloudformation-schema/aws-config-conformancepack.json index 284f5fb5a3..783d82995a 100644 --- a/aws-cloudformation-schema/aws-config-conformancepack.json +++ b/aws-cloudformation-schema/aws-config-conformancepack.json @@ -31,6 +31,13 @@ "required" : [ "ParameterName", "ParameterValue" ] } }, + "tagging" : { + "taggable" : false, + "tagOnCreate" : false, + "tagUpdatable" : false, + "cloudFormationSystemTags" : false, + "tagProperty" : "/properties/Tags" + }, "properties" : { "ConformancePackName" : { "description" : "Name of the conformance pack which will be assigned as the unique identifier.", diff --git a/aws-cloudformation-schema/aws-config-organizationconformancepack.json b/aws-cloudformation-schema/aws-config-organizationconformancepack.json index 91df302ba8..9125f1943e 100644 --- a/aws-cloudformation-schema/aws-config-organizationconformancepack.json +++ b/aws-cloudformation-schema/aws-config-organizationconformancepack.json @@ -83,6 +83,13 @@ "maxItems" : 1000 } }, + "tagging" : { + "taggable" : false, + "tagOnCreate" : false, + "tagUpdatable" : false, + "cloudFormationSystemTags" : false, + "tagProperty" : "/properties/Tags" + }, "required" : [ "OrganizationConformancePackName" ], "writeOnlyProperties" : [ "/properties/TemplateBody", "/properties/TemplateS3Uri" ], "createOnlyProperties" : [ "/properties/OrganizationConformancePackName" ], diff --git a/aws-cloudformation-schema/aws-connect-integrationassociation.json b/aws-cloudformation-schema/aws-connect-integrationassociation.json index 6ae28592e1..7b24edd560 100644 --- a/aws-cloudformation-schema/aws-connect-integrationassociation.json +++ b/aws-cloudformation-schema/aws-connect-integrationassociation.json @@ -54,7 +54,7 @@ "primaryIdentifier" : [ "/properties/InstanceId", "/properties/IntegrationType", "/properties/IntegrationArn" ], "handlers" : { "create" : { - "permissions" : [ "connect:DescribeInstance", "ds:DescribeDirectories", "app-integrations:CreateEventIntegrationAssociation", "mobiletargeting:GetApp", "cases:GetDomain", "wisdom:GetAssistant", "wisdom:GetKnowledgeBase", "wisdom:TagResource", "voiceid:DescribeDomain", "events:PutTargets", "events:PutRule", "connect:AssociateBot", "connect:AssociateLambdaFunction", "connect:CreateIntegrationAssociation", "connect:ListBots", "connect:ListLambdaFunctions", "connect:ListIntegrationAssociations", "lambda:addPermission", "lex:GetBot", "lex:DescribeBotAlias", "lex:CreateResourcePolicy", "lex:UpdateResourcePolicy", "lex:CreateResourcePolicyStatement", "lambda:AddPermission", "app-integrations:GetApplication", "iam:AttachRolePolicy", "iam:CreateServiceLinkedRole", "iam:GetRolePolicy", "iam:PutRolePolicy" ] + "permissions" : [ "connect:DescribeInstance", "ds:DescribeDirectories", "app-integrations:CreateEventIntegrationAssociation", "mobiletargeting:GetApp", "cases:GetDomain", "wisdom:GetAssistant", "wisdom:GetKnowledgeBase", "wisdom:TagResource", "voiceid:DescribeDomain", "events:PutTargets", "events:PutRule", "connect:AssociateBot", "connect:AssociateLambdaFunction", "connect:CreateIntegrationAssociation", "connect:ListBots", "connect:ListLambdaFunctions", "connect:ListIntegrationAssociations", "lambda:addPermission", "lex:GetBot", "lex:DescribeBotAlias", "lex:CreateResourcePolicy", "lex:UpdateResourcePolicy", "lex:CreateResourcePolicyStatement", "lambda:AddPermission", "app-integrations:GetApplication", "app-integrations:CreateApplicationAssociation", "iam:AttachRolePolicy", "iam:CreateServiceLinkedRole", "iam:GetRolePolicy", "iam:PutRolePolicy" ] }, "read" : { "permissions" : [ "connect:ListBots", "connect:ListLambdaFunctions", "connect:ListIntegrationAssociations" ] @@ -63,10 +63,18 @@ "permissions" : [ ] }, "delete" : { - "permissions" : [ "connect:DescribeInstance", "ds:DescribeDirectories", "app-integrations:DeleteEventIntegrationAssociation", "events:ListTargetsByRule", "events:RemoveTargets", "events:DeleteRule", "connect:DisassociateBot", "connect:DisassociateLambdaFunction", "connect:DeleteIntegrationAssociation", "connect:ListBots", "connect:ListLambdaFunctions", "connect:ListIntegrationAssociations", "lex:DeleteResourcePolicy", "lex:DeleteResourcePolicyStatement", "lambda:RemovePermission", "iam:GetRolePolicy", "iam:DeleteRolePolicy", "iam:PutRolePolicy" ] + "permissions" : [ "connect:DescribeInstance", "ds:DescribeDirectories", "app-integrations:DeleteEventIntegrationAssociation", "app-integrations:DeleteApplicationAssociation", "events:ListTargetsByRule", "events:RemoveTargets", "events:DeleteRule", "connect:DisassociateBot", "connect:DisassociateLambdaFunction", "connect:DeleteIntegrationAssociation", "connect:ListBots", "connect:ListLambdaFunctions", "connect:ListIntegrationAssociations", "lex:DeleteResourcePolicy", "lex:DeleteResourcePolicyStatement", "lambda:RemovePermission", "iam:GetRolePolicy", "iam:DeleteRolePolicy", "iam:PutRolePolicy" ] }, "list" : { - "permissions" : [ "connect:ListBots", "connect:ListLambdaFunctions", "connect:ListIntegrationAssociations" ] + "permissions" : [ "connect:ListBots", "connect:ListLambdaFunctions", "connect:ListIntegrationAssociations" ], + "handlerSchema" : { + "properties" : { + "InstanceId" : { + "$ref" : "resource-schema.json#/properties/InstanceId" + } + }, + "required" : [ "InstanceId" ] + } } } } \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-connect-predefinedattribute.json b/aws-cloudformation-schema/aws-connect-predefinedattribute.json index 15c74d0efa..5c9c0aafe7 100644 --- a/aws-cloudformation-schema/aws-connect-predefinedattribute.json +++ b/aws-cloudformation-schema/aws-connect-predefinedattribute.json @@ -41,6 +41,15 @@ } }, "additionalProperties" : false + }, + "LastModifiedRegion" : { + "description" : "Last modified region.", + "type" : "string", + "pattern" : "[a-z]{2}(-[a-z]+){1,2}(-[0-9])?" + }, + "LastModifiedTime" : { + "description" : "Last modified time.", + "type" : "number" } }, "handlers" : { @@ -70,6 +79,7 @@ }, "additionalProperties" : false, "createOnlyProperties" : [ "/properties/InstanceArn", "/properties/Name" ], + "readOnlyProperties" : [ "/properties/LastModifiedRegion", "/properties/LastModifiedTime" ], "tagging" : { "taggable" : false }, diff --git a/aws-cloudformation-schema/aws-connect-securityprofile.json b/aws-cloudformation-schema/aws-connect-securityprofile.json index 81b04afd62..d0d76a3f9a 100644 --- a/aws-cloudformation-schema/aws-connect-securityprofile.json +++ b/aws-cloudformation-schema/aws-connect-securityprofile.json @@ -10,11 +10,41 @@ "maxLength" : 128 }, "ResourceName" : { - "description" : "A resource that a security profile applies tag restrictions to in Amazon Connect.", + "description" : "A resource that a security profile applies tag or hierarchy restrictions to in Amazon Connect.", "type" : "string", "minLength" : 1, "maxLength" : 128 }, + "ApplicationPermission" : { + "description" : "The permissions that the agent is granted on the application.", + "type" : "string", + "minLength" : 1, + "maxLength" : 128 + }, + "Application" : { + "description" : "A third-party application's metadata.", + "type" : "object", + "properties" : { + "ApplicationPermissions" : { + "type" : "array", + "maxItems" : 10, + "uniqueItems" : true, + "insertionOrder" : false, + "description" : "The permissions that the agent is granted on the application", + "items" : { + "$ref" : "#/definitions/ApplicationPermission" + } + }, + "Namespace" : { + "type" : "string", + "description" : "Namespace of the application that you want to give access to.", + "minLength" : 1, + "maxLength" : 128 + } + }, + "required" : [ "ApplicationPermissions", "Namespace" ], + "additionalProperties" : false + }, "Tag" : { "description" : "A key-value pair to associate with a resource.", "type" : "object", @@ -91,6 +121,33 @@ "$ref" : "#/definitions/ResourceName" } }, + "HierarchyRestrictedResources" : { + "type" : "array", + "maxItems" : 10, + "uniqueItems" : true, + "insertionOrder" : false, + "description" : "The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect.", + "items" : { + "$ref" : "#/definitions/ResourceName" + } + }, + "AllowedAccessControlHierarchyGroupId" : { + "type" : "string", + "pattern" : "^[a-zA-Z0-9-]+$", + "minLength" : 0, + "maxLength" : 127, + "description" : "The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect." + }, + "Applications" : { + "type" : "array", + "maxItems" : 10, + "uniqueItems" : true, + "insertionOrder" : false, + "description" : "A list of third-party applications that the security profile will give access to.", + "items" : { + "$ref" : "#/definitions/Application" + } + }, "Tags" : { "type" : "array", "maxItems" : 50, @@ -100,6 +157,15 @@ "items" : { "$ref" : "#/definitions/Tag" } + }, + "LastModifiedRegion" : { + "type" : "string", + "pattern" : "[a-z]{2}(-[a-z]+){1,2}(-[0-9])?", + "description" : "The AWS Region where this resource was last modified." + }, + "LastModifiedTime" : { + "type" : "number", + "description" : "The timestamp when this resource was last modified." } }, "additionalProperties" : false, @@ -112,14 +178,14 @@ }, "required" : [ "InstanceArn", "SecurityProfileName" ], "createOnlyProperties" : [ "/properties/SecurityProfileName", "/properties/InstanceArn" ], - "readOnlyProperties" : [ "/properties/SecurityProfileArn" ], + "readOnlyProperties" : [ "/properties/SecurityProfileArn", "/properties/LastModifiedRegion", "/properties/LastModifiedTime" ], "primaryIdentifier" : [ "/properties/SecurityProfileArn" ], "handlers" : { "create" : { "permissions" : [ "connect:CreateSecurityProfile", "connect:TagResource" ] }, "read" : { - "permissions" : [ "connect:DescribeSecurityProfile", "connect:ListSecurityProfilePermissions" ] + "permissions" : [ "connect:DescribeSecurityProfile", "connect:ListSecurityProfileApplications", "connect:ListSecurityProfilePermissions" ] }, "update" : { "permissions" : [ "connect:TagResource", "connect:UpdateSecurityProfile", "connect:UntagResource" ] diff --git a/aws-cloudformation-schema/aws-dms-dataprovider.json b/aws-cloudformation-schema/aws-dms-dataprovider.json index ec24ebc269..4e5f1b54c9 100644 --- a/aws-cloudformation-schema/aws-dms-dataprovider.json +++ b/aws-cloudformation-schema/aws-dms-dataprovider.json @@ -75,7 +75,7 @@ "Settings" : { "description" : "The property identifies the exact type of settings for the data provider.", "type" : "object", - "oneOf" : [ { + "anyOf" : [ { "description" : "PostgreSqlSettings property identifier.", "type" : "object", "additionalProperties" : false, diff --git a/aws-cloudformation-schema/aws-docdbelastic-cluster.json b/aws-cloudformation-schema/aws-docdbelastic-cluster.json index 8acc2c587e..d909a02ec2 100644 --- a/aws-cloudformation-schema/aws-docdbelastic-cluster.json +++ b/aws-cloudformation-schema/aws-docdbelastic-cluster.json @@ -66,6 +66,15 @@ "PreferredMaintenanceWindow" : { "type" : "string" }, + "PreferredBackupWindow" : { + "type" : "string" + }, + "BackupRetentionPeriod" : { + "type" : "integer" + }, + "ShardInstanceCount" : { + "type" : "integer" + }, "KmsKeyId" : { "type" : "string" }, @@ -97,16 +106,16 @@ }, "handlers" : { "create" : { - "permissions" : [ "docdb-elastic:CreateCluster", "ec2:CreateVpcEndpoint", "ec2:DescribeVpcEndpoints", "ec2:DeleteVpcEndpoints", "ec2:ModifyVpcEndpoint", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute", "ec2:DescribeVpcs", "ec2:DescribeAvailabilityZones", "secretsmanager:ListSecrets", "secretsmanager:ListSecretVersionIds", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:GetResourcePolicy", "kms:DescribeKey", "kms:CreateGrant", "kms:GenerateDataKey", "kms:Decrypt", "iam:CreateServiceLinkedRole" ] + "permissions" : [ "docdb-elastic:CreateCluster", "docdb-elastic:TagResource", "docdb-elastic:GetCluster", "docdb-elastic:ListTagsForResource", "ec2:CreateVpcEndpoint", "ec2:DescribeVpcEndpoints", "ec2:DeleteVpcEndpoints", "ec2:ModifyVpcEndpoint", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute", "ec2:DescribeVpcs", "ec2:DescribeAvailabilityZones", "secretsmanager:ListSecrets", "secretsmanager:ListSecretVersionIds", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:GetResourcePolicy", "kms:DescribeKey", "kms:CreateGrant", "kms:GenerateDataKey", "kms:Decrypt", "iam:CreateServiceLinkedRole" ] }, "read" : { "permissions" : [ "docdb-elastic:GetCluster", "docdb-elastic:ListTagsForResource" ] }, "update" : { - "permissions" : [ "docdb-elastic:UpdateCluster", "docdb-elastic:TagResource", "docdb-elastic:UntagResource", "ec2:CreateVpcEndpoint", "ec2:DescribeVpcEndpoints", "ec2:DeleteVpcEndpoints", "ec2:ModifyVpcEndpoint", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute", "ec2:DescribeVpcs", "ec2:DescribeAvailabilityZones", "secretsmanager:ListSecrets", "secretsmanager:ListSecretVersionIds", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:GetResourcePolicy", "kms:DescribeKey", "kms:CreateGrant", "kms:GenerateDataKey", "kms:Decrypt" ] + "permissions" : [ "docdb-elastic:UpdateCluster", "docdb-elastic:TagResource", "docdb-elastic:UntagResource", "docdb-elastic:GetCluster", "docdb-elastic:ListTagsForResource", "ec2:CreateVpcEndpoint", "ec2:DescribeVpcEndpoints", "ec2:DeleteVpcEndpoints", "ec2:ModifyVpcEndpoint", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute", "ec2:DescribeVpcs", "ec2:DescribeAvailabilityZones", "secretsmanager:ListSecrets", "secretsmanager:ListSecretVersionIds", "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:GetResourcePolicy", "kms:DescribeKey", "kms:CreateGrant", "kms:GenerateDataKey", "kms:Decrypt" ] }, "delete" : { - "permissions" : [ "docdb-elastic:DeleteCluster", "ec2:DescribeVpcEndpoints", "ec2:DeleteVpcEndpoints", "ec2:ModifyVpcEndpoint", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute", "ec2:DescribeVpcs", "ec2:DescribeAvailabilityZones" ] + "permissions" : [ "docdb-elastic:DeleteCluster", "docdb-elastic:GetCluster", "ec2:DescribeVpcEndpoints", "ec2:DeleteVpcEndpoints", "ec2:ModifyVpcEndpoint", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcAttribute", "ec2:DescribeVpcs", "ec2:DescribeAvailabilityZones" ] }, "list" : { "permissions" : [ "docdb-elastic:ListClusters" ] diff --git a/aws-cloudformation-schema/aws-dynamodb-globaltable.json b/aws-cloudformation-schema/aws-dynamodb-globaltable.json index 74453c9888..0adf08a487 100644 --- a/aws-cloudformation-schema/aws-dynamodb-globaltable.json +++ b/aws-cloudformation-schema/aws-dynamodb-globaltable.json @@ -1,272 +1,257 @@ { - "handlers" : { - "read" : { - "permissions" : [ "dynamodb:Describe*", "dynamodb:GetResourcePolicy", "application-autoscaling:Describe*", "cloudwatch:PutMetricData", "dynamodb:ListTagsOfResource", "kms:DescribeKey" ] + "typeName" : "AWS::DynamoDB::GlobalTable", + "description" : "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable", + "additionalProperties" : false, + "properties" : { + "Arn" : { + "type" : "string" }, - "create" : { - "permissions" : [ "dynamodb:CreateTable", "dynamodb:CreateTableReplica", "dynamodb:Describe*", "dynamodb:UpdateTimeToLive", "dynamodb:UpdateContributorInsights", "dynamodb:UpdateContinuousBackups", "dynamodb:ListTagsOfResource", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateItem", "dynamodb:PutItem", "dynamodb:GetItem", "dynamodb:DeleteItem", "dynamodb:BatchWriteItem", "dynamodb:TagResource", "dynamodb:EnableKinesisStreamingDestination", "dynamodb:DisableKinesisStreamingDestination", "dynamodb:UpdateTableReplicaAutoScaling", "dynamodb:TagResource", "dynamodb:GetResourcePolicy", "dynamodb:PutResourcePolicy", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:Describe*", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "kinesis:ListStreams", "kinesis:DescribeStream", "kinesis:PutRecords", "kms:CreateGrant", "kms:DescribeKey", "kms:ListAliases", "kms:Decrypt", "kms:RevokeGrant", "cloudwatch:PutMetricData", "iam:CreateServiceLinkedRole" ] + "StreamArn" : { + "type" : "string" }, - "update" : { - "permissions" : [ "dynamodb:Describe*", "dynamodb:CreateTableReplica", "dynamodb:UpdateTable", "dynamodb:UpdateTimeToLive", "dynamodb:UpdateContinuousBackups", "dynamodb:UpdateContributorInsights", "dynamodb:ListTagsOfResource", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateItem", "dynamodb:PutItem", "dynamodb:GetItem", "dynamodb:DeleteItem", "dynamodb:BatchWriteItem", "dynamodb:DeleteTable", "dynamodb:DeleteTableReplica", "dynamodb:UpdateItem", "dynamodb:TagResource", "dynamodb:UntagResource", "dynamodb:EnableKinesisStreamingDestination", "dynamodb:DisableKinesisStreamingDestination", "dynamodb:UpdateTableReplicaAutoScaling", "dynamodb:UpdateKinesisStreamingDestination", "dynamodb:GetResourcePolicy", "dynamodb:PutResourcePolicy", "dynamodb:DeleteResourcePolicy", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:Describe*", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "kinesis:ListStreams", "kinesis:DescribeStream", "kinesis:PutRecords", "kms:CreateGrant", "kms:DescribeKey", "kms:ListAliases", "kms:RevokeGrant", "cloudwatch:PutMetricData" ], - "timeoutInMinutes" : 1200 + "AttributeDefinitions" : { + "type" : "array", + "uniqueItems" : true, + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/AttributeDefinition" + }, + "minItems" : 1 }, - "list" : { - "permissions" : [ "dynamodb:ListTables", "cloudwatch:PutMetricData" ] + "BillingMode" : { + "type" : "string" }, - "delete" : { - "permissions" : [ "dynamodb:Describe*", "dynamodb:DeleteTable", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:Describe*", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget" ] + "GlobalSecondaryIndexes" : { + "type" : "array", + "uniqueItems" : true, + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/GlobalSecondaryIndex" + } + }, + "KeySchema" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "$ref" : "#/definitions/KeySchema" + }, + "minItems" : 1, + "maxItems" : 2 + }, + "LocalSecondaryIndexes" : { + "type" : "array", + "uniqueItems" : true, + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/LocalSecondaryIndex" + } + }, + "WriteProvisionedThroughputSettings" : { + "$ref" : "#/definitions/WriteProvisionedThroughputSettings" + }, + "Replicas" : { + "type" : "array", + "uniqueItems" : true, + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/ReplicaSpecification" + }, + "minItems" : 1 + }, + "SSESpecification" : { + "$ref" : "#/definitions/SSESpecification" + }, + "StreamSpecification" : { + "$ref" : "#/definitions/StreamSpecification" + }, + "TableName" : { + "type" : "string" + }, + "TableId" : { + "type" : "string" + }, + "TimeToLiveSpecification" : { + "$ref" : "#/definitions/TimeToLiveSpecification" } }, - "typeName" : "AWS::DynamoDB::GlobalTable", - "readOnlyProperties" : [ "/properties/Arn", "/properties/StreamArn", "/properties/TableId" ], - "description" : "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable", - "additionalIdentifiers" : [ [ "/properties/Arn" ], [ "/properties/StreamArn" ] ], - "writeOnlyProperties" : [ "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" ], - "createOnlyProperties" : [ "/properties/LocalSecondaryIndexes", "/properties/TableName", "/properties/KeySchema" ], - "additionalProperties" : false, - "primaryIdentifier" : [ "/properties/TableName" ], "definitions" : { - "LocalSecondaryIndex" : { - "additionalProperties" : false, + "StreamSpecification" : { "type" : "object", + "additionalProperties" : false, "properties" : { - "IndexName" : { - "minLength" : 3, - "type" : "string", - "maxLength" : 255 - }, - "Projection" : { - "$ref" : "#/definitions/Projection" - }, - "KeySchema" : { - "maxItems" : 2, - "uniqueItems" : true, - "type" : "array", - "items" : { - "$ref" : "#/definitions/KeySchema" - } + "StreamViewType" : { + "type" : "string" } }, - "required" : [ "IndexName", "Projection", "KeySchema" ] + "required" : [ "StreamViewType" ] }, - "SSESpecification" : { + "ResourcePolicy" : { + "type" : "object", "additionalProperties" : false, + "properties" : { + "PolicyDocument" : { + "type" : "object" + } + }, + "required" : [ "PolicyDocument" ] + }, + "ReplicaStreamSpecification" : { "type" : "object", + "additionalProperties" : false, "properties" : { - "SSEEnabled" : { - "type" : "boolean" - }, - "SSEType" : { - "type" : "string" + "ResourcePolicy" : { + "$ref" : "#/definitions/ResourcePolicy" } }, - "required" : [ "SSEEnabled" ] + "required" : [ "ResourcePolicy" ] }, "KinesisStreamSpecification" : { - "additionalProperties" : false, "type" : "object", + "additionalProperties" : false, "properties" : { + "StreamArn" : { + "type" : "string" + }, "ApproximateCreationDateTimePrecision" : { "type" : "string", "enum" : [ "MICROSECOND", "MILLISECOND" ] - }, - "StreamArn" : { - "type" : "string" } }, "required" : [ "StreamArn" ] }, - "StreamSpecification" : { - "additionalProperties" : false, + "KeySchema" : { "type" : "object", + "additionalProperties" : false, "properties" : { - "StreamViewType" : { + "AttributeName" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 255 + }, + "KeyType" : { "type" : "string" } }, - "required" : [ "StreamViewType" ] + "required" : [ "KeyType", "AttributeName" ] }, - "ContributorInsightsSpecification" : { - "additionalProperties" : false, + "PointInTimeRecoverySpecification" : { "type" : "object", + "additionalProperties" : false, "properties" : { - "Enabled" : { + "PointInTimeRecoveryEnabled" : { "type" : "boolean" } - }, - "required" : [ "Enabled" ] + } }, "ReplicaSpecification" : { - "additionalProperties" : false, "type" : "object", + "additionalProperties" : false, "properties" : { - "SSESpecification" : { - "$ref" : "#/definitions/ReplicaSSESpecification" - }, - "KinesisStreamSpecification" : { - "$ref" : "#/definitions/KinesisStreamSpecification" - }, - "ContributorInsightsSpecification" : { - "$ref" : "#/definitions/ContributorInsightsSpecification" + "Region" : { + "type" : "string" }, "GlobalSecondaryIndexes" : { + "type" : "array", "uniqueItems" : true, "insertionOrder" : false, - "type" : "array", "items" : { "$ref" : "#/definitions/ReplicaGlobalSecondaryIndexSpecification" } }, - "Region" : { - "type" : "string" + "ContributorInsightsSpecification" : { + "$ref" : "#/definitions/ContributorInsightsSpecification" }, "PointInTimeRecoverySpecification" : { "$ref" : "#/definitions/PointInTimeRecoverySpecification" }, - "ReadProvisionedThroughputSettings" : { - "$ref" : "#/definitions/ReadProvisionedThroughputSettings" - }, "TableClass" : { "type" : "string" }, "DeletionProtectionEnabled" : { "type" : "boolean" }, + "SSESpecification" : { + "$ref" : "#/definitions/ReplicaSSESpecification" + }, "Tags" : { - "uniqueItems" : true, - "insertionOrder" : false, "type" : "array", + "insertionOrder" : false, + "uniqueItems" : true, "items" : { "$ref" : "#/definitions/Tag" } - } - }, - "required" : [ "Region" ] - }, - "CapacityAutoScalingSettings" : { - "additionalProperties" : false, - "type" : "object", - "properties" : { - "MinCapacity" : { - "type" : "integer", - "minimum" : 1 }, - "SeedCapacity" : { - "type" : "integer", - "minimum" : 1 + "ReadProvisionedThroughputSettings" : { + "$ref" : "#/definitions/ReadProvisionedThroughputSettings" }, - "TargetTrackingScalingPolicyConfiguration" : { - "$ref" : "#/definitions/TargetTrackingScalingPolicyConfiguration" + "KinesisStreamSpecification" : { + "$ref" : "#/definitions/KinesisStreamSpecification" }, - "MaxCapacity" : { - "type" : "integer", - "minimum" : 1 + "ResourcePolicy" : { + "$ref" : "#/definitions/ResourcePolicy" + }, + "ReplicaStreamSpecification" : { + "$ref" : "#/definitions/ReplicaStreamSpecification" } }, - "required" : [ "MinCapacity", "MaxCapacity", "TargetTrackingScalingPolicyConfiguration" ] + "required" : [ "Region" ] }, - "AttributeDefinition" : { - "additionalProperties" : false, + "TimeToLiveSpecification" : { "type" : "object", + "additionalProperties" : false, "properties" : { - "AttributeType" : { + "AttributeName" : { "type" : "string" }, - "AttributeName" : { - "minLength" : 1, - "type" : "string", - "maxLength" : 255 + "Enabled" : { + "type" : "boolean" } }, - "required" : [ "AttributeName", "AttributeType" ] - }, - "Projection" : { - "additionalProperties" : false, - "type" : "object", - "properties" : { - "NonKeyAttributes" : { - "maxItems" : 20, - "uniqueItems" : true, - "insertionOrder" : false, - "type" : "array", - "items" : { - "type" : "string" - } - }, - "ProjectionType" : { - "type" : "string" - } - } + "required" : [ "Enabled" ] }, - "PointInTimeRecoverySpecification" : { - "additionalProperties" : false, + "LocalSecondaryIndex" : { "type" : "object", - "properties" : { - "PointInTimeRecoveryEnabled" : { - "type" : "boolean" - } - } - }, - "ReplicaGlobalSecondaryIndexSpecification" : { "additionalProperties" : false, - "type" : "object", "properties" : { "IndexName" : { - "minLength" : 3, "type" : "string", + "minLength" : 3, "maxLength" : 255 }, - "ContributorInsightsSpecification" : { - "$ref" : "#/definitions/ContributorInsightsSpecification" - }, - "ReadProvisionedThroughputSettings" : { - "$ref" : "#/definitions/ReadProvisionedThroughputSettings" - } - }, - "required" : [ "IndexName" ] - }, - "TargetTrackingScalingPolicyConfiguration" : { - "additionalProperties" : false, - "type" : "object", - "properties" : { - "ScaleOutCooldown" : { - "type" : "integer", - "minimum" : 0 - }, - "TargetValue" : { - "format" : "double", - "type" : "number" - }, - "DisableScaleIn" : { - "type" : "boolean" + "KeySchema" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "$ref" : "#/definitions/KeySchema" + }, + "maxItems" : 2 }, - "ScaleInCooldown" : { - "type" : "integer", - "minimum" : 0 + "Projection" : { + "$ref" : "#/definitions/Projection" } }, - "required" : [ "TargetValue" ] + "required" : [ "IndexName", "Projection", "KeySchema" ] }, "GlobalSecondaryIndex" : { - "additionalProperties" : false, "type" : "object", + "additionalProperties" : false, "properties" : { "IndexName" : { - "minLength" : 3, "type" : "string", + "minLength" : 3, "maxLength" : 255 }, - "Projection" : { - "$ref" : "#/definitions/Projection" - }, "KeySchema" : { - "minItems" : 1, - "maxItems" : 2, - "uniqueItems" : true, "type" : "array", + "uniqueItems" : true, "items" : { "$ref" : "#/definitions/KeySchema" - } + }, + "minItems" : 1, + "maxItems" : 2 + }, + "Projection" : { + "$ref" : "#/definitions/Projection" }, "WriteProvisionedThroughputSettings" : { "$ref" : "#/definitions/WriteProvisionedThroughputSettings" @@ -274,18 +259,22 @@ }, "required" : [ "IndexName", "Projection", "KeySchema" ] }, - "WriteProvisionedThroughputSettings" : { - "additionalProperties" : false, + "SSESpecification" : { "type" : "object", + "additionalProperties" : false, "properties" : { - "WriteCapacityAutoScalingSettings" : { - "$ref" : "#/definitions/CapacityAutoScalingSettings" + "SSEEnabled" : { + "type" : "boolean" + }, + "SSEType" : { + "type" : "string" } - } + }, + "required" : [ "SSEEnabled" ] }, "ReplicaSSESpecification" : { - "additionalProperties" : false, "type" : "object", + "additionalProperties" : false, "properties" : { "KMSMasterKeyId" : { "type" : "string" @@ -293,37 +282,83 @@ }, "required" : [ "KMSMasterKeyId" ] }, - "KeySchema" : { - "additionalProperties" : false, + "AttributeDefinition" : { "type" : "object", + "additionalProperties" : false, "properties" : { - "KeyType" : { - "type" : "string" - }, "AttributeName" : { - "minLength" : 1, "type" : "string", + "minLength" : 1, "maxLength" : 255 + }, + "AttributeType" : { + "type" : "string" } }, - "required" : [ "KeyType", "AttributeName" ] + "required" : [ "AttributeName", "AttributeType" ] }, "Tag" : { - "additionalProperties" : false, "type" : "object", + "additionalProperties" : false, "properties" : { - "Value" : { + "Key" : { "type" : "string" }, - "Key" : { + "Value" : { "type" : "string" } }, "required" : [ "Value", "Key" ] }, - "ReadProvisionedThroughputSettings" : { + "Projection" : { + "type" : "object", "additionalProperties" : false, + "properties" : { + "NonKeyAttributes" : { + "type" : "array", + "uniqueItems" : true, + "insertionOrder" : false, + "items" : { + "type" : "string" + }, + "maxItems" : 20 + }, + "ProjectionType" : { + "type" : "string" + } + } + }, + "ReplicaGlobalSecondaryIndexSpecification" : { "type" : "object", + "additionalProperties" : false, + "properties" : { + "IndexName" : { + "type" : "string", + "minLength" : 3, + "maxLength" : 255 + }, + "ContributorInsightsSpecification" : { + "$ref" : "#/definitions/ContributorInsightsSpecification" + }, + "ReadProvisionedThroughputSettings" : { + "$ref" : "#/definitions/ReadProvisionedThroughputSettings" + } + }, + "required" : [ "IndexName" ] + }, + "ContributorInsightsSpecification" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "Enabled" : { + "type" : "boolean" + } + }, + "required" : [ "Enabled" ] + }, + "ReadProvisionedThroughputSettings" : { + "type" : "object", + "additionalProperties" : false, "properties" : { "ReadCapacityUnits" : { "type" : "integer", @@ -334,91 +369,82 @@ } } }, - "TimeToLiveSpecification" : { + "WriteProvisionedThroughputSettings" : { + "type" : "object", "additionalProperties" : false, + "properties" : { + "WriteCapacityAutoScalingSettings" : { + "$ref" : "#/definitions/CapacityAutoScalingSettings" + } + } + }, + "CapacityAutoScalingSettings" : { "type" : "object", + "additionalProperties" : false, "properties" : { - "Enabled" : { + "MinCapacity" : { + "type" : "integer", + "minimum" : 1 + }, + "MaxCapacity" : { + "type" : "integer", + "minimum" : 1 + }, + "SeedCapacity" : { + "type" : "integer", + "minimum" : 1 + }, + "TargetTrackingScalingPolicyConfiguration" : { + "$ref" : "#/definitions/TargetTrackingScalingPolicyConfiguration" + } + }, + "required" : [ "MinCapacity", "MaxCapacity", "TargetTrackingScalingPolicyConfiguration" ] + }, + "TargetTrackingScalingPolicyConfiguration" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "DisableScaleIn" : { "type" : "boolean" }, - "AttributeName" : { - "type" : "string" + "ScaleInCooldown" : { + "type" : "integer", + "minimum" : 0 + }, + "ScaleOutCooldown" : { + "type" : "integer", + "minimum" : 0 + }, + "TargetValue" : { + "type" : "number", + "format" : "double" } }, - "required" : [ "Enabled" ] + "required" : [ "TargetValue" ] } }, "required" : [ "KeySchema", "AttributeDefinitions", "Replicas" ], - "properties" : { - "TableId" : { - "type" : "string" - }, - "SSESpecification" : { - "$ref" : "#/definitions/SSESpecification" - }, - "StreamSpecification" : { - "$ref" : "#/definitions/StreamSpecification" - }, - "Replicas" : { - "minItems" : 1, - "uniqueItems" : true, - "insertionOrder" : false, - "type" : "array", - "items" : { - "$ref" : "#/definitions/ReplicaSpecification" - } - }, - "WriteProvisionedThroughputSettings" : { - "$ref" : "#/definitions/WriteProvisionedThroughputSettings" - }, - "TableName" : { - "type" : "string" - }, - "AttributeDefinitions" : { - "minItems" : 1, - "uniqueItems" : true, - "insertionOrder" : false, - "type" : "array", - "items" : { - "$ref" : "#/definitions/AttributeDefinition" - } - }, - "BillingMode" : { - "type" : "string" - }, - "GlobalSecondaryIndexes" : { - "uniqueItems" : true, - "insertionOrder" : false, - "type" : "array", - "items" : { - "$ref" : "#/definitions/GlobalSecondaryIndex" - } - }, - "KeySchema" : { - "minItems" : 1, - "maxItems" : 2, - "uniqueItems" : true, - "type" : "array", - "items" : { - "$ref" : "#/definitions/KeySchema" - } + "readOnlyProperties" : [ "/properties/Arn", "/properties/StreamArn", "/properties/TableId" ], + "createOnlyProperties" : [ "/properties/LocalSecondaryIndexes", "/properties/TableName", "/properties/KeySchema" ], + "primaryIdentifier" : [ "/properties/TableName" ], + "additionalIdentifiers" : [ [ "/properties/Arn" ], [ "/properties/StreamArn" ] ], + "writeOnlyProperties" : [ "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" ], + "handlers" : { + "create" : { + "permissions" : [ "dynamodb:CreateTable", "dynamodb:CreateTableReplica", "dynamodb:Describe*", "dynamodb:UpdateTimeToLive", "dynamodb:UpdateContributorInsights", "dynamodb:UpdateContinuousBackups", "dynamodb:ListTagsOfResource", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateItem", "dynamodb:PutItem", "dynamodb:GetItem", "dynamodb:DeleteItem", "dynamodb:BatchWriteItem", "dynamodb:TagResource", "dynamodb:EnableKinesisStreamingDestination", "dynamodb:DisableKinesisStreamingDestination", "dynamodb:UpdateTableReplicaAutoScaling", "dynamodb:TagResource", "dynamodb:GetResourcePolicy", "dynamodb:PutResourcePolicy", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:Describe*", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "kinesis:ListStreams", "kinesis:DescribeStream", "kinesis:PutRecords", "kms:CreateGrant", "kms:DescribeKey", "kms:ListAliases", "kms:Decrypt", "kms:RevokeGrant", "cloudwatch:PutMetricData", "iam:CreateServiceLinkedRole" ] }, - "LocalSecondaryIndexes" : { - "uniqueItems" : true, - "insertionOrder" : false, - "type" : "array", - "items" : { - "$ref" : "#/definitions/LocalSecondaryIndex" - } + "read" : { + "permissions" : [ "dynamodb:Describe*", "dynamodb:GetResourcePolicy", "application-autoscaling:Describe*", "cloudwatch:PutMetricData", "dynamodb:ListTagsOfResource", "kms:DescribeKey" ] }, - "Arn" : { - "type" : "string" + "update" : { + "permissions" : [ "dynamodb:Describe*", "dynamodb:CreateTableReplica", "dynamodb:UpdateTable", "dynamodb:UpdateTimeToLive", "dynamodb:UpdateContinuousBackups", "dynamodb:UpdateContributorInsights", "dynamodb:ListTagsOfResource", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateItem", "dynamodb:PutItem", "dynamodb:GetItem", "dynamodb:DeleteItem", "dynamodb:BatchWriteItem", "dynamodb:DeleteTable", "dynamodb:DeleteTableReplica", "dynamodb:UpdateItem", "dynamodb:TagResource", "dynamodb:UntagResource", "dynamodb:EnableKinesisStreamingDestination", "dynamodb:DisableKinesisStreamingDestination", "dynamodb:UpdateTableReplicaAutoScaling", "dynamodb:UpdateKinesisStreamingDestination", "dynamodb:GetResourcePolicy", "dynamodb:PutResourcePolicy", "dynamodb:DeleteResourcePolicy", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:Describe*", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "kinesis:ListStreams", "kinesis:DescribeStream", "kinesis:PutRecords", "kms:CreateGrant", "kms:DescribeKey", "kms:ListAliases", "kms:RevokeGrant", "cloudwatch:PutMetricData" ], + "timeoutInMinutes" : 1200 }, - "StreamArn" : { - "type" : "string" + "delete" : { + "permissions" : [ "dynamodb:Describe*", "dynamodb:DeleteTable", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:Describe*", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget" ] }, - "TimeToLiveSpecification" : { - "$ref" : "#/definitions/TimeToLiveSpecification" + "list" : { + "permissions" : [ "dynamodb:ListTables", "cloudwatch:PutMetricData" ] } } } \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-dynamodb-table.json b/aws-cloudformation-schema/aws-dynamodb-table.json index 480acb70dc..b735751bfd 100644 --- a/aws-cloudformation-schema/aws-dynamodb-table.json +++ b/aws-cloudformation-schema/aws-dynamodb-table.json @@ -107,6 +107,10 @@ "StreamViewType" : { "description" : "When an item in the table is modified, ``StreamViewType`` determines what information is written to the stream for this table. Valid values for ``StreamViewType`` are:\n + ``KEYS_ONLY`` - Only the key attributes of the modified item are written to the stream.\n + ``NEW_IMAGE`` - The entire item, as it appears after it was modified, is written to the stream.\n + ``OLD_IMAGE`` - The entire item, as it appeared before it was modified, is written to the stream.\n + ``NEW_AND_OLD_IMAGES`` - Both the new and the old item images of the item are written to the stream.", "type" : "string" + }, + "ResourcePolicy" : { + "description" : "", + "$ref" : "#/definitions/ResourcePolicy" } }, "required" : [ "StreamViewType" ] @@ -291,6 +295,17 @@ }, "required" : [ "S3Bucket" ] }, + "ResourcePolicy" : { + "description" : "", + "additionalProperties" : false, + "type" : "object", + "properties" : { + "PolicyDocument" : { + "type" : "object" + } + }, + "required" : [ "PolicyDocument" ] + }, "DeprecatedKeySchema" : { "description" : "", "additionalProperties" : false, @@ -418,6 +433,10 @@ "$ref" : "#/definitions/GlobalSecondaryIndex" } }, + "ResourcePolicy" : { + "description" : "", + "$ref" : "#/definitions/ResourcePolicy" + }, "KeySchema" : { "oneOf" : [ { "uniqueItems" : true, diff --git a/aws-cloudformation-schema/aws-ec2-internetgateway.json b/aws-cloudformation-schema/aws-ec2-internetgateway.json index 5dbda1eaa1..0fa1cb6f5b 100644 --- a/aws-cloudformation-schema/aws-ec2-internetgateway.json +++ b/aws-cloudformation-schema/aws-ec2-internetgateway.json @@ -1,6 +1,6 @@ { "typeName" : "AWS::EC2::InternetGateway", - "description" : "Resource Type definition for AWS::EC2::InternetGateway", + "description" : "Allocates an internet gateway for use with a VPC. After creating the Internet gateway, you then attach it to a VPC.", "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", "additionalProperties" : false, "definitions" : { @@ -11,19 +11,22 @@ "Key" : { "type" : "string", "minLength" : 1, - "maxLength" : 128 + "maxLength" : 128, + "description" : "The tag key." }, "Value" : { "type" : "string", - "maxLength" : 256 + "maxLength" : 256, + "description" : "The tag value." } }, - "required" : [ "Value", "Key" ] + "required" : [ "Value", "Key" ], + "description" : "Specifies a tag. For more information, see [Add tags to a resource](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#cloudformation-add-tag-specifications)." } }, "properties" : { "InternetGatewayId" : { - "description" : "ID of internet gateway.", + "description" : "", "type" : "string" }, "Tags" : { diff --git a/aws-cloudformation-schema/aws-ec2-launchtemplate.json b/aws-cloudformation-schema/aws-ec2-launchtemplate.json index 4227e186a4..36cb040f49 100644 --- a/aws-cloudformation-schema/aws-ec2-launchtemplate.json +++ b/aws-cloudformation-schema/aws-ec2-launchtemplate.json @@ -176,7 +176,7 @@ "$ref" : "#/definitions/InstanceMarketOptions" }, "InstanceRequirements" : { - "description" : "The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.\n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values.\n To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n If you specify ``InstanceReq", + "description" : "The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.\n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values.\n To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n If you specify ``InstanceRequirements``, you can't specify ``InstanceType``.\n Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``.\n For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*.", "$ref" : "#/definitions/InstanceRequirements" }, "RamDiskId" : { @@ -223,15 +223,11 @@ "AutoRecovery" : { "description" : "Disables the automatic recovery behavior of your instance or sets it to default.", "type" : "string" - }, - "RebootMigration" : { - "description" : "", - "type" : "string" } } }, "ElasticGpuSpecification" : { - "description" : "Specifies a specification for an Elastic GPU for an Amazon EC2 launch template.\n ``ElasticGpuSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", + "description" : "Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances.\n Specifies a specification for an Elastic GPU for an Amazon EC2 launch template.\n ``ElasticGpuSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", "additionalProperties" : false, "type" : "object", "properties" : { @@ -242,7 +238,7 @@ } }, "IamInstanceProfile" : { - "description" : "Specifies an IAM instance profile, which is a container for an IAM role for your instance. You can use an IAM role to distribute your AWS credentials to your instances.\n If you are creating the launch template for use with an Amazon EC2 Auto Scaling group, you can specify either the name or the ARN of the instance profile, but not both.\n ``IamInstanceProfile`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", + "description" : "Specifies an IAM instance profile, which is a container for an IAM role for your instance. You can use an IAM role to distribute your AWS credentials to your instances.\n If you are creating the launch template for use with an ASlong group, you can specify either the name or the ARN of the instance profile, but not both.\n ``IamInstanceProfile`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", "additionalProperties" : false, "type" : "object", "properties" : { @@ -376,7 +372,7 @@ "type" : "string" }, "VolumeType" : { - "description" : "The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*.", + "description" : "The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon EBS User Guide*.", "type" : "string" }, "KmsKeyId" : { @@ -533,7 +529,7 @@ "type" : "object", "properties" : { "SpotInstanceType" : { - "description" : "The Spot Instance request type.\n If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is below its desired capacity.", + "description" : "The Spot Instance request type.\n If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the ASlong service handles requesting new Spot Instances whenever the group is below its desired capacity.", "type" : "string" }, "InstanceInterruptionBehavior" : { @@ -839,7 +835,7 @@ } }, "InstanceRequirements" : { - "description" : "The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.\n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values.\n To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n If you specify ``InstanceReq", + "description" : "The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.\n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values.\n To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n If you specify ``InstanceRequirements``, you can't specify ``InstanceType``.\n Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``.\n For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*.", "additionalProperties" : false, "type" : "object", "properties" : { @@ -933,11 +929,11 @@ "type" : "boolean" }, "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice" : { - "description" : "[Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n To indicate no price protection threshold, specify a high value, such as ``999999``.\n If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instanc", + "description" : "[Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price.\n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``.", "type" : "integer" }, "SpotMaxPricePercentageOverLowestPrice" : { - "description" : "[Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n To indicate no price protection threshold, specify a high value, such as ``999999``.\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price i", + "description" : "[Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.\n This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html).\n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``.\n Default: ``100``", "type" : "integer" }, "BaselineEbsBandwidthMbps" : { @@ -945,7 +941,7 @@ "$ref" : "#/definitions/BaselineEbsBandwidthMbps" }, "OnDemandMaxPricePercentageOverLowestPrice" : { - "description" : "[Price protection] The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n To turn off price protection, specify a high value, such as ``999999``.\n This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html).\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-", + "description" : "[Price protection] The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n To turn off price protection, specify a high value, such as ``999999``.\n This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html).\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.\n Default: ``20``", "type" : "integer" }, "AcceleratorNames" : { diff --git a/aws-cloudformation-schema/aws-ec2-subnet.json b/aws-cloudformation-schema/aws-ec2-subnet.json index adc875de84..a7bef321bd 100644 --- a/aws-cloudformation-schema/aws-ec2-subnet.json +++ b/aws-cloudformation-schema/aws-ec2-subnet.json @@ -13,7 +13,11 @@ }, "MapPublicIpOnLaunch" : { "type" : "boolean", - "description" : "Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``.\n AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/)." + "description" : "Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``.\n AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/)." + }, + "EnableLniAtDeviceIndex" : { + "type" : "integer", + "description" : "Indicates the device position for local network interfaces in this subnet. For example, ``1`` indicates local network interfaces in this subnet are the secondary network interface (eth1)." }, "NetworkAclAssociationId" : { "type" : "string", @@ -73,7 +77,7 @@ "type" : "boolean" } }, - "description" : "The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*.\n Available options:\n + EnableResourceNameDnsAAAARecord (true | false)\n + EnableResourceNameDnsARecord (true | false)\n + HostnameType (ip-name | resource-name)" + "description" : "The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*.\n Available options:\n + EnableResourceNameDnsAAAARecord (true | false)\n + EnableResourceNameDnsARecord (true | false)\n + HostnameType (ip-name | resource-name)" }, "Tags" : { "type" : "array", @@ -130,7 +134,7 @@ "conditionalCreateOnlyProperties" : [ "/properties/Ipv6CidrBlock" ], "primaryIdentifier" : [ "/properties/SubnetId" ], "readOnlyProperties" : [ "/properties/NetworkAclAssociationId", "/properties/SubnetId" ], - "writeOnlyProperties" : [ "/properties/Ipv4IpamPoolId", "/properties/Ipv4NetmaskLength", "/properties/Ipv6IpamPoolId", "/properties/Ipv6NetmaskLength" ], + "writeOnlyProperties" : [ "/properties/EnableLniAtDeviceIndex", "/properties/Ipv4IpamPoolId", "/properties/Ipv4NetmaskLength", "/properties/Ipv6IpamPoolId", "/properties/Ipv6NetmaskLength" ], "handlers" : { "create" : { "permissions" : [ "ec2:DescribeSubnets", "ec2:CreateSubnet", "ec2:CreateTags", "ec2:ModifySubnetAttribute" ] diff --git a/aws-cloudformation-schema/aws-ec2-transitgatewayroutetableassociation.json b/aws-cloudformation-schema/aws-ec2-transitgatewayroutetableassociation.json index 01f1b15f93..ea73ce1e36 100644 --- a/aws-cloudformation-schema/aws-ec2-transitgatewayroutetableassociation.json +++ b/aws-cloudformation-schema/aws-ec2-transitgatewayroutetableassociation.json @@ -1,20 +1,49 @@ { "typeName" : "AWS::EC2::TransitGatewayRouteTableAssociation", "description" : "Resource Type definition for AWS::EC2::TransitGatewayRouteTableAssociation", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transitgateway.git", "additionalProperties" : false, "properties" : { - "Id" : { - "type" : "string" - }, "TransitGatewayRouteTableId" : { + "description" : "The ID of transit gateway route table.", "type" : "string" }, "TransitGatewayAttachmentId" : { + "description" : "The ID of transit gateway attachment.", "type" : "string" } }, + "definitions" : { }, + "replacementStrategy" : "delete_then_create", "required" : [ "TransitGatewayRouteTableId", "TransitGatewayAttachmentId" ], "createOnlyProperties" : [ "/properties/TransitGatewayRouteTableId", "/properties/TransitGatewayAttachmentId" ], - "readOnlyProperties" : [ "/properties/Id" ], - "primaryIdentifier" : [ "/properties/Id" ] + "primaryIdentifier" : [ "/properties/TransitGatewayRouteTableId", "/properties/TransitGatewayAttachmentId" ], + "tagging" : { + "taggable" : false, + "tagOnCreate" : false, + "tagUpdatable" : false, + "cloudFormationSystemTags" : false + }, + "handlers" : { + "create" : { + "permissions" : [ "ec2:AssociateTransitGatewayRouteTable", "ec2:GetTransitGatewayRouteTableAssociations" ] + }, + "read" : { + "permissions" : [ "ec2:GetTransitGatewayRouteTableAssociations" ] + }, + "delete" : { + "permissions" : [ "ec2:GetTransitGatewayRouteTableAssociations", "ec2:DisassociateTransitGatewayRouteTable" ] + }, + "list" : { + "handlerSchema" : { + "properties" : { + "TransitGatewayRouteTableId" : { + "$ref" : "resource-schema.json#/properties/TransitGatewayRouteTableId" + } + }, + "required" : [ "TransitGatewayRouteTableId" ] + }, + "permissions" : [ "ec2:GetTransitGatewayRouteTableAssociations" ] + } + } } \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-ecr-pullthroughcacherule.json b/aws-cloudformation-schema/aws-ecr-pullthroughcacherule.json index 35f2c741a1..49db7b08d5 100644 --- a/aws-cloudformation-schema/aws-ecr-pullthroughcacherule.json +++ b/aws-cloudformation-schema/aws-ecr-pullthroughcacherule.json @@ -79,7 +79,9 @@ "description" : "The name of the upstream registry." } }, - "taggable" : false, + "tagging" : { + "taggable" : false + }, "primaryIdentifier" : [ "/properties/EcrRepositoryPrefix" ], "createOnlyProperties" : [ "/properties/EcrRepositoryPrefix", "/properties/UpstreamRegistryUrl", "/properties/CredentialArn", "/properties/UpstreamRegistry" ], "writeOnlyProperties" : [ "/properties/CredentialArn", "/properties/UpstreamRegistry" ], diff --git a/aws-cloudformation-schema/aws-ecr-registrypolicy.json b/aws-cloudformation-schema/aws-ecr-registrypolicy.json index 6e28b7270b..2df5e78f39 100644 --- a/aws-cloudformation-schema/aws-ecr-registrypolicy.json +++ b/aws-cloudformation-schema/aws-ecr-registrypolicy.json @@ -41,5 +41,8 @@ "permissions" : [ "ecr:DeleteRegistryPolicy" ] } }, + "tagging" : { + "taggable" : false + }, "additionalProperties" : false } \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-ecr-replicationconfiguration.json b/aws-cloudformation-schema/aws-ecr-replicationconfiguration.json index 5fd405c98e..2aeb8d6793 100644 --- a/aws-cloudformation-schema/aws-ecr-replicationconfiguration.json +++ b/aws-cloudformation-schema/aws-ecr-replicationconfiguration.json @@ -107,6 +107,9 @@ "required" : [ "ReplicationConfiguration" ], "primaryIdentifier" : [ "/properties/RegistryId" ], "readOnlyProperties" : [ "/properties/RegistryId" ], + "tagging" : { + "taggable" : false + }, "additionalProperties" : false, "handlers" : { "create" : { diff --git a/aws-cloudformation-schema/aws-ecr-repository.json b/aws-cloudformation-schema/aws-ecr-repository.json index 9ee0e7d885..0f37d446fd 100644 --- a/aws-cloudformation-schema/aws-ecr-repository.json +++ b/aws-cloudformation-schema/aws-ecr-repository.json @@ -171,5 +171,12 @@ "permissions" : [ "ecr:DescribeRepositories" ] } }, + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : true, + "tagProperty" : "/properties/Tags" + }, "additionalProperties" : false } \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-efs-filesystem.json b/aws-cloudformation-schema/aws-efs-filesystem.json index d0ade3d847..cf0814ab95 100644 --- a/aws-cloudformation-schema/aws-efs-filesystem.json +++ b/aws-cloudformation-schema/aws-efs-filesystem.json @@ -47,6 +47,7 @@ "properties" : { "Status" : { "type" : "string", + "enum" : [ "DISABLED", "ENABLED" ], "description" : "Set the backup policy status for the file system.\n + *ENABLED* - Turns automatic backups on for the file system. \n + *DISABLED* - Turns automatic backups off for the file system." } }, diff --git a/aws-cloudformation-schema/aws-elasticache-parametergroup.json b/aws-cloudformation-schema/aws-elasticache-parametergroup.json index c1fc861e4f..74b9972bf4 100644 --- a/aws-cloudformation-schema/aws-elasticache-parametergroup.json +++ b/aws-cloudformation-schema/aws-elasticache-parametergroup.json @@ -3,9 +3,6 @@ "description" : "Resource Type definition for AWS::ElastiCache::ParameterGroup", "additionalProperties" : false, "properties" : { - "CacheParameterGroupName" : { - "type" : "string" - }, "Description" : { "type" : "string" }, @@ -49,5 +46,5 @@ "required" : [ "Description", "CacheParameterGroupFamily" ], "createOnlyProperties" : [ "/properties/CacheParameterGroupFamily" ], "primaryIdentifier" : [ "/properties/Id" ], - "readOnlyProperties" : [ "/properties/CacheParameterGroupName", "/properties/Id" ] + "readOnlyProperties" : [ "/properties/Id" ] } \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-elasticache-serverlesscache.json b/aws-cloudformation-schema/aws-elasticache-serverlesscache.json index fe412ef596..19dfe3d60d 100644 --- a/aws-cloudformation-schema/aws-elasticache-serverlesscache.json +++ b/aws-cloudformation-schema/aws-elasticache-serverlesscache.json @@ -20,30 +20,37 @@ "description" : "The cached data capacity of the Serverless Cache.", "type" : "object", "properties" : { + "Minimum" : { + "description" : "The minimum cached data capacity of the Serverless Cache.", + "type" : "integer" + }, "Maximum" : { "description" : "The maximum cached data capacity of the Serverless Cache.", "type" : "integer" }, "Unit" : { - "description" : "The unix of cached data capacity of the Serverless Cache.", + "description" : "The unit of cached data capacity of the Serverless Cache.", "type" : "string", "enum" : [ "GB" ] } }, "additionalProperties" : false, - "required" : [ "Maximum", "Unit" ] + "required" : [ "Unit" ] }, "ECPUPerSecond" : { "description" : "The ECPU per second of the Serverless Cache.", "type" : "object", "properties" : { + "Minimum" : { + "description" : "The minimum ECPU per second of the Serverless Cache.", + "type" : "integer" + }, "Maximum" : { "description" : "The maximum ECPU per second of the Serverless Cache.", "type" : "integer" } }, - "additionalProperties" : false, - "required" : [ "Maximum" ] + "additionalProperties" : false }, "Tag" : { "description" : "A key-value pair to associate with Serverless Cache.", diff --git a/aws-cloudformation-schema/aws-elasticache-user.json b/aws-cloudformation-schema/aws-elasticache-user.json index e04b221c0c..61673e16df 100644 --- a/aws-cloudformation-schema/aws-elasticache-user.json +++ b/aws-cloudformation-schema/aws-elasticache-user.json @@ -115,7 +115,7 @@ "primaryIdentifier" : [ "/properties/UserId" ], "handlers" : { "create" : { - "permissions" : [ "elasticache:CreateUser", "elasticache:DescribeUsers", "elasticache:ListTagsForResource" ] + "permissions" : [ "elasticache:CreateUser", "elasticache:DescribeUsers", "elasticache:ListTagsForResource", "elasticache:AddTagsToResource" ] }, "read" : { "permissions" : [ "elasticache:DescribeUsers", "elasticache:ListTagsForResource" ] diff --git a/aws-cloudformation-schema/aws-elasticache-usergroup.json b/aws-cloudformation-schema/aws-elasticache-usergroup.json index 67f8c41e43..c83c9cd875 100644 --- a/aws-cloudformation-schema/aws-elasticache-usergroup.json +++ b/aws-cloudformation-schema/aws-elasticache-usergroup.json @@ -80,7 +80,7 @@ }, "handlers" : { "create" : { - "permissions" : [ "elasticache:CreateUserGroup", "elasticache:DescribeUserGroups", "elasticache:ListTagsForResource" ] + "permissions" : [ "elasticache:CreateUserGroup", "elasticache:DescribeUserGroups", "elasticache:ListTagsForResource", "elasticache:AddTagsToResource" ] }, "read" : { "permissions" : [ "elasticache:DescribeUserGroups", "elasticache:ListTagsForResource" ] diff --git a/aws-cloudformation-schema/aws-entityresolution-idmappingworkflow.json b/aws-cloudformation-schema/aws-entityresolution-idmappingworkflow.json index 6ad71a3e75..8f12e8738d 100644 --- a/aws-cloudformation-schema/aws-entityresolution-idmappingworkflow.json +++ b/aws-cloudformation-schema/aws-entityresolution-idmappingworkflow.json @@ -46,16 +46,20 @@ "type" : "object", "properties" : { "InputSourceARN" : { - "description" : "An Glue table ARN for the input source table", + "description" : "An Glue table ARN for the input source table or IdNamespace ARN", "type" : "string", "pattern" : "arn:(aws|aws-us-gov|aws-cn):.*:.*:[0-9]+:.*$" }, "SchemaArn" : { "type" : "string", "$ref" : "#/definitions/SchemaMappingArn" + }, + "Type" : { + "type" : "string", + "enum" : [ "SOURCE", "TARGET" ] } }, - "required" : [ "InputSourceARN", "SchemaArn" ], + "required" : [ "InputSourceARN" ], "additionalProperties" : false }, "IdMappingWorkflowOutputSource" : { @@ -224,6 +228,6 @@ "permissions" : [ "entityresolution:ListIdMappingWorkflows" ] } }, - "required" : [ "WorkflowName", "InputSourceConfig", "OutputSourceConfig", "IdMappingTechniques", "RoleArn" ], + "required" : [ "WorkflowName", "InputSourceConfig", "IdMappingTechniques", "RoleArn" ], "additionalProperties" : false } \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-gamelift-gameservergroup.json b/aws-cloudformation-schema/aws-gamelift-gameservergroup.json index 24ea47ec9f..63cdbf9427 100644 --- a/aws-cloudformation-schema/aws-gamelift-gameservergroup.json +++ b/aws-cloudformation-schema/aws-gamelift-gameservergroup.json @@ -6,7 +6,7 @@ "definitions" : { "AutoScalingPolicy" : { "type" : "object", - "description" : "Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting", + "description" : "Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource.", "properties" : { "EstimatedInstanceWarmup" : { "$ref" : "#/definitions/EstimatedInstanceWarmup" @@ -101,7 +101,7 @@ }, "LaunchTemplate" : { "type" : "object", - "description" : "The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group.", + "description" : "The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource.", "properties" : { "LaunchTemplateId" : { "$ref" : "#/definitions/LaunchTemplateId" @@ -129,12 +129,12 @@ }, "MaxSize" : { "type" : "number", - "description" : "The maximum number of instances allowed in the EC2 Auto Scaling group.", + "description" : "The maximum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource.", "minimum" : 1 }, "MinSize" : { "type" : "number", - "description" : "The minimum number of instances allowed in the EC2 Auto Scaling group.", + "description" : "The minimum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource.", "minimum" : 0 }, "RoleArn" : { @@ -146,7 +146,7 @@ }, "Tags" : { "type" : "array", - "description" : "A list of labels to assign to the new game server group resource.", + "description" : "A list of labels to assign to the new game server group resource. Updating game server group tags with CloudFormation will not take effect. Please update this property using AWS GameLift APIs instead.", "items" : { "$ref" : "#/definitions/Tag" }, @@ -170,7 +170,7 @@ }, "VpcSubnets" : { "type" : "array", - "description" : "A list of virtual private cloud (VPC) subnets to use with instances in the game server group.", + "description" : "A list of virtual private cloud (VPC) subnets to use with instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource.", "items" : { "type" : "string", "pattern" : "^subnet-[0-9a-z]+$", @@ -264,7 +264,7 @@ "$ref" : "#/definitions/AutoScalingGroupArn" }, "AutoScalingPolicy" : { - "description" : "Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting", + "description" : "Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource.", "$ref" : "#/definitions/AutoScalingPolicy" }, "BalancingStrategy" : { @@ -292,15 +292,15 @@ "$ref" : "#/definitions/InstanceDefinitions" }, "LaunchTemplate" : { - "description" : "The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group.", + "description" : "The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource.", "$ref" : "#/definitions/LaunchTemplate" }, "MaxSize" : { - "description" : "The maximum number of instances allowed in the EC2 Auto Scaling group.", + "description" : "The maximum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource.", "$ref" : "#/definitions/MaxSize" }, "MinSize" : { - "description" : "The minimum number of instances allowed in the EC2 Auto Scaling group.", + "description" : "The minimum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource.", "$ref" : "#/definitions/MinSize" }, "RoleArn" : { @@ -308,11 +308,11 @@ "$ref" : "#/definitions/RoleArn" }, "Tags" : { - "description" : "A list of labels to assign to the new game server group resource.", + "description" : "A list of labels to assign to the new game server group resource. Updating game server group tags with CloudFormation will not take effect. Please update this property using AWS GameLift APIs instead.", "$ref" : "#/definitions/Tags" }, "VpcSubnets" : { - "description" : "A list of virtual private cloud (VPC) subnets to use with instances in the game server group.", + "description" : "A list of virtual private cloud (VPC) subnets to use with instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource.", "$ref" : "#/definitions/VpcSubnets" } }, diff --git a/aws-cloudformation-schema/aws-glue-crawler.json b/aws-cloudformation-schema/aws-glue-crawler.json index aa4d02e253..ecb3f783f9 100644 --- a/aws-cloudformation-schema/aws-glue-crawler.json +++ b/aws-cloudformation-schema/aws-glue-crawler.json @@ -37,6 +37,9 @@ "Role" : { "type" : "string" }, + "LakeFormationConfiguration" : { + "$ref" : "#/definitions/LakeFormationConfiguration" + }, "Schedule" : { "$ref" : "#/definitions/Schedule" }, @@ -79,6 +82,18 @@ } } }, + "LakeFormationConfiguration" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "UseLakeFormationCredentials" : { + "type" : "boolean" + }, + "AccountId" : { + "type" : "string" + } + } + }, "SchemaChangePolicy" : { "type" : "object", "additionalProperties" : false, diff --git a/aws-cloudformation-schema/aws-iam-managedpolicy.json b/aws-cloudformation-schema/aws-iam-managedpolicy.json index d7b7bc0169..3f36ab57b0 100644 --- a/aws-cloudformation-schema/aws-iam-managedpolicy.json +++ b/aws-cloudformation-schema/aws-iam-managedpolicy.json @@ -1,17 +1,17 @@ { "typeName" : "AWS::IAM::ManagedPolicy", - "description" : "Resource Type definition for AWS::IAM::ManagedPolicy", + "description" : "Creates a new managed policy for your AWS-account.\n This operation creates a policy version with a version identifier of ``v1`` and sets v1 as the policy's default version. For more information about policy versions, see [Versioning for managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) in the *IAM User Guide*.\n As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) in the *IAM User Guide*.\n For more information about managed policies in general, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*.", "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iam", "additionalProperties" : false, "properties" : { "Description" : { "type" : "string", - "description" : "A friendly description of the policy." + "description" : "A friendly description of the policy.\n Typically used to store information about the permissions defined in the policy. For example, \"Grants access to production DynamoDB tables.\"\n The policy description is immutable. After a value is assigned, it cannot be changed." }, "Groups" : { "insertionOrder" : false, "type" : "array", - "description" : "The name (friendly name, not ARN) of the group to attach the policy to.", + "description" : "The name (friendly name, not ARN) of the group to attach the policy to.\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-", "uniqueItems" : true, "items" : { "type" : "string" @@ -19,20 +19,21 @@ }, "ManagedPolicyName" : { "type" : "string", - "description" : "The friendly name of the policy." + "description" : "The friendly name of the policy.\n If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.\n If you specify a name, you must specify the ``CAPABILITY_NAMED_IAM`` value to acknowledge your template's capabilities. For more information, see [Acknowledging Resources in Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities).\n Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using ``Fn::Join`` and ``AWS::Region`` to create a Region-specific name, as in the following example: ``{\"Fn::Join\": [\"\", [{\"Ref\": \"AWS::Region\"}, {\"Ref\": \"MyResourceName\"}]]}``." }, "Path" : { "type" : "string", - "description" : "The path for the policy." + "default" : "/", + "description" : "The path for the policy.\n For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*.\n This parameter is optional. If it is not included, it defaults to a slash (/).\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (``\\u0021``) through the DEL character (``\\u007F``), including most punctuation characters, digits, and upper and lowercased letters.\n You cannot use an asterisk (*) in the path name." }, "PolicyDocument" : { "type" : [ "object", "string" ], - "description" : "The JSON policy document that you want to use as the content for the new policy." + "description" : "The JSON policy document that you want to use as the content for the new policy.\n You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM.\n The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length).\n To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. \n The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following:\n + Any printable ASCII character ranging from the space character (``\\u0020``) through the end of the ASCII character range\n + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\\u00FF``)\n + The special characters tab (``\\u0009``), line feed (``\\u000A``), and carriage return (``\\u000D``)" }, "Roles" : { "insertionOrder" : false, "type" : "array", - "description" : "The name (friendly name, not ARN) of the role to attach the policy to.", + "description" : "The name (friendly name, not ARN) of the role to attach the policy to.\n This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-\n If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy.", "uniqueItems" : true, "items" : { "type" : "string" @@ -41,7 +42,7 @@ "Users" : { "insertionOrder" : false, "type" : "array", - "description" : "The name (friendly name, not ARN) of the IAM user to attach the policy to.", + "description" : "The name (friendly name, not ARN) of the IAM user to attach the policy to.\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-", "uniqueItems" : true, "items" : { "type" : "string" @@ -49,35 +50,35 @@ }, "PolicyArn" : { "type" : "string", - "description" : "Amazon Resource Name (ARN) of the managed policy" + "description" : "" }, "AttachmentCount" : { "type" : "integer", - "description" : "The number of entities (users, groups, and roles) that the policy is attached to." + "description" : "" }, "CreateDate" : { "type" : "string", - "description" : "The date and time, in ISO 8601 date-time format, when the policy was created." + "description" : "" }, "UpdateDate" : { "type" : "string", - "description" : "The date and time, in ISO 8601 date-time format, when the policy was last updated." + "description" : "" }, "DefaultVersionId" : { "type" : "string", - "description" : "The identifier for the version of the policy that is set as the default version." + "description" : "" }, "IsAttachable" : { "type" : "boolean", - "description" : "Specifies whether the policy can be attached to an IAM user, group, or role." + "description" : "" }, "PermissionsBoundaryUsageCount" : { "type" : "integer", - "description" : "The number of entities (users and roles) for which the policy is used to set the permissions boundary." + "description" : "" }, "PolicyId" : { "type" : "string", - "description" : "The stable and unique string identifying the policy." + "description" : "" } }, "required" : [ "PolicyDocument" ], diff --git a/aws-cloudformation-schema/aws-iotsitewise-gateway.json b/aws-cloudformation-schema/aws-iotsitewise-gateway.json index dafcd7c513..71ebcdca77 100644 --- a/aws-cloudformation-schema/aws-iotsitewise-gateway.json +++ b/aws-cloudformation-schema/aws-iotsitewise-gateway.json @@ -15,12 +15,18 @@ "GreengrassV2" : { "description" : "A gateway that runs on AWS IoT Greengrass V2.", "$ref" : "#/definitions/GreengrassV2" + }, + "SiemensIE" : { + "description" : "A gateway that runs on Siemens Industrial Edge.", + "$ref" : "#/definitions/SiemensIE" } }, "oneOf" : [ { "required" : [ "Greengrass" ] }, { "required" : [ "GreengrassV2" ] + }, { + "required" : [ "SiemensIE" ] } ] }, "Greengrass" : { @@ -47,6 +53,18 @@ }, "required" : [ "CoreDeviceThingName" ] }, + "SiemensIE" : { + "description" : "Contains the IotCoreThingName of AWS IoT Thing that the gateway runs on.", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "IotCoreThingName" : { + "description" : "The name of the IoT Core Thing.", + "type" : "string" + } + }, + "required" : [ "IotCoreThingName" ] + }, "Tag" : { "description" : "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted", "type" : "object", diff --git a/aws-cloudformation-schema/aws-ivschat-loggingconfiguration.json b/aws-cloudformation-schema/aws-ivschat-loggingconfiguration.json index 6822f9168d..80677fd16d 100644 --- a/aws-cloudformation-schema/aws-ivschat-loggingconfiguration.json +++ b/aws-cloudformation-schema/aws-ivschat-loggingconfiguration.json @@ -145,7 +145,7 @@ "permissions" : [ "ivschat:GetLoggingConfiguration", "ivschat:ListTagsForResource" ] }, "update" : { - "permissions" : [ "ivschat:UpdateLoggingConfiguration", "ivschat:GetLoggingConfiguration", "ivschat:TagResource", "ivschat:UnTagResource", "ivschat:ListTagsForResource", "logs:CreateLogDelivery", "logs:GetLogDelivery", "logs:UpdateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries", "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups", "s3:PutBucketPolicy", "s3:GetBucketPolicy", "iam:CreateServiceLinkedRole", "firehose:TagDeliveryStream" ] + "permissions" : [ "ivschat:UpdateLoggingConfiguration", "ivschat:GetLoggingConfiguration", "ivschat:TagResource", "ivschat:UntagResource", "ivschat:ListTagsForResource", "logs:CreateLogDelivery", "logs:GetLogDelivery", "logs:UpdateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries", "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups", "s3:PutBucketPolicy", "s3:GetBucketPolicy", "iam:CreateServiceLinkedRole", "firehose:TagDeliveryStream" ] }, "delete" : { "permissions" : [ "ivschat:DeleteLoggingConfiguration", "ivschat:GetLoggingConfiguration", "logs:DeleteLogDelivery", "logs:ListLogDeliveries", "ivschat:UntagResource", "logs:GetLogDelivery" ] diff --git a/aws-cloudformation-schema/aws-ivschat-room.json b/aws-cloudformation-schema/aws-ivschat-room.json index 078dd7bde3..72e26a26e5 100644 --- a/aws-cloudformation-schema/aws-ivschat-room.json +++ b/aws-cloudformation-schema/aws-ivschat-room.json @@ -127,7 +127,7 @@ "permissions" : [ "ivschat:GetRoom", "ivschat:ListTagsForResource" ] }, "update" : { - "permissions" : [ "ivschat:UpdateRoom", "ivschat:TagResource", "ivschat:UnTagResource", "ivschat:ListTagsForResource" ] + "permissions" : [ "ivschat:UpdateRoom", "ivschat:TagResource", "ivschat:UntagResource", "ivschat:ListTagsForResource" ] }, "delete" : { "permissions" : [ "ivschat:DeleteRoom", "ivschat:UntagResource" ] diff --git a/aws-cloudformation-schema/aws-kafkaconnect-customplugin.json b/aws-cloudformation-schema/aws-kafkaconnect-customplugin.json new file mode 100644 index 0000000000..b730042ddc --- /dev/null +++ b/aws-cloudformation-schema/aws-kafkaconnect-customplugin.json @@ -0,0 +1,147 @@ +{ + "typeName" : "AWS::KafkaConnect::CustomPlugin", + "description" : "An example resource schema demonstrating some basic constructs and validation rules.", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions" : { + "Tag" : { + "description" : "A key-value pair to associate with a resource.", + "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 -.", + "minLength" : 1, + "maxLength" : 128 + }, + "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 -.", + "minLength" : 0, + "maxLength" : 256 + } + }, + "required" : [ "Key", "Value" ], + "additionalProperties" : false + }, + "CustomPluginFileDescription" : { + "description" : "Details about the custom plugin file.", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "FileMd5" : { + "description" : "The hex-encoded MD5 checksum of the custom plugin file. You can use it to validate the file.", + "type" : "string" + }, + "FileSize" : { + "description" : "The size in bytes of the custom plugin file. You can use it to validate the file.", + "type" : "integer", + "format" : "int64" + } + } + }, + "CustomPluginLocation" : { + "description" : "Information about the location of a custom plugin.", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "S3Location" : { + "$ref" : "#/definitions/S3Location" + } + }, + "required" : [ "S3Location" ] + }, + "S3Location" : { + "description" : "The S3 bucket Amazon Resource Name (ARN), file key, and object version of the plugin file stored in Amazon S3.", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "BucketArn" : { + "type" : "string", + "description" : "The Amazon Resource Name (ARN) of an S3 bucket." + }, + "FileKey" : { + "type" : "string", + "description" : "The file key for an object in an S3 bucket." + }, + "ObjectVersion" : { + "type" : "string", + "description" : "The version of an object in an S3 bucket." + } + }, + "required" : [ "BucketArn", "FileKey" ] + } + }, + "properties" : { + "Name" : { + "description" : "The name of the custom plugin.", + "type" : "string", + "minLength" : 1, + "maxLength" : 128 + }, + "Description" : { + "description" : "A summary description of the custom plugin.", + "type" : "string", + "maxLength" : 1024 + }, + "CustomPluginArn" : { + "description" : "The Amazon Resource Name (ARN) of the custom plugin to use.", + "type" : "string", + "pattern" : "arn:(aws|aws-us-gov|aws-cn):kafkaconnect:.*" + }, + "ContentType" : { + "description" : "The type of the plugin file.", + "type" : "string", + "enum" : [ "JAR", "ZIP" ] + }, + "FileDescription" : { + "$ref" : "#/definitions/CustomPluginFileDescription" + }, + "Location" : { + "$ref" : "#/definitions/CustomPluginLocation" + }, + "Revision" : { + "description" : "The revision of the custom plugin.", + "type" : "integer", + "format" : "int64" + }, + "Tags" : { + "description" : "An array of key-value pairs to apply to this resource.", + "type" : "array", + "uniqueItems" : false, + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/Tag" + } + } + }, + "additionalProperties" : false, + "required" : [ "Name", "ContentType", "Location" ], + "primaryIdentifier" : [ "/properties/CustomPluginArn" ], + "additionalIdentifiers" : [ [ "/properties/Name" ] ], + "readOnlyProperties" : [ "/properties/CustomPluginArn", "/properties/Revision", "/properties/FileDescription" ], + "createOnlyProperties" : [ "/properties/Name", "/properties/Description", "/properties/ContentType", "/properties/Location" ], + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : true, + "tagProperty" : "/properties/Tags" + }, + "handlers" : { + "create" : { + "permissions" : [ "kafkaconnect:DescribeCustomPlugin", "kafkaconnect:ListTagsForResource", "kafkaconnect:CreateCustomPlugin", "kafkaconnect:TagResource", "s3:GetObject", "s3:GetObjectVersion", "s3:GetObjectAttributes", "s3:GetObjectVersionAttributes" ] + }, + "read" : { + "permissions" : [ "kafkaconnect:DescribeCustomPlugin", "kafkaconnect:ListTagsForResource" ] + }, + "update" : { + "permissions" : [ "kafkaconnect:DescribeCustomPlugin", "kafkaconnect:ListTagsForResource", "kafkaconnect:TagResource", "kafkaconnect:UntagResource" ] + }, + "delete" : { + "permissions" : [ "kafkaconnect:DeleteCustomPlugin", "kafkaconnect:DescribeCustomPlugin" ] + }, + "list" : { + "permissions" : [ "kafkaconnect:ListCustomPlugins" ] + } + } +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-kafkaconnect-workerconfiguration.json b/aws-cloudformation-schema/aws-kafkaconnect-workerconfiguration.json new file mode 100644 index 0000000000..4c0d637646 --- /dev/null +++ b/aws-cloudformation-schema/aws-kafkaconnect-workerconfiguration.json @@ -0,0 +1,89 @@ +{ + "typeName" : "AWS::KafkaConnect::WorkerConfiguration", + "description" : "The configuration of the workers, which are the processes that run the connector logic.", + "additionalProperties" : false, + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kafkaconnect.git", + "properties" : { + "Name" : { + "description" : "The name of the worker configuration.", + "type" : "string", + "minLength" : 1, + "maxLength" : 128 + }, + "Description" : { + "description" : "A summary description of the worker configuration.", + "type" : "string", + "maxLength" : 1024 + }, + "WorkerConfigurationArn" : { + "description" : "The Amazon Resource Name (ARN) of the custom configuration.", + "type" : "string", + "pattern" : "arn:(aws|aws-us-gov|aws-cn):kafkaconnect:.*" + }, + "PropertiesFileContent" : { + "description" : "Base64 encoded contents of connect-distributed.properties file.", + "type" : "string" + }, + "Revision" : { + "description" : "The description of a revision of the worker configuration.", + "type" : "integer", + "format" : "int64" + }, + "Tags" : { + "description" : "A collection of tags associated with a resource", + "type" : "array", + "uniqueItems" : true, + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/Tag" + } + } + }, + "definitions" : { + "Tag" : { + "type" : "object", + "properties" : { + "Key" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 128 + }, + "Value" : { + "type" : "string", + "maxLength" : 256 + } + }, + "required" : [ "Value", "Key" ], + "additionalProperties" : false + } + }, + "required" : [ "Name", "PropertiesFileContent" ], + "primaryIdentifier" : [ "/properties/WorkerConfigurationArn" ], + "additionalIdentifiers" : [ [ "/properties/Name" ] ], + "readOnlyProperties" : [ "/properties/WorkerConfigurationArn", "/properties/Revision" ], + "createOnlyProperties" : [ "/properties/Name", "/properties/Description", "/properties/PropertiesFileContent" ], + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : true, + "tagProperty" : "/properties/Tags" + }, + "handlers" : { + "create" : { + "permissions" : [ "kafkaconnect:DescribeWorkerConfiguration", "kafkaconnect:CreateWorkerConfiguration", "kafkaconnect:TagResource", "kafkaconnect:ListTagsForResource" ] + }, + "read" : { + "permissions" : [ "kafkaconnect:DescribeWorkerConfiguration", "kafkaconnect:ListTagsForResource" ] + }, + "update" : { + "permissions" : [ "kafkaconnect:DescribeWorkerConfiguration", "kafkaconnect:ListTagsForResource", "kafkaconnect:TagResource", "kafkaconnect:UntagResource" ] + }, + "delete" : { + "permissions" : [ "kafkaconnect:DescribeWorkerConfiguration", "kafkaconnect:DeleteWorkerConfiguration" ] + }, + "list" : { + "permissions" : [ "kafkaconnect:ListWorkerConfigurations" ] + } + } +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-logs-loggroup.json b/aws-cloudformation-schema/aws-logs-loggroup.json index 59267bd530..8f185fad25 100644 --- a/aws-cloudformation-schema/aws-logs-loggroup.json +++ b/aws-cloudformation-schema/aws-logs-loggroup.json @@ -1,22 +1,22 @@ { "typeName" : "AWS::Logs::LogGroup", - "description" : "Resource schema for AWS::Logs::LogGroup", + "description" : "The ``AWS::Logs::LogGroup`` resource specifies a log group. A log group defines common properties for log streams, such as their retention and access control rules. Each log stream must belong to one log group.\n You can create up to 1,000,000 log groups per Region per account. You must use the following guidelines when naming a log group:\n + Log group names must be unique within a Region for an AWS account.\n + Log group names can be between 1 and 512 characters long.\n + Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period).", "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-logs.git", "definitions" : { "Tag" : { - "description" : "A key-value pair to associate with a resource.", + "description" : "", "type" : "object", "additionalProperties" : false, "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 @.", + "description" : "", "minLength" : 1, "maxLength" : 128 }, "Value" : { "type" : "string", - "description" : "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., :, /, =, +, - and @.", + "description" : "", "minLength" : 0, "maxLength" : 256 } @@ -26,35 +26,35 @@ }, "properties" : { "LogGroupName" : { - "description" : "The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group.", + "description" : "The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group.", "type" : "string", "minLength" : 1, "maxLength" : 512, "pattern" : "^[.\\-_/#A-Za-z0-9]{1,512}\\Z" }, "KmsKeyId" : { - "description" : "The Amazon Resource Name (ARN) of the CMK to use when encrypting log data.", + "description" : "The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data.\n To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested.\n If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error.\n Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html)", "type" : "string", "maxLength" : 256, "pattern" : "^arn:[a-z0-9-]+:kms:[a-z0-9-]+:\\d{12}:(key|alias)/.+\\Z" }, "DataProtectionPolicy" : { - "description" : "The body of the policy document you want to use for this topic.\n\nYou can only add one policy per topic.\n\nThe policy must be in JSON string format.\n\nLength Constraints: Maximum length of 30720", + "description" : "Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks.\n For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html).", "type" : "object" }, "LogGroupClass" : { - "description" : "The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class", + "description" : "Specifies the log group class for this log group. There are two classes:\n + The ``Standard`` log class supports all CWL features.\n + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs.\n \n For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html)", "type" : "string", "enum" : [ "STANDARD", "INFREQUENT_ACCESS" ], "default" : "STANDARD" }, "RetentionInDays" : { - "description" : "The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653.", + "description" : "The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653.\n To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html).", "type" : "integer", "enum" : [ 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, 3653 ] }, "Tags" : { - "description" : "An array of key-value pairs to apply to this resource.", + "description" : "An array of key-value pairs to apply to the log group.\n For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).", "type" : "array", "uniqueItems" : true, "insertionOrder" : false, @@ -63,7 +63,7 @@ } }, "Arn" : { - "description" : "The CloudWatch log group ARN.", + "description" : "", "type" : "string" } }, diff --git a/aws-cloudformation-schema/aws-logs-metricfilter.json b/aws-cloudformation-schema/aws-logs-metricfilter.json index ed5f3fd9a1..b27c4e7cde 100644 --- a/aws-cloudformation-schema/aws-logs-metricfilter.json +++ b/aws-cloudformation-schema/aws-logs-metricfilter.json @@ -7,7 +7,7 @@ "LogGroupName" : "/LogGroupName" } }, - "description" : "Specifies a metric filter that describes how CloudWatch Logs extracts information from logs and transforms it into Amazon CloudWatch metrics.", + "description" : "The ``AWS::Logs::MetricFilter`` resource specifies a metric filter that describes how CWL extracts information from logs and transforms it into Amazon CloudWatch metrics. If you have multiple metric filters that are associated with a log group, all the filters are applied to the log streams in that group.\n The maximum number of metric filters that can be associated with a log group is 100.", "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-logs.git", "tagging" : { "taggable" : false @@ -15,19 +15,19 @@ "replacementStrategy" : "delete_then_create", "definitions" : { "Dimension" : { - "description" : "the key-value pairs that further define a metric.", + "description" : "Specifies the CW metric dimensions to publish with this metric.\n Because dimensions are part of the unique identifier for a metric, whenever a unique dimension name/value pair is extracted from your logs, you are creating a new variation of that metric.\n For more information about publishing dimensions with metrics created by metric filters, see [Publishing dimensions with metrics from values in JSON or space-delimited log events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html#logs-metric-filters-dimensions).\n Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. \n To help prevent accidental high charges, Amazon disables a metric filter if it generates 1000 different name/value pairs for the dimensions that you have specified within a certain amount of time.\n You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html).", "type" : "object", "additionalProperties" : false, "properties" : { "Key" : { "type" : "string", - "description" : "The key of the dimension. Maximum length of 255.", + "description" : "The name for the CW metric dimension that the metric filter creates.\n Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon (:).", "minLength" : 1, "maxLength" : 255 }, "Value" : { "type" : "string", - "description" : "The value of the dimension. Maximum length of 255.", + "description" : "The log event field that will contain the value for this dimension. This dimension will only be published for a metric if the value is found in the log event. For example, ``$.eventType`` for JSON log events, or ``$server`` for space-delimited log events.", "minLength" : 1, "maxLength" : 255 } @@ -38,11 +38,11 @@ "type" : "object", "properties" : { "DefaultValue" : { - "description" : "The value to emit when a filter pattern does not match a log event. This value can be null.", + "description" : "(Optional) The value to emit when a filter pattern does not match a log event. This value can be null.", "type" : "number" }, "MetricName" : { - "description" : "The name of the CloudWatch metric. Metric name must be in ASCII format.", + "description" : "The name of the CloudWatch metric.", "type" : "string", "minLength" : 1, "maxLength" : 255, @@ -50,26 +50,26 @@ }, "MetricNamespace" : { "$comment" : "Namespaces can be up to 256 characters long; valid characters include 0-9A-Za-z.-_/#", - "description" : "The namespace of the CloudWatch metric.", + "description" : "A custom namespace to contain your metric in CloudWatch. Use namespaces to group together metrics that are similar. For more information, see [Namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace).", "type" : "string", "minLength" : 1, "maxLength" : 256, "pattern" : "^[0-9a-zA-Z\\.\\-_\\/#]{1,256}" }, "MetricValue" : { - "description" : "The value to publish to the CloudWatch metric when a filter pattern matches a log event.", + "description" : "The value that is published to the CloudWatch metric. For example, if you're counting the occurrences of a particular term like ``Error``, specify 1 for the metric value. If you're counting the number of bytes transferred, reference the value that is in the log event by using $. followed by the name of the field that you specified in the filter pattern, such as ``$.size``.", "type" : "string", "pattern" : ".{1,100}", "minLength" : 1, "maxLength" : 100 }, "Unit" : { - "description" : "The unit to assign to the metric. If you omit this, the unit is set as None.", + "description" : "The unit to assign to the metric. If you omit this, the unit is set as ``None``.", "type" : "string", "enum" : [ "Seconds", "Microseconds", "Milliseconds", "Bytes", "Kilobytes", "Megabytes", "Gigabytes", "Terabytes", "Bits", "Kilobits", "Megabits", "Gigabits", "Terabits", "Percent", "Count", "Bytes/Second", "Kilobytes/Second", "Megabytes/Second", "Gigabytes/Second", "Terabytes/Second", "Bits/Second", "Kilobits/Second", "Megabits/Second", "Gigabits/Second", "Terabits/Second", "Count/Second", "None" ] }, "Dimensions" : { - "description" : "Dimensions are the key-value pairs that further define a metric", + "description" : "The fields to use as dimensions for the metric. One metric filter can include as many as three dimensions.\n Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. \n CloudWatch Logs disables a metric filter if it generates 1000 different name/value pairs for your specified dimensions within a certain amount of time. This helps to prevent accidental high charges.\n You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html).", "type" : "array", "uniqueItems" : true, "insertionOrder" : false, @@ -81,31 +81,32 @@ } }, "required" : [ "MetricName", "MetricNamespace", "MetricValue" ], - "additionalProperties" : false + "additionalProperties" : false, + "description" : "``MetricTransformation`` is a property of the ``AWS::Logs::MetricFilter`` resource that describes how to transform log streams into a CloudWatch metric." } }, "properties" : { "FilterName" : { - "description" : "A name for the metric filter.", + "description" : "The name of the metric filter.", "type" : "string", "minLength" : 1, "maxLength" : 512, "pattern" : "^[^:*]{1,512}" }, "FilterPattern" : { - "description" : "Pattern that Logs follows to interpret each entry in a log.", + "description" : "A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html).", "type" : "string", "maxLength" : 1024 }, "LogGroupName" : { - "description" : "Existing log group that you want to associate with this filter.", + "description" : "The name of an existing log group that you want to associate with this metric filter.", "type" : "string", "minLength" : 1, "maxLength" : 512, "pattern" : "^[.\\-_/#A-Za-z0-9]{1,512}" }, "MetricTransformations" : { - "description" : "A collection of information that defines how metric data gets emitted.", + "description" : "The metric transformations.", "type" : "array", "minItems" : 1, "maxItems" : 1, diff --git a/aws-cloudformation-schema/aws-logs-subscriptionfilter.json b/aws-cloudformation-schema/aws-logs-subscriptionfilter.json index ec4b705f8e..2f82a596dd 100644 --- a/aws-cloudformation-schema/aws-logs-subscriptionfilter.json +++ b/aws-cloudformation-schema/aws-logs-subscriptionfilter.json @@ -1,7 +1,7 @@ { "typeName" : "AWS::Logs::SubscriptionFilter", "$schema" : "https://raw.githubusercontent.com/aws-cloudformation/cloudformation-cli/master/src/rpdk/core/data/schema/provider.definition.schema.v1.json", - "description" : "Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination.", + "description" : "The ``AWS::Logs::SubscriptionFilter`` resource specifies a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. Currently, the supported destinations are:\n + An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery.\n + A logical destination that belongs to a different account, for cross-account delivery.\n + An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery.\n + An LAMlong function that belongs to the same account as the subscription filter, for same-account delivery.\n \n There can be as many as two subscription filters associated with a log group.", "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-logs", "tagging" : { "taggable" : false, @@ -12,7 +12,7 @@ "replacementStrategy" : "delete_then_create", "properties" : { "FilterName" : { - "description" : "The name of the filter generated by resource.", + "description" : "The name of the subscription filter.", "type" : "string" }, "DestinationArn" : { @@ -20,19 +20,19 @@ "type" : "string" }, "FilterPattern" : { - "description" : "The filtering expressions that restrict what gets delivered to the destination AWS resource.", + "description" : "The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html).", "type" : "string" }, "LogGroupName" : { - "description" : "Existing log group that you want to associate with this filter.", + "description" : "The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events.", "type" : "string" }, "RoleArn" : { - "description" : "The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery.", + "description" : "The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery.", "type" : "string" }, "Distribution" : { - "description" : "The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream.", + "description" : "The method used to distribute log data to the destination, which can be either random or grouped by log stream.", "type" : "string", "enum" : [ "Random", "ByLogStream" ] } diff --git a/aws-cloudformation-schema/aws-networkfirewall-tlsinspectionconfiguration.json b/aws-cloudformation-schema/aws-networkfirewall-tlsinspectionconfiguration.json index 151c0a25d7..5e55cf3641 100644 --- a/aws-cloudformation-schema/aws-networkfirewall-tlsinspectionconfiguration.json +++ b/aws-cloudformation-schema/aws-networkfirewall-tlsinspectionconfiguration.json @@ -224,7 +224,7 @@ "createOnlyProperties" : [ "/properties/TLSInspectionConfigurationName" ], "handlers" : { "create" : { - "permissions" : [ "network-firewall:CreateTLSInspectionConfiguration", "network-firewall:DescribeTLSInspectionConfiguration", "network-firewall:TagResource" ] + "permissions" : [ "iam:CreateServiceLinkedRole", "network-firewall:CreateTLSInspectionConfiguration", "network-firewall:DescribeTLSInspectionConfiguration", "network-firewall:TagResource" ] }, "read" : { "permissions" : [ "network-firewall:DescribeTLSInspectionConfiguration", "network-firewall:ListTagsForResources" ] diff --git a/aws-cloudformation-schema/aws-rds-integration.json b/aws-cloudformation-schema/aws-rds-integration.json index 40c72a920d..900634893f 100644 --- a/aws-cloudformation-schema/aws-rds-integration.json +++ b/aws-cloudformation-schema/aws-rds-integration.json @@ -9,6 +9,12 @@ "minLength" : 1, "maxLength" : 64 }, + "Description" : { + "type" : "string", + "description" : "The description of the integration.", + "minLength" : 1, + "maxLength" : 1000 + }, "Tags" : { "type" : "array", "maxItems" : 50, @@ -19,6 +25,13 @@ "$ref" : "#/definitions/Tag" } }, + "DataFilter" : { + "type" : "string", + "description" : "The data filter for the integration.", + "minLength" : 1, + "maxLength" : 25600, + "pattern" : "[a-zA-Z0-9_ \"\\\\\\-$,*.:?+\\/]*" + }, "SourceArn" : { "type" : "string", "description" : "The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source for replication." @@ -91,7 +104,7 @@ "/properties/SourceArn" : "$lowercase(SourceArn)", "/properties/KmsKeyId" : "$join([\"arn:(aws)[-]{0,1}[a-z]{0,2}[-]{0,1}[a-z]{0,3}:kms:[a-z]{2}[-]{1}[a-z]{3,10}[-]{0,1}[a-z]{0,10}[-]{1}[1-3]{1}:[0-9]{12}[:]{1}key\\/\", KmsKeyId])" }, - "createOnlyProperties" : [ "/properties/SourceArn", "/properties/TargetArn", "/properties/KMSKeyId", "/properties/AdditionalEncryptionContext", "/properties/IntegrationName" ], + "createOnlyProperties" : [ "/properties/SourceArn", "/properties/TargetArn", "/properties/KMSKeyId", "/properties/AdditionalEncryptionContext" ], "readOnlyProperties" : [ "/properties/IntegrationArn", "/properties/CreateTime" ], "primaryIdentifier" : [ "/properties/IntegrationArn" ], "handlers" : { @@ -102,7 +115,7 @@ "permissions" : [ "rds:DescribeIntegrations" ] }, "update" : { - "permissions" : [ "rds:DescribeIntegrations", "rds:AddTagsToResource", "rds:RemoveTagsFromResource" ] + "permissions" : [ "rds:DescribeIntegrations", "rds:AddTagsToResource", "rds:RemoveTagsFromResource", "rds:ModifyIntegration" ] }, "delete" : { "permissions" : [ "rds:DeleteIntegration", "rds:DescribeIntegrations" ] diff --git a/aws-cloudformation-schema/aws-resiliencehub-resiliencypolicy.json b/aws-cloudformation-schema/aws-resiliencehub-resiliencypolicy.json index 0fdf02a240..e18ddcb1d8 100644 --- a/aws-cloudformation-schema/aws-resiliencehub-resiliencypolicy.json +++ b/aws-cloudformation-schema/aws-resiliencehub-resiliencypolicy.json @@ -21,11 +21,21 @@ }, "PolicyMap" : { "type" : "object", - "patternProperties" : { - ".*{1,8}" : { + "properties" : { + "AZ" : { + "$ref" : "#/definitions/FailurePolicy" + }, + "Hardware" : { + "$ref" : "#/definitions/FailurePolicy" + }, + "Software" : { + "$ref" : "#/definitions/FailurePolicy" + }, + "Region" : { "$ref" : "#/definitions/FailurePolicy" } }, + "required" : [ "AZ", "Hardware", "Software" ], "additionalProperties" : false }, "TagValue" : { diff --git a/aws-cloudformation-schema/aws-securitylake-awslogsource.json b/aws-cloudformation-schema/aws-securitylake-awslogsource.json new file mode 100644 index 0000000000..5362b4d137 --- /dev/null +++ b/aws-cloudformation-schema/aws-securitylake-awslogsource.json @@ -0,0 +1,57 @@ +{ + "typeName" : "AWS::SecurityLake::AwsLogSource", + "description" : "Resource Type definition for AWS::SecurityLake::AwsLogSource", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securitylake.git", + "additionalProperties" : false, + "properties" : { + "Accounts" : { + "description" : "AWS account where you want to collect logs from.", + "type" : "array", + "uniqueItems" : true, + "insertionOrder" : false, + "items" : { + "type" : "string", + "pattern" : "^[0-9]{12}$" + } + }, + "DataLakeArn" : { + "description" : "The ARN for the data lake.", + "type" : "string", + "minLength" : 1, + "maxLength" : 256 + }, + "SourceName" : { + "description" : "The name for a AWS source. This must be a Regionally unique value.", + "type" : "string" + }, + "SourceVersion" : { + "description" : "The version for a AWS source. This must be a Regionally unique value.", + "type" : "string", + "pattern" : "^(latest|[0-9]\\.[0-9])$" + } + }, + "required" : [ "DataLakeArn", "SourceVersion", "SourceName" ], + "primaryIdentifier" : [ "/properties/SourceName", "/properties/SourceVersion" ], + "createOnlyProperties" : [ "/properties/DataLakeArn", "/properties/SourceName", "/properties/SourceVersion" ], + "tagging" : { + "taggable" : false + }, + "replacementStrategy" : "delete_then_create", + "handlers" : { + "create" : { + "permissions" : [ "glue:CreateDatabase", "glue:CreateTable", "glue:GetDatabase", "glue:GetTable", "iam:CreateServiceLinkedRole", "kms:CreateGrant", "kms:DescribeKey", "securitylake:CreateDataLake", "securitylake:CreateAwsLogSource", "securitylake:ListLogSources" ] + }, + "read" : { + "permissions" : [ "securitylake:ListLogSources" ] + }, + "list" : { + "permissions" : [ "securitylake:ListLogSources" ] + }, + "delete" : { + "permissions" : [ "securitylake:DeleteAwsLogSource", "securitylake:ListLogSources" ] + }, + "update" : { + "permissions" : [ "securitylake:CreateAwsLogSource", "securitylake:DeleteAwsLogSource", "glue:CreateDatabase", "glue:CreateTable", "glue:GetDatabase", "glue:GetTable", "iam:CreateServiceLinkedRole", "kms:CreateGrant", "kms:DescribeKey" ] + } + } +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-securitylake-datalake.json b/aws-cloudformation-schema/aws-securitylake-datalake.json new file mode 100644 index 0000000000..7982aa24f5 --- /dev/null +++ b/aws-cloudformation-schema/aws-securitylake-datalake.json @@ -0,0 +1,172 @@ +{ + "typeName" : "AWS::SecurityLake::DataLake", + "description" : "Resource Type definition for AWS::SecurityLake::DataLake", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securitylake.git", + "additionalProperties" : false, + "definitions" : { + "EncryptionConfiguration" : { + "description" : "Provides encryption details of Amazon Security Lake object.", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "KmsKeyId" : { + "description" : "The id of KMS encryption key used by Amazon Security Lake to encrypt the Security Lake object.", + "type" : "string" + } + } + }, + "LifecycleConfiguration" : { + "description" : "Provides lifecycle details of Amazon Security Lake object.", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "Expiration" : { + "$ref" : "#/definitions/Expiration" + }, + "Transitions" : { + "description" : "Provides data storage transition details of Amazon Security Lake object.", + "type" : "array", + "uniqueItems" : false, + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/Transitions" + } + } + } + }, + "Expiration" : { + "description" : "Provides data expiration details of Amazon Security Lake object.", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "Days" : { + "$ref" : "#/definitions/Days" + } + } + }, + "Days" : { + "description" : "Number of days before data expires in the Amazon Security Lake object.", + "type" : "integer", + "minimum" : 1 + }, + "Transitions" : { + "type" : "object", + "additionalProperties" : false, + "properties" : { + "Days" : { + "description" : "Number of days before data transitions to a different S3 Storage Class in the Amazon Security Lake object.", + "type" : "integer", + "minimum" : 1 + }, + "StorageClass" : { + "description" : "The range of storage classes that you can choose from based on the data access, resiliency, and cost requirements of your workloads.", + "type" : "string" + } + } + }, + "ReplicationConfiguration" : { + "description" : "Provides replication details of Amazon Security Lake object.", + "type" : "object", + "additionalProperties" : false, + "properties" : { + "Regions" : { + "$ref" : "#/definitions/Regions" + }, + "RoleArn" : { + "description" : "Replication settings for the Amazon S3 buckets. This parameter uses the AWS Identity and Access Management (IAM) role you created that is managed by Security Lake, to ensure the replication setting is correct.", + "type" : "string", + "pattern" : "^arn:.*$" + } + } + }, + "Regions" : { + "description" : "Replication enables automatic, asynchronous copying of objects across Amazon S3 buckets. Amazon S3 buckets that are configured for object replication can be owned by the same AWS account or by different accounts. You can replicate objects to a single destination bucket or to multiple destination buckets. The destination buckets can be in different AWS Regions or within the same Region as the source bucket.", + "type" : "array", + "uniqueItems" : true, + "insertionOrder" : false, + "items" : { + "type" : "string", + "pattern" : "^(af|ap|ca|eu|me|sa|us)-(central|north|(north(?:east|west))|south|south(?:east|west)|east|west)-\\d+$" + } + }, + "Tag" : { + "description" : "A key-value pair to associate with a resource.", + "type" : "object", + "additionalProperties" : false, + "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 characters in length." + } + }, + "required" : [ "Key", "Value" ] + } + }, + "properties" : { + "EncryptionConfiguration" : { + "$ref" : "#/definitions/EncryptionConfiguration" + }, + "LifecycleConfiguration" : { + "$ref" : "#/definitions/LifecycleConfiguration" + }, + "ReplicationConfiguration" : { + "$ref" : "#/definitions/ReplicationConfiguration" + }, + "MetaStoreManagerRoleArn" : { + "description" : "The Amazon Resource Name (ARN) used to index AWS Glue table partitions that are generated by the ingestion and normalization of AWS log sources and custom sources.", + "type" : "string", + "pattern" : "^arn:.*$" + }, + "Tags" : { + "type" : "array", + "uniqueItems" : false, + "insertionOrder" : false, + "items" : { + "$ref" : "#/definitions/Tag" + } + }, + "Arn" : { + "description" : "The Amazon Resource Name (ARN) created by you to provide to the subscriber.", + "type" : "string", + "minLength" : 1, + "maxLength" : 1011 + }, + "S3BucketArn" : { + "description" : "The ARN for the Amazon Security Lake Amazon S3 bucket.", + "type" : "string" + } + }, + "primaryIdentifier" : [ "/properties/Arn" ], + "createOnlyProperties" : [ "/properties/MetaStoreManagerRoleArn" ], + "writeOnlyProperties" : [ "/properties/MetaStoreManagerRoleArn" ], + "readOnlyProperties" : [ "/properties/Arn", "/properties/S3BucketArn" ], + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : false, + "tagProperty" : "/properties/Tags" + }, + "replacementStrategy" : "delete_then_create", + "handlers" : { + "create" : { + "permissions" : [ "events:*", "iam:CreateServiceLinkedRole", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:PutRolePolicy", "iam:PassRole", "glue:*", "organizations:*", "kms:DescribeKey", "kms:CreateGrant", "lakeformation:*", "lambda:*", "s3:*", "securitylake:CreateDataLake", "securitylake:TagResource", "securitylake:List*", "sqs:*" ] + }, + "update" : { + "permissions" : [ "events:*", "iam:CreateServiceLinkedRole", "iam:DeleteRolePolicy", "iam:GetRole", "iam:PassRole", "iam:PutRolePolicy", "kms:DescribeKey", "kms:CreateGrant", "lakeformation:*", "lambda:*", "organizations:*", "s3:*", "securitylake:List*", "securitylake:TagResource", "securitylake:UntagResource", "securitylake:UpdateDataLake", "sqs:*" ] + }, + "delete" : { + "permissions" : [ "organizations:*", "securitylake:DeleteDataLake", "securitylake:List*" ] + }, + "read" : { + "permissions" : [ "securitylake:List*" ] + }, + "list" : { + "permissions" : [ "securitylake:List*" ] + } + } +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-securitylake-subscriber.json b/aws-cloudformation-schema/aws-securitylake-subscriber.json new file mode 100644 index 0000000000..de2e5a2d51 --- /dev/null +++ b/aws-cloudformation-schema/aws-securitylake-subscriber.json @@ -0,0 +1,197 @@ +{ + "typeName" : "AWS::SecurityLake::Subscriber", + "description" : "Resource Type definition for AWS::SecurityLake::Subscriber", + "sourceUrl" : "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-securitylake.git", + "definitions" : { + "AccessTypes" : { + "type" : "array", + "insertionOrder" : true, + "items" : { + "type" : "string", + "enum" : [ "LAKEFORMATION", "S3" ] + }, + "minItems" : 1, + "uniqueItems" : true, + "description" : "The Amazon S3 or AWS Lake Formation access type." + }, + "AwsLogSource" : { + "type" : "object", + "properties" : { + "SourceName" : { + "type" : "string", + "description" : "The name for a AWS source. This must be a Regionally unique value." + }, + "SourceVersion" : { + "type" : "string", + "pattern" : "^(latest|[0-9]\\.[0-9])$", + "description" : "The version for a AWS source. This must be a Regionally unique value." + } + }, + "description" : "Amazon Security Lake supports log and event collection for natively supported AWS services.", + "additionalProperties" : false + }, + "CustomLogSource" : { + "type" : "object", + "properties" : { + "SourceName" : { + "type" : "string", + "pattern" : "^[\\\\\\w\\-_:/.]*$", + "minLength" : 1, + "maxLength" : 64, + "description" : "The name for a third-party custom source. This must be a Regionally unique value." + }, + "SourceVersion" : { + "type" : "string", + "pattern" : "^[A-Za-z0-9\\-\\.\\_]*$", + "minLength" : 1, + "maxLength" : 32, + "description" : "The version for a third-party custom source. This must be a Regionally unique value." + } + }, + "additionalProperties" : false + }, + "Source" : { + "oneOf" : [ { + "type" : "object", + "properties" : { + "AwsLogSource" : { + "$ref" : "#/definitions/AwsLogSource" + } + }, + "required" : [ "AwsLogSource" ], + "additionalProperties" : false + }, { + "type" : "object", + "properties" : { + "CustomLogSource" : { + "$ref" : "#/definitions/CustomLogSource" + } + }, + "required" : [ "CustomLogSource" ], + "additionalProperties" : false + } ] + }, + "Tag" : { + "type" : "object", + "properties" : { + "Key" : { + "type" : "string", + "minLength" : 1, + "maxLength" : 128, + "description" : "The name of the tag. This is a general label that acts as a category for a more specific tag value (value)." + }, + "Value" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 256, + "description" : "The value that is associated with the specified tag key (key). This value acts as a descriptor for the tag key. A tag value cannot be null, but it can be an empty string." + } + }, + "required" : [ "Key", "Value" ], + "additionalProperties" : false + } + }, + "properties" : { + "AccessTypes" : { + "$ref" : "#/definitions/AccessTypes" + }, + "DataLakeArn" : { + "description" : "The ARN for the data lake.", + "type" : "string", + "minLength" : 1, + "maxLength" : 256 + }, + "SubscriberIdentity" : { + "type" : "object", + "properties" : { + "ExternalId" : { + "type" : "string", + "pattern" : "^[\\w+=,.@:/-]*$", + "minLength" : 2, + "maxLength" : 1224, + "description" : "The external ID used to establish trust relationship with the AWS identity." + }, + "Principal" : { + "type" : "string", + "pattern" : "^([0-9]{12}|[a-z0-9\\.\\-]*\\.(amazonaws|amazon)\\.com)$", + "description" : "The AWS identity principal." + } + }, + "required" : [ "ExternalId", "Principal" ], + "description" : "The AWS identity used to access your data.", + "additionalProperties" : false + }, + "SubscriberName" : { + "type" : "string", + "pattern" : "^[\\\\\\w\\s\\-_:/,.@=+]*$", + "minLength" : 1, + "maxLength" : 64, + "description" : "The name of your Security Lake subscriber account." + }, + "SubscriberDescription" : { + "type" : "string", + "description" : "The description for your subscriber account in Security Lake." + }, + "Tags" : { + "type" : "array", + "insertionOrder" : true, + "items" : { + "$ref" : "#/definitions/Tag" + }, + "description" : "An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string." + }, + "Sources" : { + "type" : "array", + "insertionOrder" : true, + "items" : { + "$ref" : "#/definitions/Source" + }, + "description" : "The supported AWS services from which logs and events are collected." + }, + "ResourceShareArn" : { + "type" : "string" + }, + "ResourceShareName" : { + "type" : "string" + }, + "SubscriberRoleArn" : { + "type" : "string" + }, + "S3BucketArn" : { + "type" : "string" + }, + "SubscriberArn" : { + "type" : "string" + } + }, + "additionalProperties" : false, + "tagging" : { + "taggable" : true, + "tagOnCreate" : true, + "tagUpdatable" : true, + "cloudFormationSystemTags" : false, + "tagProperty" : "/properties/Tags" + }, + "primaryIdentifier" : [ "/properties/SubscriberArn" ], + "required" : [ "AccessTypes", "DataLakeArn", "Sources", "SubscriberIdentity", "SubscriberName" ], + "readOnlyProperties" : [ "/properties/SubscriberArn", "/properties/S3BucketArn", "/properties/SubscriberRoleArn", "/properties/ResourceShareArn", "/properties/ResourceShareName" ], + "createOnlyProperties" : [ "/properties/DataLakeArn" ], + "replacementStrategy" : "delete_then_create", + "handlers" : { + "create" : { + "permissions" : [ "securitylake:CreateSubscriber", "securitylake:CreateCustomLogSource", "securitylake:CreateDataLake", "securitylake:TagResource", "securitylake:GetSubscriber", "securitylake:ListTagsForResource", "iam:GetRole", "iam:GetRolePolicy", "iam:PutRolePolicy", "iam:CreateRole", "iam:CreateServiceLinkedRole", "glue:GetDatabase", "glue:GetTable", "lakeformation:RegisterResource", "lakeformation:GrantPermissions", "lakeformation:RevokePermissions", "lakeformation:ListPermissions", "ram:GetResourceShareAssociations", "ram:CreateResourceShare", "ram:UpdateResourceShare", "ram:GetResourceShares" ] + }, + "read" : { + "permissions" : [ "securitylake:GetSubscriber", "securitylake:ListTagsForResource" ] + }, + "update" : { + "permissions" : [ "securitylake:UpdateSubscriber", "securitylake:GetSubscriber", "securitylake:TagResource", "securitylake:UntagResource", "securitylake:ListTagsForResource", "glue:GetDatabase", "glue:GetTable", "lakeformation:ListPermissions", "lakeformation:GrantPermissions", "lakeformation:RevokePermissions", "ram:CreateResourceShare", "ram:GetResourceShares", "ram:GetResourceShareAssociations", "ram:UpdateResourceShare", "ram:DeleteResourceShare", "iam:CreateRole", "iam:GetRole", "iam:DeleteRole", "iam:PutRolePolicy", "iam:DeleteRolePolicy", "iam:ListRolePolicies", "events:CreateApiDestination", "events:CreateConnection", "events:ListApiDestinations", "events:ListConnections", "events:PutRule", "events:UpdateApiDestination", "events:UpdateConnection", "events:DeleteApiDestination", "events:DeleteConnection", "events:DeleteRule", "events:RemoveTargets", "events:ListTargetsByRule", "events:DescribeRule", "events:PutTargets" ] + }, + "delete" : { + "permissions" : [ "securitylake:DeleteSubscriber", "iam:GetRole", "iam:ListRolePolicies", "iam:DeleteRole", "iam:DeleteRolePolicy", "glue:GetTable", "lakeformation:RevokePermissions", "lakeformation:ListPermissions", "ram:GetResourceShares", "ram:DeleteResourceShare", "events:DeleteApiDestination", "events:DeleteConnection", "events:DeleteRule", "events:ListApiDestinations", "events:ListTargetsByRule", "events:DescribeRule", "events:RemoveTargets", "sqs:DeleteQueue", "sqs:GetQueueUrl" ] + }, + "list" : { + "permissions" : [ "securitylake:ListSubscribers" ] + } + } +} \ No newline at end of file diff --git a/aws-cloudformation-schema/aws-signer-profilepermission.json b/aws-cloudformation-schema/aws-signer-profilepermission.json index 95b29197b5..995443ba46 100644 --- a/aws-cloudformation-schema/aws-signer-profilepermission.json +++ b/aws-cloudformation-schema/aws-signer-profilepermission.json @@ -35,6 +35,16 @@ "permissions" : [ "signer:RemoveProfilePermission", "signer:ListProfilePermissions" ] }, "list" : { + "handlerSchema" : { + "properties" : { + "ProfileName" : { + "$ref" : "resource-schema.json#/properties/ProfileName" + }, + "StatementId" : { + "$ref" : "resource-schema.json#/properties/StatementId" + } + } + }, "permissions" : [ "signer:ListProfilePermissions", "signer:GetSigningProfile" ] } } diff --git a/aws-cloudformation-schema/aws-wafv2-webacl.json b/aws-cloudformation-schema/aws-wafv2-webacl.json index e8b16440ea..a234642d83 100644 --- a/aws-cloudformation-schema/aws-wafv2-webacl.json +++ b/aws-cloudformation-schema/aws-wafv2-webacl.json @@ -1454,7 +1454,7 @@ "type" : "object", "description" : "Map of AssociatedResourceType and RequestBodyAssociatedResourceTypeConfig", "patternProperties" : { - "^(CLOUDFRONT)$" : { + "^(CLOUDFRONT|API_GATEWAY|COGNITO_USER_POOL|APP_RUNNER_SERVICE|VERIFIED_ACCESS_INSTANCE)$" : { "$ref" : "#/definitions/RequestBodyAssociatedResourceTypeConfig" } }, diff --git a/aws-cloudformation-schema/aws-workspacesthinclient-environment.json b/aws-cloudformation-schema/aws-workspacesthinclient-environment.json index bc10b31b77..21dc7b3566 100644 --- a/aws-cloudformation-schema/aws-workspacesthinclient-environment.json +++ b/aws-cloudformation-schema/aws-workspacesthinclient-environment.json @@ -204,19 +204,19 @@ "primaryIdentifier" : [ "/properties/Id" ], "handlers" : { "create" : { - "permissions" : [ "thinclient:CreateEnvironment", "thinclient:TagResource", "thinclient:ListTagsForResource", "appstream:DescribeStacks", "workspaces:DescribeWorkspaceDirectories", "workspaces-web:GetPortal", "workspaces-web:GetUserSettings", "kms:DescribeKey", "kms:Encrypt", "kms:Decrypt", "kms:CreateGrant" ] + "permissions" : [ "thinclient:CreateEnvironment", "thinclient:TagResource", "thinclient:ListTagsForResource", "appstream:DescribeStacks", "workspaces:DescribeWorkspaceDirectories", "workspaces-web:GetPortal", "workspaces-web:GetUserSettings", "kms:DescribeKey", "kms:Encrypt", "kms:Decrypt", "kms:CreateGrant", "kms:GenerateDataKey" ] }, "read" : { - "permissions" : [ "thinclient:GetEnvironment", "thinclient:ListTagsForResource", "kms:DescribeKey", "kms:Encrypt", "kms:Decrypt" ] + "permissions" : [ "thinclient:GetEnvironment", "thinclient:ListTagsForResource", "kms:DescribeKey", "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey" ] }, "update" : { - "permissions" : [ "appstream:DescribeStacks", "workspaces:DescribeWorkspaceDirectories", "workspaces-web:GetPortal", "workspaces-web:GetUserSettings", "thinclient:UpdateEnvironment", "thinclient:GetEnvironment", "thinclient:TagResource", "thinclient:UntagResource", "thinclient:ListTagsForResource", "kms:DescribeKey", "kms:Encrypt", "kms:Decrypt", "kms:CreateGrant", "kms:RetireGrant" ] + "permissions" : [ "appstream:DescribeStacks", "workspaces:DescribeWorkspaceDirectories", "workspaces-web:GetPortal", "workspaces-web:GetUserSettings", "thinclient:UpdateEnvironment", "thinclient:GetEnvironment", "thinclient:TagResource", "thinclient:UntagResource", "thinclient:ListTagsForResource", "kms:DescribeKey", "kms:Encrypt", "kms:Decrypt", "kms:CreateGrant", "kms:RetireGrant", "kms:GenerateDataKey" ] }, "delete" : { "permissions" : [ "thinclient:DeleteEnvironment", "thinclient:UntagResource", "kms:DescribeKey", "kms:RetireGrant" ] }, "list" : { - "permissions" : [ "thinclient:ListEnvironment", "thinclient:ListTagsForResource", "kms:DescribeKey", "kms:Encrypt", "kms:Decrypt" ] + "permissions" : [ "thinclient:ListEnvironment", "thinclient:ListTagsForResource", "kms:DescribeKey", "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey" ] } } } \ No newline at end of file diff --git a/provider/cmd/pulumi-gen-aws-native/deprecated-types.txt b/provider/cmd/pulumi-gen-aws-native/deprecated-types.txt index 25340906bf..cc72d58327 100644 --- a/provider/cmd/pulumi-gen-aws-native/deprecated-types.txt +++ b/provider/cmd/pulumi-gen-aws-native/deprecated-types.txt @@ -3,7 +3,6 @@ AWS::Cognito::UserPoolDomain AWS::Cognito::UserPoolIdentityProvider AWS::Cognito::UserPoolResourceServer AWS::Cognito::UserPoolUICustomizationAttachment -AWS::EC2::TransitGatewayRouteTableAssociation AWS::GameCast::Application AWS::GameCast::StreamGroup AWS::SNS::TopicPolicy diff --git a/provider/cmd/pulumi-gen-aws-native/supported-types.txt b/provider/cmd/pulumi-gen-aws-native/supported-types.txt index b6bf26cea7..457890613b 100644 --- a/provider/cmd/pulumi-gen-aws-native/supported-types.txt +++ b/provider/cmd/pulumi-gen-aws-native/supported-types.txt @@ -3,6 +3,7 @@ AWS::ACMPCA::CertificateAuthority AWS::ACMPCA::CertificateAuthorityActivation AWS::ACMPCA::Permission AWS::APS::RuleGroupsNamespace +AWS::APS::Scraper AWS::APS::Workspace AWS::ARCZonalShift::ZonalAutoshiftConfiguration AWS::AccessAnalyzer::Analyzer @@ -49,6 +50,7 @@ AWS::AppConfig::HostedConfigurationVersion AWS::AppFlow::Connector AWS::AppFlow::ConnectorProfile AWS::AppFlow::Flow +AWS::AppIntegrations::Application AWS::AppIntegrations::DataIntegration AWS::AppIntegrations::EventIntegration AWS::AppRunner::AutoScalingConfiguration @@ -100,6 +102,8 @@ AWS::Batch::ComputeEnvironment AWS::Batch::JobDefinition AWS::Batch::JobQueue AWS::Batch::SchedulingPolicy +AWS::Bedrock::Agent +AWS::Bedrock::AgentAlias AWS::Budgets::BudgetsAction AWS::CE::AnomalyMonitor AWS::CE::AnomalySubscription @@ -147,8 +151,10 @@ AWS::CloudWatch::Alarm AWS::CloudWatch::CompositeAlarm AWS::CloudWatch::MetricStream AWS::CodeArtifact::Domain +AWS::CodeArtifact::PackageGroup AWS::CodeArtifact::Repository AWS::CodeBuild::Fleet +AWS::CodeConnections::Connection AWS::CodeDeploy::Application AWS::CodeDeploy::DeploymentConfig AWS::CodeGuruProfiler::ProfilingGroup @@ -545,6 +551,8 @@ AWS::KMS::Alias AWS::KMS::Key AWS::KMS::ReplicaKey AWS::KafkaConnect::Connector +AWS::KafkaConnect::CustomPlugin +AWS::KafkaConnect::WorkerConfiguration AWS::Kendra::DataSource AWS::Kendra::Faq AWS::Kendra::Index @@ -869,6 +877,9 @@ AWS::SecretsManager::Secret AWS::SecurityHub::AutomationRule AWS::SecurityHub::Hub AWS::SecurityHub::Standard +AWS::SecurityLake::AwsLogSource +AWS::SecurityLake::DataLake +AWS::SecurityLake::Subscriber AWS::ServiceCatalog::CloudFormationProvisionedProduct AWS::ServiceCatalog::ServiceAction AWS::ServiceCatalog::ServiceActionAssociation diff --git a/provider/cmd/pulumi-resource-aws-native/metadata.json b/provider/cmd/pulumi-resource-aws-native/metadata.json index 84cfe31ece..4d308e9edd 100644 --- a/provider/cmd/pulumi-resource-aws-native/metadata.json +++ b/provider/cmd/pulumi-resource-aws-native/metadata.json @@ -4230,6 +4230,81 @@ "tagsProperty": "tags", "tagsStyle": "keyValueArray" }, + "aws-native:appintegrations:Application": { + "cf": "AWS::AppIntegrations::Application", + "inputs": { + "applicationSourceConfig": { + "$ref": "#/types/aws-native:appintegrations:ApplicationSourceConfigProperties", + "description": "Application source config" + }, + "description": { + "type": "string", + "description": "The application description." + }, + "name": { + "type": "string", + "description": "The name of the application." + }, + "namespace": { + "type": "string", + "description": "The namespace of the application." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "The tags (keys and values) associated with the application." + } + }, + "outputs": { + "applicationArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the application." + }, + "applicationSourceConfig": { + "$ref": "#/types/aws-native:appintegrations:ApplicationSourceConfigProperties", + "description": "Application source config" + }, + "awsId": { + "type": "string", + "description": "The id of the application." + }, + "description": { + "type": "string", + "description": "The application description." + }, + "name": { + "type": "string", + "description": "The name of the application." + }, + "namespace": { + "type": "string", + "description": "The namespace of the application." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "The tags (keys and values) associated with the application." + } + }, + "autoNamingSpec": { + "sdkName": "name", + "minLength": 1, + "maxLength": 255 + }, + "required": [ + "applicationSourceConfig", + "description" + ], + "irreversibleNames": { + "awsId": "Id" + }, + "tagsProperty": "tags", + "tagsStyle": "keyValueArray" + }, "aws-native:appintegrations:DataIntegration": { "cf": "AWS::AppIntegrations::DataIntegration", "inputs": { @@ -6121,7 +6196,8 @@ "description": "The maximum number of resolver request inputs that will be sent to a single LAMlong function in a ``BatchInvoke`` operation." }, "metricsConfig": { - "$ref": "#/types/aws-native:appsync:ResolverMetricsConfig" + "$ref": "#/types/aws-native:appsync:ResolverMetricsConfig", + "description": "Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value." }, "pipelineConfig": { "$ref": "#/types/aws-native:appsync:ResolverPipelineConfig", @@ -6192,7 +6268,8 @@ "description": "The maximum number of resolver request inputs that will be sent to a single LAMlong function in a ``BatchInvoke`` operation." }, "metricsConfig": { - "$ref": "#/types/aws-native:appsync:ResolverMetricsConfig" + "$ref": "#/types/aws-native:appsync:ResolverMetricsConfig", + "description": "Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value." }, "pipelineConfig": { "$ref": "#/types/aws-native:appsync:ResolverPipelineConfig", @@ -6403,6 +6480,82 @@ "tagsProperty": "tags", "tagsStyle": "keyValueArray" }, + "aws-native:aps:Scraper": { + "cf": "AWS::APS::Scraper", + "inputs": { + "alias": { + "type": "string", + "description": "Scraper alias." + }, + "destination": { + "$ref": "#/types/aws-native:aps:ScraperDestination" + }, + "scrapeConfiguration": { + "$ref": "#/types/aws-native:aps:ScraperScrapeConfiguration" + }, + "source": { + "$ref": "#/types/aws-native:aps:ScraperSource" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to this resource." + } + }, + "outputs": { + "alias": { + "type": "string", + "description": "Scraper alias.", + "replaceOnChanges": true + }, + "arn": { + "type": "string", + "description": "Scraper ARN." + }, + "destination": { + "$ref": "#/types/aws-native:aps:ScraperDestination", + "replaceOnChanges": true + }, + "roleArn": { + "type": "string", + "description": "IAM role ARN for the scraper." + }, + "scrapeConfiguration": { + "$ref": "#/types/aws-native:aps:ScraperScrapeConfiguration", + "replaceOnChanges": true + }, + "scraperId": { + "type": "string", + "description": "Required to identify a specific scraper." + }, + "source": { + "$ref": "#/types/aws-native:aps:ScraperSource", + "replaceOnChanges": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to this resource." + } + }, + "required": [ + "destination", + "scrapeConfiguration", + "source" + ], + "createOnly": [ + "alias", + "destination", + "scrapeConfiguration", + "source" + ], + "tagsProperty": "tags", + "tagsStyle": "keyValueArray" + }, "aws-native:aps:Workspace": { "cf": "AWS::APS::Workspace", "inputs": { @@ -9087,6 +9240,280 @@ "tagsProperty": "tags", "tagsStyle": "stringMap" }, + "aws-native:bedrock:Agent": { + "cf": "AWS::Bedrock::Agent", + "inputs": { + "actionGroups": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:bedrock:AgentActionGroup" + }, + "description": "List of ActionGroups" + }, + "agentName": { + "type": "string", + "description": "Name for a resource." + }, + "agentResourceRoleArn": { + "type": "string", + "description": "ARN of a IAM role." + }, + "autoPrepare": { + "type": "boolean", + "description": "Specifies whether to automatically prepare after creating or updating the agent." + }, + "customerEncryptionKeyArn": { + "type": "string", + "description": "A KMS key ARN" + }, + "description": { + "type": "string", + "description": "Description of the Resource." + }, + "foundationModel": { + "type": "string", + "description": "ARN or name of a Bedrock model." + }, + "idleSessionTtlInSeconds": { + "type": "number", + "description": "Max Session Time." + }, + "instruction": { + "type": "string", + "description": "Instruction for the agent." + }, + "knowledgeBases": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:bedrock:AgentKnowledgeBase" + }, + "description": "List of Agent Knowledge Bases" + }, + "promptOverrideConfiguration": { + "$ref": "#/types/aws-native:bedrock:AgentPromptOverrideConfiguration" + }, + "skipResourceInUseCheckOnDelete": { + "type": "boolean", + "description": "Specifies whether to allow deleting agent while it is in use." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "outputs": { + "actionGroups": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:bedrock:AgentActionGroup" + }, + "description": "List of ActionGroups" + }, + "agentArn": { + "type": "string", + "description": "Arn representation of the Agent." + }, + "agentId": { + "type": "string", + "description": "Identifier for a resource." + }, + "agentName": { + "type": "string", + "description": "Name for a resource." + }, + "agentResourceRoleArn": { + "type": "string", + "description": "ARN of a IAM role." + }, + "agentStatus": { + "$ref": "#/types/aws-native:bedrock:AgentStatus" + }, + "agentVersion": { + "type": "string", + "description": "Draft Agent Version." + }, + "autoPrepare": { + "type": "boolean", + "description": "Specifies whether to automatically prepare after creating or updating the agent." + }, + "createdAt": { + "type": "string", + "description": "Time Stamp." + }, + "customerEncryptionKeyArn": { + "type": "string", + "description": "A KMS key ARN" + }, + "description": { + "type": "string", + "description": "Description of the Resource." + }, + "failureReasons": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Failure Reasons for Error." + }, + "foundationModel": { + "type": "string", + "description": "ARN or name of a Bedrock model." + }, + "idleSessionTtlInSeconds": { + "type": "number", + "description": "Max Session Time." + }, + "instruction": { + "type": "string", + "description": "Instruction for the agent." + }, + "knowledgeBases": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:bedrock:AgentKnowledgeBase" + }, + "description": "List of Agent Knowledge Bases" + }, + "preparedAt": { + "type": "string", + "description": "Time Stamp." + }, + "promptOverrideConfiguration": { + "$ref": "#/types/aws-native:bedrock:AgentPromptOverrideConfiguration" + }, + "recommendedActions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The recommended actions users can take to resolve an error in failureReasons." + }, + "skipResourceInUseCheckOnDelete": { + "type": "boolean", + "description": "Specifies whether to allow deleting agent while it is in use." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "updatedAt": { + "type": "string", + "description": "Time Stamp." + } + }, + "autoNamingSpec": { + "sdkName": "agentName" + }, + "writeOnly": [ + "actionGroups/*/SkipResourceInUseCheckOnDelete", + "autoPrepare", + "skipResourceInUseCheckOnDelete" + ], + "irreversibleNames": { + "idleSessionTtlInSeconds": "IdleSessionTTLInSeconds" + }, + "tagsProperty": "tags", + "tagsStyle": "stringMap" + }, + "aws-native:bedrock:AgentAlias": { + "cf": "AWS::Bedrock::AgentAlias", + "inputs": { + "agentAliasName": { + "type": "string", + "description": "Name for a resource." + }, + "agentId": { + "type": "string", + "description": "Identifier for a resource." + }, + "description": { + "type": "string", + "description": "Description of the Resource." + }, + "routingConfiguration": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:bedrock:AgentAliasRoutingConfigurationListItem" + }, + "description": "Routing configuration for an Agent alias." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "outputs": { + "agentAliasArn": { + "type": "string", + "description": "Arn representation of the Agent Alias." + }, + "agentAliasHistoryEvents": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:bedrock:AgentAliasHistoryEvent" + }, + "description": "The list of history events for an alias for an Agent." + }, + "agentAliasId": { + "type": "string", + "description": "Id for an Agent Alias generated at the server side." + }, + "agentAliasName": { + "type": "string", + "description": "Name for a resource." + }, + "agentAliasStatus": { + "$ref": "#/types/aws-native:bedrock:AgentAliasStatus" + }, + "agentId": { + "type": "string", + "description": "Identifier for a resource.", + "replaceOnChanges": true + }, + "createdAt": { + "type": "string", + "description": "Time Stamp." + }, + "description": { + "type": "string", + "description": "Description of the Resource." + }, + "routingConfiguration": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:bedrock:AgentAliasRoutingConfigurationListItem" + }, + "description": "Routing configuration for an Agent alias." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "updatedAt": { + "type": "string", + "description": "Time Stamp." + } + }, + "autoNamingSpec": { + "sdkName": "agentAliasName" + }, + "required": [ + "agentId" + ], + "createOnly": [ + "agentId" + ], + "tagsProperty": "tags", + "tagsStyle": "stringMap" + }, "aws-native:budgets:BudgetsAction": { "cf": "AWS::Budgets::BudgetsAction", "inputs": { @@ -12719,6 +13146,91 @@ "tagsProperty": "tags", "tagsStyle": "keyValueArray" }, + "aws-native:codeartifact:PackageGroup": { + "cf": "AWS::CodeArtifact::PackageGroup", + "inputs": { + "contactInfo": { + "type": "string", + "description": "The contact info of the package group." + }, + "description": { + "type": "string", + "description": "The text description of the package group." + }, + "domainName": { + "type": "string", + "description": "The name of the domain that contains the package group." + }, + "domainOwner": { + "type": "string", + "description": "The 12-digit account ID of the AWS account that owns the domain." + }, + "originConfiguration": { + "$ref": "#/types/aws-native:codeartifact:PackageGroupOriginConfiguration", + "description": "The package origin configuration of the package group." + }, + "pattern": { + "type": "string", + "description": "The package group pattern that is used to gather packages." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to the package group." + } + }, + "outputs": { + "arn": { + "type": "string", + "description": "The ARN of the package group." + }, + "contactInfo": { + "type": "string", + "description": "The contact info of the package group." + }, + "description": { + "type": "string", + "description": "The text description of the package group." + }, + "domainName": { + "type": "string", + "description": "The name of the domain that contains the package group.", + "replaceOnChanges": true + }, + "domainOwner": { + "type": "string", + "description": "The 12-digit account ID of the AWS account that owns the domain." + }, + "originConfiguration": { + "$ref": "#/types/aws-native:codeartifact:PackageGroupOriginConfiguration", + "description": "The package origin configuration of the package group." + }, + "pattern": { + "type": "string", + "description": "The package group pattern that is used to gather packages.", + "replaceOnChanges": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to the package group." + } + }, + "required": [ + "domainName", + "pattern" + ], + "createOnly": [ + "domainName", + "pattern" + ], + "tagsProperty": "tags", + "tagsStyle": "keyValueArray" + }, "aws-native:codeartifact:Repository": { "cf": "AWS::CodeArtifact::Repository", "inputs": { @@ -12887,6 +13399,78 @@ "tagsProperty": "tags", "tagsStyle": "keyValueArray" }, + "aws-native:codeconnections:Connection": { + "cf": "AWS::CodeConnections::Connection", + "inputs": { + "connectionName": { + "type": "string", + "description": "The name of the connection. Connection names must be unique in an AWS user account." + }, + "hostArn": { + "type": "string", + "description": "The host arn configured to represent the infrastructure where your third-party provider is installed. You must specify either a ProviderType or a HostArn." + }, + "providerType": { + "type": "string", + "description": "The name of the external provider where your third-party code repository is configured. You must specify either a ProviderType or a HostArn." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "Specifies the tags applied to a connection." + } + }, + "outputs": { + "connectionArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services." + }, + "connectionName": { + "type": "string", + "description": "The name of the connection. Connection names must be unique in an AWS user account.", + "replaceOnChanges": true + }, + "connectionStatus": { + "type": "string", + "description": "The current status of the connection." + }, + "hostArn": { + "type": "string", + "description": "The host arn configured to represent the infrastructure where your third-party provider is installed. You must specify either a ProviderType or a HostArn.", + "replaceOnChanges": true + }, + "ownerAccountId": { + "type": "string", + "description": "The name of the external provider where your third-party code repository is configured. For Bitbucket, this is the account ID of the owner of the Bitbucket repository." + }, + "providerType": { + "type": "string", + "description": "The name of the external provider where your third-party code repository is configured. You must specify either a ProviderType or a HostArn.", + "replaceOnChanges": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "Specifies the tags applied to a connection." + } + }, + "autoNamingSpec": { + "sdkName": "connectionName", + "minLength": 1, + "maxLength": 32 + }, + "createOnly": [ + "connectionName", + "hostArn", + "providerType" + ], + "tagsProperty": "tags", + "tagsStyle": "keyValueArray" + }, "aws-native:codedeploy:Application": { "cf": "AWS::CodeDeploy::Application", "inputs": { @@ -13393,7 +13977,7 @@ "replaceOnChanges": true }, "providerType": { - "type": "string", + "$ref": "#/types/aws-native:codestarconnections:RepositoryLinkProviderType", "description": "The name of the external provider where your third-party code repository is configured." }, "repositoryLinkArn": { @@ -13440,6 +14024,10 @@ "type": "string", "description": "The source provider repository path of the sync configuration file of the respective SyncType." }, + "publishDeploymentStatus": { + "$ref": "#/types/aws-native:codestarconnections:SyncConfigurationPublishDeploymentStatus", + "description": "Whether to enable or disable publishing of deployment status to source providers." + }, "repositoryLinkId": { "type": "string", "description": "A UUID that uniquely identifies the RepositoryLink that the SyncConfig is associated with." @@ -13455,6 +14043,10 @@ "syncType": { "type": "string", "description": "The type of resource synchronization service that is to be configured, for example, CFN_STACK_SYNC." + }, + "triggerResourceUpdateOn": { + "$ref": "#/types/aws-native:codestarconnections:SyncConfigurationTriggerResourceUpdateOn", + "description": "When to trigger Git sync to begin the stack update." } }, "outputs": { @@ -13471,9 +14063,13 @@ "description": "the ID of the entity that owns the repository." }, "providerType": { - "type": "string", + "$ref": "#/types/aws-native:codestarconnections:SyncConfigurationProviderType", "description": "The name of the external provider where your third-party code repository is configured." }, + "publishDeploymentStatus": { + "$ref": "#/types/aws-native:codestarconnections:SyncConfigurationPublishDeploymentStatus", + "description": "Whether to enable or disable publishing of deployment status to source providers." + }, "repositoryLinkId": { "type": "string", "description": "A UUID that uniquely identifies the RepositoryLink that the SyncConfig is associated with." @@ -13495,6 +14091,10 @@ "type": "string", "description": "The type of resource synchronization service that is to be configured, for example, CFN_STACK_SYNC.", "replaceOnChanges": true + }, + "triggerResourceUpdateOn": { + "$ref": "#/types/aws-native:codestarconnections:SyncConfigurationTriggerResourceUpdateOn", + "description": "When to trigger Git sync to begin the stack update." } }, "required": [ @@ -15262,7 +15862,8 @@ "deliveryS3KeyPrefix": "DeliveryS3KeyPrefix", "templateS3Uri": "TemplateS3Uri", "templateSsmDocumentDetails": "TemplateSSMDocumentDetails" - } + }, + "tagsProperty": "tags" }, "aws-native:configuration:OrganizationConformancePack": { "cf": "AWS::Config::OrganizationConformancePack", @@ -15355,7 +15956,8 @@ "deliveryS3Bucket": "DeliveryS3Bucket", "deliveryS3KeyPrefix": "DeliveryS3KeyPrefix", "templateS3Uri": "TemplateS3Uri" - } + }, + "tagsProperty": "tags" }, "aws-native:configuration:StoredQuery": { "cf": "AWS::Config::StoredQuery", @@ -16103,6 +16705,14 @@ "description": "The identifier of the Amazon Connect instance.", "replaceOnChanges": true }, + "lastModifiedRegion": { + "type": "string", + "description": "Last modified region." + }, + "lastModifiedTime": { + "type": "number", + "description": "Last modified time." + }, "name": { "type": "string", "description": "The name of the predefined attribute.", @@ -16614,6 +17224,10 @@ "aws-native:connect:SecurityProfile": { "cf": "AWS::Connect::SecurityProfile", "inputs": { + "allowedAccessControlHierarchyGroupId": { + "type": "string", + "description": "The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect." + }, "allowedAccessControlTags": { "type": "array", "items": { @@ -16621,10 +17235,24 @@ }, "description": "The list of tags that a security profile uses to restrict access to resources in Amazon Connect." }, + "applications": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:connect:SecurityProfileApplication" + }, + "description": "A list of third-party applications that the security profile will give access to." + }, "description": { "type": "string", "description": "The description of the security profile." }, + "hierarchyRestrictedResources": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect." + }, "instanceArn": { "type": "string", "description": "The identifier of the Amazon Connect instance." @@ -16656,6 +17284,10 @@ } }, "outputs": { + "allowedAccessControlHierarchyGroupId": { + "type": "string", + "description": "The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect." + }, "allowedAccessControlTags": { "type": "array", "items": { @@ -16663,15 +17295,37 @@ }, "description": "The list of tags that a security profile uses to restrict access to resources in Amazon Connect." }, + "applications": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:connect:SecurityProfileApplication" + }, + "description": "A list of third-party applications that the security profile will give access to." + }, "description": { "type": "string", "description": "The description of the security profile." }, + "hierarchyRestrictedResources": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect." + }, "instanceArn": { "type": "string", "description": "The identifier of the Amazon Connect instance.", "replaceOnChanges": true }, + "lastModifiedRegion": { + "type": "string", + "description": "The AWS Region where this resource was last modified." + }, + "lastModifiedTime": { + "type": "number", + "description": "The timestamp when this resource was last modified." + }, "permissions": { "type": "array", "items": { @@ -22135,12 +22789,18 @@ "authType": { "type": "string" }, + "backupRetentionPeriod": { + "type": "integer" + }, "clusterName": { "type": "string" }, "kmsKeyId": { "type": "string" }, + "preferredBackupWindow": { + "type": "string" + }, "preferredMaintenanceWindow": { "type": "string" }, @@ -22150,6 +22810,9 @@ "shardCount": { "type": "integer" }, + "shardInstanceCount": { + "type": "integer" + }, "subnetIds": { "type": "array", "items": { @@ -22181,6 +22844,9 @@ "type": "string", "replaceOnChanges": true }, + "backupRetentionPeriod": { + "type": "integer" + }, "clusterArn": { "type": "string" }, @@ -22195,6 +22861,9 @@ "type": "string", "replaceOnChanges": true }, + "preferredBackupWindow": { + "type": "string" + }, "preferredMaintenanceWindow": { "type": "string" }, @@ -22204,6 +22873,9 @@ "shardCount": { "type": "integer" }, + "shardInstanceCount": { + "type": "integer" + }, "subnetIds": { "type": "array", "items": { @@ -22449,6 +23121,9 @@ "$ref": "#/types/aws-native:dynamodb:TableProvisionedThroughput", "description": "Throughput for the specified table, which consists of values for ``ReadCapacityUnits`` and ``WriteCapacityUnits``. For more information about the contents of a provisioned throughput structure, see [Amazon DynamoDB Table ProvisionedThroughput](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ProvisionedThroughput.html). \n If you set ``BillingMode`` as ``PROVISIONED``, you must specify this property. If you set ``BillingMode`` as ``PAY_PER_REQUEST``, you cannot specify this property." }, + "resourcePolicy": { + "$ref": "#/types/aws-native:dynamodb:TableResourcePolicy" + }, "sseSpecification": { "$ref": "#/types/aws-native:dynamodb:TableSseSpecification", "description": "Specifies the settings to enable server-side encryption." @@ -22545,6 +23220,9 @@ "$ref": "#/types/aws-native:dynamodb:TableProvisionedThroughput", "description": "Throughput for the specified table, which consists of values for ``ReadCapacityUnits`` and ``WriteCapacityUnits``. For more information about the contents of a provisioned throughput structure, see [Amazon DynamoDB Table ProvisionedThroughput](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ProvisionedThroughput.html). \n If you set ``BillingMode`` as ``PROVISIONED``, you must specify this property. If you set ``BillingMode`` as ``PAY_PER_REQUEST``, you cannot specify this property." }, + "resourcePolicy": { + "$ref": "#/types/aws-native:dynamodb:TableResourcePolicy" + }, "sseSpecification": { "$ref": "#/types/aws-native:dynamodb:TableSseSpecification", "description": "Specifies the settings to enable server-side encryption." @@ -24222,8 +24900,7 @@ }, "outputs": { "internetGatewayId": { - "type": "string", - "description": "ID of internet gateway." + "type": "string" }, "tags": { "type": "array", @@ -26849,6 +27526,10 @@ "type": "boolean", "description": "Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. For more information, see [DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) in the *User Guide*." }, + "enableLniAtDeviceIndex": { + "type": "integer", + "description": "Indicates the device position for local network interfaces in this subnet. For example, ``1`` indicates local network interfaces in this subnet are the secondary network interface (eth1)." + }, "ipv4IpamPoolId": { "type": "string", "description": "An IPv4 IPAM pool ID for the subnet." @@ -26882,7 +27563,7 @@ }, "mapPublicIpOnLaunch": { "type": "boolean", - "description": "Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``.\n AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/)." + "description": "Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``.\n AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/)." }, "outpostArn": { "type": "string", @@ -26890,7 +27571,7 @@ }, "privateDnsNameOptionsOnLaunch": { "$ref": "#/types/aws-native:ec2:PrivateDnsNameOptionsOnLaunchProperties", - "description": "The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*.\n Available options:\n + EnableResourceNameDnsAAAARecord (true | false)\n + EnableResourceNameDnsARecord (true | false)\n + HostnameType (ip-name | resource-name)" + "description": "The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*.\n Available options:\n + EnableResourceNameDnsAAAARecord (true | false)\n + EnableResourceNameDnsARecord (true | false)\n + HostnameType (ip-name | resource-name)" }, "tags": { "type": "array", @@ -26928,6 +27609,10 @@ "type": "boolean", "description": "Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. For more information, see [DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) in the *User Guide*." }, + "enableLniAtDeviceIndex": { + "type": "integer", + "description": "Indicates the device position for local network interfaces in this subnet. For example, ``1`` indicates local network interfaces in this subnet are the secondary network interface (eth1)." + }, "ipv4IpamPoolId": { "type": "string", "description": "An IPv4 IPAM pool ID for the subnet.", @@ -26966,7 +27651,7 @@ }, "mapPublicIpOnLaunch": { "type": "boolean", - "description": "Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``.\n AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/)." + "description": "Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``.\n AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/)." }, "networkAclAssociationId": { "type": "string" @@ -26978,7 +27663,7 @@ }, "privateDnsNameOptionsOnLaunch": { "$ref": "#/types/aws-native:ec2:PrivateDnsNameOptionsOnLaunchProperties", - "description": "The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*.\n Available options:\n + EnableResourceNameDnsAAAARecord (true | false)\n + EnableResourceNameDnsARecord (true | false)\n + HostnameType (ip-name | resource-name)" + "description": "The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*.\n Available options:\n + EnableResourceNameDnsAAAARecord (true | false)\n + EnableResourceNameDnsARecord (true | false)\n + HostnameType (ip-name | resource-name)" }, "subnetId": { "type": "string" @@ -27012,6 +27697,7 @@ "vpcId" ], "writeOnly": [ + "enableLniAtDeviceIndex", "ipv4IpamPoolId", "ipv4NetmaskLength", "ipv6IpamPoolId", @@ -27809,22 +28495,23 @@ "cf": "AWS::EC2::TransitGatewayRouteTableAssociation", "inputs": { "transitGatewayAttachmentId": { - "type": "string" + "type": "string", + "description": "The ID of transit gateway attachment." }, "transitGatewayRouteTableId": { - "type": "string" + "type": "string", + "description": "The ID of transit gateway route table." } }, "outputs": { - "awsId": { - "type": "string" - }, "transitGatewayAttachmentId": { "type": "string", + "description": "The ID of transit gateway attachment.", "replaceOnChanges": true }, "transitGatewayRouteTableId": { "type": "string", + "description": "The ID of transit gateway route table.", "replaceOnChanges": true } }, @@ -27835,10 +28522,7 @@ "createOnly": [ "transitGatewayAttachmentId", "transitGatewayRouteTableId" - ], - "irreversibleNames": { - "awsId": "Id" - } + ] }, "aws-native:ec2:TransitGatewayVpcAttachment": { "cf": "AWS::EC2::TransitGatewayVpcAttachment", @@ -33805,7 +34489,6 @@ "required": [ "idMappingTechniques", "inputSourceConfig", - "outputSourceConfig", "roleArn" ], "createOnly": [ @@ -36804,7 +37487,7 @@ "inputs": { "autoScalingPolicy": { "$ref": "#/types/aws-native:gamelift:GameServerGroupAutoScalingPolicy", - "description": "Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting" + "description": "Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource." }, "balancingStrategy": { "$ref": "#/types/aws-native:gamelift:GameServerGroupBalancingStrategy", @@ -36831,15 +37514,15 @@ }, "launchTemplate": { "$ref": "#/types/aws-native:gamelift:GameServerGroupLaunchTemplate", - "description": "The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group." + "description": "The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource." }, "maxSize": { "type": "number", - "description": "The maximum number of instances allowed in the EC2 Auto Scaling group." + "description": "The maximum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource." }, "minSize": { "type": "number", - "description": "The minimum number of instances allowed in the EC2 Auto Scaling group." + "description": "The minimum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource." }, "roleArn": { "type": "string", @@ -36850,14 +37533,14 @@ "items": { "$ref": "#/types/aws-native:index:Tag" }, - "description": "A list of labels to assign to the new game server group resource." + "description": "A list of labels to assign to the new game server group resource. Updating game server group tags with CloudFormation will not take effect. Please update this property using AWS GameLift APIs instead." }, "vpcSubnets": { "type": "array", "items": { "type": "string" }, - "description": "A list of virtual private cloud (VPC) subnets to use with instances in the game server group." + "description": "A list of virtual private cloud (VPC) subnets to use with instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource." } }, "outputs": { @@ -36867,7 +37550,7 @@ }, "autoScalingPolicy": { "$ref": "#/types/aws-native:gamelift:GameServerGroupAutoScalingPolicy", - "description": "Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting" + "description": "Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource." }, "balancingStrategy": { "$ref": "#/types/aws-native:gamelift:GameServerGroupBalancingStrategy", @@ -36898,15 +37581,15 @@ }, "launchTemplate": { "$ref": "#/types/aws-native:gamelift:GameServerGroupLaunchTemplate", - "description": "The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group." + "description": "The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource." }, "maxSize": { "type": "number", - "description": "The maximum number of instances allowed in the EC2 Auto Scaling group." + "description": "The maximum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource." }, "minSize": { "type": "number", - "description": "The minimum number of instances allowed in the EC2 Auto Scaling group." + "description": "The minimum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource." }, "roleArn": { "type": "string", @@ -36917,14 +37600,14 @@ "items": { "$ref": "#/types/aws-native:index:Tag" }, - "description": "A list of labels to assign to the new game server group resource." + "description": "A list of labels to assign to the new game server group resource. Updating game server group tags with CloudFormation will not take effect. Please update this property using AWS GameLift APIs instead." }, "vpcSubnets": { "type": "array", "items": { "type": "string" }, - "description": "A list of virtual private cloud (VPC) subnets to use with instances in the game server group." + "description": "A list of virtual private cloud (VPC) subnets to use with instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource." } }, "autoNamingSpec": { @@ -39156,58 +39839,55 @@ "inputs": { "description": { "type": "string", - "description": "A friendly description of the policy." + "description": "A friendly description of the policy.\n Typically used to store information about the permissions defined in the policy. For example, \"Grants access to production DynamoDB tables.\"\n The policy description is immutable. After a value is assigned, it cannot be changed." }, "groups": { "type": "array", "items": { "type": "string" }, - "description": "The name (friendly name, not ARN) of the group to attach the policy to." + "description": "The name (friendly name, not ARN) of the group to attach the policy to.\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-" }, "managedPolicyName": { "type": "string", - "description": "The friendly name of the policy." + "description": "The friendly name of the policy.\n If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.\n If you specify a name, you must specify the ``CAPABILITY_NAMED_IAM`` value to acknowledge your template's capabilities. For more information, see [Acknowledging Resources in Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities).\n Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using ``Fn::Join`` and ``AWS::Region`` to create a Region-specific name, as in the following example: ``{\"Fn::Join\": [\"\", [{\"Ref\": \"AWS::Region\"}, {\"Ref\": \"MyResourceName\"}]]}``." }, "path": { "type": "string", - "description": "The path for the policy." + "description": "The path for the policy.\n For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*.\n This parameter is optional. If it is not included, it defaults to a slash (/).\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (``\\u0021``) through the DEL character (``\\u007F``), including most punctuation characters, digits, and upper and lowercased letters.\n You cannot use an asterisk (*) in the path name." }, "policyDocument": { "$ref": "pulumi.json#/Any", - "description": "The JSON policy document that you want to use as the content for the new policy.\n\nSearch the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property." + "description": "The JSON policy document that you want to use as the content for the new policy.\n You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM.\n The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length).\n To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. \n The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following:\n + Any printable ASCII character ranging from the space character (``\\u0020``) through the end of the ASCII character range\n + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\\u00FF``)\n + The special characters tab (``\\u0009``), line feed (``\\u000A``), and carriage return (``\\u000D``)\n\nSearch the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property." }, "roles": { "type": "array", "items": { "type": "string" }, - "description": "The name (friendly name, not ARN) of the role to attach the policy to." + "description": "The name (friendly name, not ARN) of the role to attach the policy to.\n This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-\n If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy." }, "users": { "type": "array", "items": { "type": "string" }, - "description": "The name (friendly name, not ARN) of the IAM user to attach the policy to." + "description": "The name (friendly name, not ARN) of the IAM user to attach the policy to.\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-" } }, "outputs": { "attachmentCount": { - "type": "integer", - "description": "The number of entities (users, groups, and roles) that the policy is attached to." + "type": "integer" }, "createDate": { - "type": "string", - "description": "The date and time, in ISO 8601 date-time format, when the policy was created." + "type": "string" }, "defaultVersionId": { - "type": "string", - "description": "The identifier for the version of the policy that is set as the default version." + "type": "string" }, "description": { "type": "string", - "description": "A friendly description of the policy.", + "description": "A friendly description of the policy.\n Typically used to store information about the permissions defined in the policy. For example, \"Grants access to production DynamoDB tables.\"\n The policy description is immutable. After a value is assigned, it cannot be changed.", "replaceOnChanges": true }, "groups": { @@ -39215,55 +39895,50 @@ "items": { "type": "string" }, - "description": "The name (friendly name, not ARN) of the group to attach the policy to." + "description": "The name (friendly name, not ARN) of the group to attach the policy to.\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-" }, "isAttachable": { - "type": "boolean", - "description": "Specifies whether the policy can be attached to an IAM user, group, or role." + "type": "boolean" }, "managedPolicyName": { "type": "string", - "description": "The friendly name of the policy.", + "description": "The friendly name of the policy.\n If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.\n If you specify a name, you must specify the ``CAPABILITY_NAMED_IAM`` value to acknowledge your template's capabilities. For more information, see [Acknowledging Resources in Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities).\n Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using ``Fn::Join`` and ``AWS::Region`` to create a Region-specific name, as in the following example: ``{\"Fn::Join\": [\"\", [{\"Ref\": \"AWS::Region\"}, {\"Ref\": \"MyResourceName\"}]]}``.", "replaceOnChanges": true }, "path": { "type": "string", - "description": "The path for the policy.", + "description": "The path for the policy.\n For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*.\n This parameter is optional. If it is not included, it defaults to a slash (/).\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (``\\u0021``) through the DEL character (``\\u007F``), including most punctuation characters, digits, and upper and lowercased letters.\n You cannot use an asterisk (*) in the path name.", "replaceOnChanges": true }, "permissionsBoundaryUsageCount": { - "type": "integer", - "description": "The number of entities (users and roles) for which the policy is used to set the permissions boundary." + "type": "integer" }, "policyArn": { - "type": "string", - "description": "Amazon Resource Name (ARN) of the managed policy" + "type": "string" }, "policyDocument": { "$ref": "pulumi.json#/Any", - "description": "The JSON policy document that you want to use as the content for the new policy.\n\nSearch the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property." + "description": "The JSON policy document that you want to use as the content for the new policy.\n You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM.\n The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length).\n To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. \n The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following:\n + Any printable ASCII character ranging from the space character (``\\u0020``) through the end of the ASCII character range\n + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\\u00FF``)\n + The special characters tab (``\\u0009``), line feed (``\\u000A``), and carriage return (``\\u000D``)\n\nSearch the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property." }, "policyId": { - "type": "string", - "description": "The stable and unique string identifying the policy." + "type": "string" }, "roles": { "type": "array", "items": { "type": "string" }, - "description": "The name (friendly name, not ARN) of the role to attach the policy to." + "description": "The name (friendly name, not ARN) of the role to attach the policy to.\n This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-\n If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy." }, "updateDate": { - "type": "string", - "description": "The date and time, in ISO 8601 date-time format, when the policy was last updated." + "type": "string" }, "users": { "type": "array", "items": { "type": "string" }, - "description": "The name (friendly name, not ARN) of the IAM user to attach the policy to." + "description": "The name (friendly name, not ARN) of the IAM user to attach the policy to.\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-" } }, "autoNamingSpec": { @@ -46596,6 +47271,160 @@ "tagsProperty": "tags", "tagsStyle": "keyValueArray" }, + "aws-native:kafkaconnect:CustomPlugin": { + "cf": "AWS::KafkaConnect::CustomPlugin", + "inputs": { + "contentType": { + "$ref": "#/types/aws-native:kafkaconnect:CustomPluginContentType", + "description": "The type of the plugin file." + }, + "description": { + "type": "string", + "description": "A summary description of the custom plugin." + }, + "location": { + "$ref": "#/types/aws-native:kafkaconnect:CustomPluginLocation" + }, + "name": { + "type": "string", + "description": "The name of the custom plugin." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to this resource." + } + }, + "outputs": { + "contentType": { + "$ref": "#/types/aws-native:kafkaconnect:CustomPluginContentType", + "description": "The type of the plugin file.", + "replaceOnChanges": true + }, + "customPluginArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the custom plugin to use." + }, + "description": { + "type": "string", + "description": "A summary description of the custom plugin.", + "replaceOnChanges": true + }, + "fileDescription": { + "$ref": "#/types/aws-native:kafkaconnect:CustomPluginFileDescription" + }, + "location": { + "$ref": "#/types/aws-native:kafkaconnect:CustomPluginLocation", + "replaceOnChanges": true + }, + "name": { + "type": "string", + "description": "The name of the custom plugin.", + "replaceOnChanges": true + }, + "revision": { + "type": "integer", + "description": "The revision of the custom plugin." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to this resource." + } + }, + "autoNamingSpec": { + "sdkName": "name", + "minLength": 1, + "maxLength": 128 + }, + "required": [ + "contentType", + "location" + ], + "createOnly": [ + "contentType", + "description", + "location", + "name" + ], + "tagsProperty": "tags", + "tagsStyle": "keyValueArray" + }, + "aws-native:kafkaconnect:WorkerConfiguration": { + "cf": "AWS::KafkaConnect::WorkerConfiguration", + "inputs": { + "description": { + "type": "string", + "description": "A summary description of the worker configuration." + }, + "name": { + "type": "string", + "description": "The name of the worker configuration." + }, + "propertiesFileContent": { + "type": "string", + "description": "Base64 encoded contents of connect-distributed.properties file." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "A collection of tags associated with a resource" + } + }, + "outputs": { + "description": { + "type": "string", + "description": "A summary description of the worker configuration.", + "replaceOnChanges": true + }, + "name": { + "type": "string", + "description": "The name of the worker configuration.", + "replaceOnChanges": true + }, + "propertiesFileContent": { + "type": "string", + "description": "Base64 encoded contents of connect-distributed.properties file.", + "replaceOnChanges": true + }, + "revision": { + "type": "integer", + "description": "The description of a revision of the worker configuration." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "A collection of tags associated with a resource" + }, + "workerConfigurationArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the custom configuration." + } + }, + "autoNamingSpec": { + "sdkName": "name", + "minLength": 1, + "maxLength": 128 + }, + "required": [ + "propertiesFileContent" + ], + "createOnly": [ + "description", + "name", + "propertiesFileContent" + ], + "tagsProperty": "tags", + "tagsStyle": "keyValueArray" + }, "aws-native:kendra:DataSource": { "cf": "AWS::Kendra::DataSource", "inputs": { @@ -51464,64 +52293,63 @@ "inputs": { "dataProtectionPolicy": { "$ref": "pulumi.json#/Any", - "description": "The body of the policy document you want to use for this topic.\n\nYou can only add one policy per topic.\n\nThe policy must be in JSON string format.\n\nLength Constraints: Maximum length of 30720\n\nSearch the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property." + "description": "Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks.\n For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html).\n\nSearch the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property." }, "kmsKeyId": { "type": "string", - "description": "The Amazon Resource Name (ARN) of the CMK to use when encrypting log data." + "description": "The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data.\n To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested.\n If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error.\n Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html)" }, "logGroupClass": { "$ref": "#/types/aws-native:logs:LogGroupClass", - "description": "The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class" + "description": "Specifies the log group class for this log group. There are two classes:\n + The ``Standard`` log class supports all CWL features.\n + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs.\n \n For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html)" }, "logGroupName": { "type": "string", - "description": "The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group." + "description": "The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group." }, "retentionInDays": { "type": "integer", - "description": "The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653." + "description": "The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653.\n To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html)." }, "tags": { "type": "array", "items": { "$ref": "#/types/aws-native:index:Tag" }, - "description": "An array of key-value pairs to apply to this resource." + "description": "An array of key-value pairs to apply to the log group.\n For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)." } }, "outputs": { "arn": { - "type": "string", - "description": "The CloudWatch log group ARN." + "type": "string" }, "dataProtectionPolicy": { "$ref": "pulumi.json#/Any", - "description": "The body of the policy document you want to use for this topic.\n\nYou can only add one policy per topic.\n\nThe policy must be in JSON string format.\n\nLength Constraints: Maximum length of 30720\n\nSearch the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property." + "description": "Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks.\n For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html).\n\nSearch the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property." }, "kmsKeyId": { "type": "string", - "description": "The Amazon Resource Name (ARN) of the CMK to use when encrypting log data." + "description": "The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data.\n To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested.\n If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error.\n Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html)" }, "logGroupClass": { "$ref": "#/types/aws-native:logs:LogGroupClass", - "description": "The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class" + "description": "Specifies the log group class for this log group. There are two classes:\n + The ``Standard`` log class supports all CWL features.\n + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs.\n \n For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html)" }, "logGroupName": { "type": "string", - "description": "The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group.", + "description": "The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group.", "replaceOnChanges": true }, "retentionInDays": { "type": "integer", - "description": "The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653." + "description": "The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653.\n To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html)." }, "tags": { "type": "array", "items": { "$ref": "#/types/aws-native:index:Tag" }, - "description": "An array of key-value pairs to apply to this resource." + "description": "An array of key-value pairs to apply to the log group.\n For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)." } }, "autoNamingSpec": { @@ -51575,37 +52403,37 @@ "inputs": { "filterName": { "type": "string", - "description": "A name for the metric filter." + "description": "The name of the metric filter." }, "filterPattern": { "type": "string", - "description": "Pattern that Logs follows to interpret each entry in a log." + "description": "A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)." }, "logGroupName": { "type": "string", - "description": "Existing log group that you want to associate with this filter." + "description": "The name of an existing log group that you want to associate with this metric filter." }, "metricTransformations": { "type": "array", "items": { "$ref": "#/types/aws-native:logs:MetricFilterMetricTransformation" }, - "description": "A collection of information that defines how metric data gets emitted." + "description": "The metric transformations." } }, "outputs": { "filterName": { "type": "string", - "description": "A name for the metric filter.", + "description": "The name of the metric filter.", "replaceOnChanges": true }, "filterPattern": { "type": "string", - "description": "Pattern that Logs follows to interpret each entry in a log." + "description": "A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)." }, "logGroupName": { "type": "string", - "description": "Existing log group that you want to associate with this filter.", + "description": "The name of an existing log group that you want to associate with this metric filter.", "replaceOnChanges": true }, "metricTransformations": { @@ -51613,7 +52441,7 @@ "items": { "$ref": "#/types/aws-native:logs:MetricFilterMetricTransformation" }, - "description": "A collection of information that defines how metric data gets emitted." + "description": "The metric transformations." } }, "autoNamingSpec": { @@ -51724,23 +52552,23 @@ }, "distribution": { "$ref": "#/types/aws-native:logs:SubscriptionFilterDistribution", - "description": "The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream." + "description": "The method used to distribute log data to the destination, which can be either random or grouped by log stream." }, "filterName": { "type": "string", - "description": "The name of the filter generated by resource." + "description": "The name of the subscription filter." }, "filterPattern": { "type": "string", - "description": "The filtering expressions that restrict what gets delivered to the destination AWS resource." + "description": "The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)." }, "logGroupName": { "type": "string", - "description": "Existing log group that you want to associate with this filter." + "description": "The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events." }, "roleArn": { "type": "string", - "description": "The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery." + "description": "The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery." } }, "outputs": { @@ -51750,25 +52578,25 @@ }, "distribution": { "$ref": "#/types/aws-native:logs:SubscriptionFilterDistribution", - "description": "The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream." + "description": "The method used to distribute log data to the destination, which can be either random or grouped by log stream." }, "filterName": { "type": "string", - "description": "The name of the filter generated by resource.", + "description": "The name of the subscription filter.", "replaceOnChanges": true }, "filterPattern": { "type": "string", - "description": "The filtering expressions that restrict what gets delivered to the destination AWS resource." + "description": "The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)." }, "logGroupName": { "type": "string", - "description": "Existing log group that you want to associate with this filter.", + "description": "The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events.", "replaceOnChanges": true }, "roleArn": { "type": "string", - "description": "The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery." + "description": "The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery." } }, "autoNamingSpec": { @@ -65001,6 +65829,14 @@ "type": "string" } }, + "dataFilter": { + "type": "string", + "description": "The data filter for the integration." + }, + "description": { + "type": "string", + "description": "The description of the integration." + }, "integrationName": { "type": "string", "description": "The name of the integration." @@ -65036,14 +65872,21 @@ "createTime": { "type": "string" }, + "dataFilter": { + "type": "string", + "description": "The data filter for the integration." + }, + "description": { + "type": "string", + "description": "The description of the integration." + }, "integrationArn": { "type": "string", "description": "The ARN of the integration." }, "integrationName": { "type": "string", - "description": "The name of the integration.", - "replaceOnChanges": true + "description": "The name of the integration." }, "kmsKeyId": { "type": "string", @@ -65079,7 +65922,6 @@ ], "createOnly": [ "additionalEncryptionContext", - "integrationName", "kmsKeyId", "sourceArn", "targetArn" @@ -67285,10 +68127,7 @@ "description": "Data Location Constraint of the Policy." }, "policy": { - "type": "object", - "additionalProperties": { - "$ref": "#/types/aws-native:resiliencehub:ResiliencyPolicyFailurePolicy" - } + "$ref": "#/types/aws-native:resiliencehub:ResiliencyPolicyPolicyMap" }, "policyDescription": { "type": "string", @@ -67315,10 +68154,7 @@ "description": "Data Location Constraint of the Policy." }, "policy": { - "type": "object", - "additionalProperties": { - "$ref": "#/types/aws-native:resiliencehub:ResiliencyPolicyFailurePolicy" - } + "$ref": "#/types/aws-native:resiliencehub:ResiliencyPolicyPolicyMap" }, "policyArn": { "type": "string", @@ -73652,6 +74488,259 @@ ], "tagsProperty": "tags" }, + "aws-native:securitylake:AwsLogSource": { + "cf": "AWS::SecurityLake::AwsLogSource", + "inputs": { + "accounts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "AWS account where you want to collect logs from." + }, + "dataLakeArn": { + "type": "string", + "description": "The ARN for the data lake." + }, + "sourceName": { + "type": "string", + "description": "The name for a AWS source. This must be a Regionally unique value." + }, + "sourceVersion": { + "type": "string", + "description": "The version for a AWS source. This must be a Regionally unique value." + } + }, + "outputs": { + "accounts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "AWS account where you want to collect logs from." + }, + "dataLakeArn": { + "type": "string", + "description": "The ARN for the data lake.", + "replaceOnChanges": true + }, + "sourceName": { + "type": "string", + "description": "The name for a AWS source. This must be a Regionally unique value.", + "replaceOnChanges": true + }, + "sourceVersion": { + "type": "string", + "description": "The version for a AWS source. This must be a Regionally unique value.", + "replaceOnChanges": true + } + }, + "autoNamingSpec": { + "sdkName": "sourceName" + }, + "required": [ + "dataLakeArn", + "sourceVersion" + ], + "createOnly": [ + "dataLakeArn", + "sourceName", + "sourceVersion" + ] + }, + "aws-native:securitylake:DataLake": { + "cf": "AWS::SecurityLake::DataLake", + "inputs": { + "encryptionConfiguration": { + "$ref": "#/types/aws-native:securitylake:DataLakeEncryptionConfiguration" + }, + "lifecycleConfiguration": { + "$ref": "#/types/aws-native:securitylake:DataLakeLifecycleConfiguration" + }, + "metaStoreManagerRoleArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) used to index AWS Glue table partitions that are generated by the ingestion and normalization of AWS log sources and custom sources." + }, + "replicationConfiguration": { + "$ref": "#/types/aws-native:securitylake:DataLakeReplicationConfiguration" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + } + }, + "outputs": { + "arn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) created by you to provide to the subscriber." + }, + "encryptionConfiguration": { + "$ref": "#/types/aws-native:securitylake:DataLakeEncryptionConfiguration" + }, + "lifecycleConfiguration": { + "$ref": "#/types/aws-native:securitylake:DataLakeLifecycleConfiguration" + }, + "metaStoreManagerRoleArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) used to index AWS Glue table partitions that are generated by the ingestion and normalization of AWS log sources and custom sources.", + "replaceOnChanges": true + }, + "replicationConfiguration": { + "$ref": "#/types/aws-native:securitylake:DataLakeReplicationConfiguration" + }, + "s3BucketArn": { + "type": "string", + "description": "The ARN for the Amazon Security Lake Amazon S3 bucket." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + } + }, + "createOnly": [ + "metaStoreManagerRoleArn" + ], + "writeOnly": [ + "metaStoreManagerRoleArn" + ], + "irreversibleNames": { + "s3BucketArn": "S3BucketArn" + }, + "tagsProperty": "tags", + "tagsStyle": "keyValueArray" + }, + "aws-native:securitylake:Subscriber": { + "cf": "AWS::SecurityLake::Subscriber", + "inputs": { + "accessTypes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securitylake:SubscriberAccessTypesItem" + } + }, + "dataLakeArn": { + "type": "string", + "description": "The ARN for the data lake." + }, + "sources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/types/aws-native:securitylake:SubscriberSource0Properties" + }, + { + "$ref": "#/types/aws-native:securitylake:SubscriberSource1Properties" + } + ] + }, + "description": "The supported AWS services from which logs and events are collected." + }, + "subscriberDescription": { + "type": "string", + "description": "The description for your subscriber account in Security Lake." + }, + "subscriberIdentity": { + "$ref": "#/types/aws-native:securitylake:SubscriberIdentityProperties", + "description": "The AWS identity used to access your data." + }, + "subscriberName": { + "type": "string", + "description": "The name of your Security Lake subscriber account." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string." + } + }, + "outputs": { + "accessTypes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securitylake:SubscriberAccessTypesItem" + } + }, + "dataLakeArn": { + "type": "string", + "description": "The ARN for the data lake.", + "replaceOnChanges": true + }, + "resourceShareArn": { + "type": "string" + }, + "resourceShareName": { + "type": "string" + }, + "s3BucketArn": { + "type": "string" + }, + "sources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/types/aws-native:securitylake:SubscriberSource0Properties" + }, + { + "$ref": "#/types/aws-native:securitylake:SubscriberSource1Properties" + } + ] + }, + "description": "The supported AWS services from which logs and events are collected." + }, + "subscriberArn": { + "type": "string" + }, + "subscriberDescription": { + "type": "string", + "description": "The description for your subscriber account in Security Lake." + }, + "subscriberIdentity": { + "$ref": "#/types/aws-native:securitylake:SubscriberIdentityProperties", + "description": "The AWS identity used to access your data." + }, + "subscriberName": { + "type": "string", + "description": "The name of your Security Lake subscriber account." + }, + "subscriberRoleArn": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string." + } + }, + "autoNamingSpec": { + "sdkName": "subscriberName", + "minLength": 1, + "maxLength": 64 + }, + "required": [ + "accessTypes", + "dataLakeArn", + "sources", + "subscriberIdentity" + ], + "createOnly": [ + "dataLakeArn" + ], + "irreversibleNames": { + "s3BucketArn": "S3BucketArn" + }, + "tagsProperty": "tags", + "tagsStyle": "keyValueArray" + }, "aws-native:servicecatalog:CloudFormationProvisionedProduct": { "cf": "AWS::ServiceCatalog::CloudFormationProvisionedProduct", "inputs": { @@ -84911,6 +86000,41 @@ } } }, + "aws-native:appintegrations:ApplicationExternalUrlConfig": { + "type": "object", + "properties": { + "accessUrl": { + "type": "string" + }, + "approvedOrigins": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "aws-native:appintegrations:ApplicationSourceConfigProperties": { + "type": "object", + "properties": { + "externalUrlConfig": { + "$ref": "#/types/aws-native:appintegrations:ApplicationExternalUrlConfig" + } + } + }, + "aws-native:appintegrations:ApplicationTag": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "A key to identify the tag." + }, + "value": { + "type": "string", + "description": "Corresponding tag value for the key." + } + } + }, "aws-native:appintegrations:DataIntegrationFileConfiguration": { "type": "object", "properties": { @@ -86392,6 +87516,78 @@ } } }, + "aws-native:aps:ScraperDestination": { + "type": "object", + "properties": { + "ampConfiguration": { + "$ref": "#/types/aws-native:aps:ScraperDestinationAmpConfigurationProperties", + "description": "Configuration for Amazon Managed Prometheus metrics destination" + } + } + }, + "aws-native:aps:ScraperDestinationAmpConfigurationProperties": { + "type": "object", + "properties": { + "workspaceArn": { + "type": "string", + "description": "ARN of an Amazon Managed Prometheus workspace" + } + } + }, + "aws-native:aps:ScraperScrapeConfiguration": { + "type": "object", + "properties": { + "configurationBlob": { + "type": "string", + "description": "Prometheus compatible scrape configuration in base64 encoded blob format" + } + } + }, + "aws-native:aps:ScraperSource": { + "type": "object", + "properties": { + "eksConfiguration": { + "$ref": "#/types/aws-native:aps:ScraperSourceEksConfigurationProperties", + "description": "Configuration for EKS metrics source" + } + } + }, + "aws-native:aps:ScraperSourceEksConfigurationProperties": { + "type": "object", + "properties": { + "clusterArn": { + "type": "string", + "description": "ARN of an EKS cluster" + }, + "securityGroupIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of security group IDs" + }, + "subnetIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of subnet IDs" + } + } + }, + "aws-native:aps:ScraperTag": { + "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:aps:WorkspaceLoggingConfiguration": { "type": "object", "properties": { @@ -89141,6 +90337,225 @@ } } }, + "aws-native:bedrock:AgentActionGroup": { + "type": "object", + "properties": { + "actionGroupExecutor": { + "$ref": "#/types/aws-native:bedrock:AgentActionGroupExecutor" + }, + "actionGroupName": { + "type": "string", + "description": "Name of the action group" + }, + "actionGroupState": { + "$ref": "#/types/aws-native:bedrock:AgentActionGroupState" + }, + "apiSchema": { + "oneOf": [ + { + "$ref": "#/types/aws-native:bedrock:AgentApiSchema0Properties" + }, + { + "$ref": "#/types/aws-native:bedrock:AgentApiSchema1Properties" + } + ] + }, + "description": { + "type": "string", + "description": "Description of action group" + }, + "parentActionGroupSignature": { + "$ref": "#/types/aws-native:bedrock:AgentActionGroupSignature" + }, + "skipResourceInUseCheckOnDelete": { + "type": "boolean", + "description": "Specifies whether to allow deleting action group while it is in use." + } + } + }, + "aws-native:bedrock:AgentActionGroupExecutor": { + "type": "object", + "properties": { + "lambda": { + "type": "string", + "description": "ARN of a Lambda." + } + } + }, + "aws-native:bedrock:AgentActionGroupSignature": { + "type": "string" + }, + "aws-native:bedrock:AgentActionGroupState": { + "type": "string" + }, + "aws-native:bedrock:AgentAliasHistoryEvent": { + "type": "object", + "properties": { + "endDate": { + "type": "string", + "description": "Time Stamp." + }, + "routingConfiguration": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:bedrock:AgentAliasRoutingConfigurationListItem" + }, + "description": "Routing configuration for an Agent alias." + }, + "startDate": { + "type": "string", + "description": "Time Stamp." + } + } + }, + "aws-native:bedrock:AgentAliasRoutingConfigurationListItem": { + "type": "object", + "properties": { + "agentVersion": { + "type": "string", + "description": "Agent Version." + } + } + }, + "aws-native:bedrock:AgentAliasStatus": { + "type": "string" + }, + "aws-native:bedrock:AgentApiSchema0Properties": { + "type": "object", + "properties": { + "s3": { + "$ref": "#/types/aws-native:bedrock:AgentS3Identifier" + } + }, + "irreversibleNames": { + "s3": "S3" + } + }, + "aws-native:bedrock:AgentApiSchema1Properties": { + "type": "object", + "properties": { + "payload": { + "type": "string", + "description": "String OpenAPI Payload" + } + } + }, + "aws-native:bedrock:AgentCreationMode": { + "type": "string" + }, + "aws-native:bedrock:AgentInferenceConfiguration": { + "type": "object", + "properties": { + "maximumLength": { + "type": "number", + "description": "Maximum length of output" + }, + "stopSequences": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of stop sequences" + }, + "temperature": { + "type": "number", + "description": "Controls randomness, higher values increase diversity" + }, + "topK": { + "type": "number", + "description": "Sample from the k most likely next tokens" + }, + "topP": { + "type": "number", + "description": "Cumulative probability cutoff for token selection" + } + } + }, + "aws-native:bedrock:AgentKnowledgeBase": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Description of the Resource." + }, + "knowledgeBaseId": { + "type": "string", + "description": "Identifier for a resource." + }, + "knowledgeBaseState": { + "$ref": "#/types/aws-native:bedrock:AgentKnowledgeBaseState" + } + } + }, + "aws-native:bedrock:AgentKnowledgeBaseState": { + "type": "string" + }, + "aws-native:bedrock:AgentPromptConfiguration": { + "type": "object", + "properties": { + "basePromptTemplate": { + "type": "string", + "description": "Base Prompt Template." + }, + "inferenceConfiguration": { + "$ref": "#/types/aws-native:bedrock:AgentInferenceConfiguration" + }, + "parserMode": { + "$ref": "#/types/aws-native:bedrock:AgentCreationMode" + }, + "promptCreationMode": { + "$ref": "#/types/aws-native:bedrock:AgentCreationMode" + }, + "promptState": { + "$ref": "#/types/aws-native:bedrock:AgentPromptState" + }, + "promptType": { + "$ref": "#/types/aws-native:bedrock:AgentPromptType" + } + } + }, + "aws-native:bedrock:AgentPromptOverrideConfiguration": { + "type": "object", + "properties": { + "overrideLambda": { + "type": "string", + "description": "ARN of a Lambda." + }, + "promptConfigurations": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:bedrock:AgentPromptConfiguration" + }, + "description": "List of BasePromptConfiguration" + } + } + }, + "aws-native:bedrock:AgentPromptState": { + "type": "string" + }, + "aws-native:bedrock:AgentPromptType": { + "type": "string" + }, + "aws-native:bedrock:AgentS3Identifier": { + "type": "object", + "properties": { + "s3BucketName": { + "type": "string", + "description": "A bucket in S3." + }, + "s3ObjectKey": { + "type": "string", + "description": "A object key in S3." + } + }, + "irreversibleNames": { + "s3BucketName": "S3BucketName", + "s3ObjectKey": "S3ObjectKey" + } + }, + "aws-native:bedrock:AgentStatus": { + "type": "string" + }, "aws-native:budgets:BudgetsActionActionThreshold": { "type": "object", "properties": { @@ -89721,6 +91136,9 @@ "items": { "type": "string" } + }, + "differentialPrivacy": { + "$ref": "#/types/aws-native:cleanrooms:ConfiguredTableDifferentialPrivacy" } } }, @@ -89806,6 +91224,25 @@ } } }, + "aws-native:cleanrooms:ConfiguredTableDifferentialPrivacy": { + "type": "object", + "properties": { + "columns": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:cleanrooms:ConfiguredTableDifferentialPrivacyColumn" + } + } + } + }, + "aws-native:cleanrooms:ConfiguredTableDifferentialPrivacyColumn": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + } + }, "aws-native:cleanrooms:ConfiguredTableGlueTableReference": { "type": "object", "properties": { @@ -90384,7 +91821,7 @@ }, "defaultTtl": { "type": "number", - "description": "This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide" + "description": "This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*." }, "fieldLevelEncryptionId": { "type": "string", @@ -90392,7 +91829,7 @@ }, "forwardedValues": { "$ref": "#/types/aws-native:cloudfront:DistributionForwardedValues", - "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r" + "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*.\n A ``CacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``.\n A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers." }, "functionAssociations": { "type": "array", @@ -90410,11 +91847,11 @@ }, "maxTtl": { "type": "number", - "description": "This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration." + "description": "This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*." }, "minTtl": { "type": "number", - "description": "This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*.\n You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He" + "description": "This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*.\n You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``)." }, "originRequestPolicyId": { "type": "string", @@ -90456,7 +91893,7 @@ }, "viewerProtocolPolicy": { "type": "string", - "description": "The protocol that viewers can use to access the files in the origin specified by ``TargetOriginId`` when a request matches the path pattern in ``PathPattern``. You can specify the following options:\n + ``allow-all``: Viewers can use HTTP or HTTPS.\n + ``redirect-to-https``: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.\n + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).\n \n For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*.\n The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol" + "description": "The protocol that viewers can use to access the files in the origin specified by ``TargetOriginId`` when a request matches the path pattern in ``PathPattern``. You can specify the following options:\n + ``allow-all``: Viewers can use HTTP or HTTPS.\n + ``redirect-to-https``: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.\n + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).\n \n For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*.\n The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*." } }, "irreversibleNames": { @@ -90512,7 +91949,7 @@ }, "defaultRootObject": { "type": "string", - "description": "The object that you want CloudFront to request from your origin (for example, ``index.html``) when a viewer requests the root URL for your distribution (``https://www.example.com``) instead of an object in your distribution (``https://www.example.com/product-description.html``). Specifying a default root object avoids exposing the contents of your distribution.\n Specify only the object name, for example, ``index.html``. Don't add a ``/`` before the object name.\n If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element.\n To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element.\n To replace the default root object, update the distribution configuration and specify the new object.\n For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/D" + "description": "The object that you want CloudFront to request from your origin (for example, ``index.html``) when a viewer requests the root URL for your distribution (``https://www.example.com``) instead of an object in your distribution (``https://www.example.com/product-description.html``). Specifying a default root object avoids exposing the contents of your distribution.\n Specify only the object name, for example, ``index.html``. Don't add a ``/`` before the object name.\n If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element.\n To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element.\n To replace the default root object, update the distribution configuration and specify the new object.\n For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*." }, "enabled": { "type": "boolean", @@ -90524,7 +91961,7 @@ }, "ipv6Enabled": { "type": "boolean", - "description": "If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify ``true``. If you specify ``false``, CloudFront responds to IPv6 DNS requests with the DNS response code ``NOERROR`` and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution.\n In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/Devel" + "description": "If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify ``true``. If you specify ``false``, CloudFront responds to IPv6 DNS requests with the DNS response code ``NOERROR`` and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution.\n In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html) in the *Amazon CloudFront Developer Guide*.\n If you're using an R53AWSIntlong alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true:\n + You enable IPv6 for the distribution\n + You're using alternate domain names in the URLs for your objects\n \n For more information, see [Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html) in the *Developer Guide*.\n If you created a CNAME resource record set, either with R53AWSIntlong or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request." }, "logging": { "$ref": "#/types/aws-native:cloudfront:DistributionLogging", @@ -90562,7 +91999,7 @@ }, "webAclId": { "type": "string", - "description": "A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example ``arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a``. To specify a web ACL created using WAF Classic, use the ACL ID, for example ``473e64fd-f30b-4765-81a0-62ad96dd167a``.\n WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest" + "description": "A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example ``arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a``. To specify a web ACL created using WAF Classic, use the ACL ID, for example ``473e64fd-f30b-4765-81a0-62ad96dd167a``.\n WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html)." } }, "irreversibleNames": { @@ -90577,14 +92014,14 @@ "properties": { "forward": { "type": "string", - "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the ``WhitelistedNames`` complex type.\n Amazon S3 doesn't process cookies. When the cache behavior is forw" + "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the ``WhitelistedNames`` complex type.\n Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify none for the ``Forward`` element." }, "whitelistedNames": { "type": "array", "items": { "type": "string" }, - "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward se" + "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward selected cookies, the names of those cookies.\n If you specify ``all`` or ``none`` for the value of ``Forward``, omit ``WhitelistedNames``. If you change the value of ``Forward`` from ``whitelist`` to ``all`` or ``none`` and you don't delete the ``WhitelistedNames`` element and its child elements, CloudFront deletes them automatically.\n For the current limit on the number of cookie names that you can whitelist for each cache behavior, see [CloudFront Limits](https://docs.aws.amazon.com/general/latest/gr/xrefaws_service_limits.html#limits_cloudfront) in the *General Reference*." } } }, @@ -90605,7 +92042,7 @@ }, "responsePagePath": { "type": "string", - "description": "The path to the custom error page that you want CloudFront to return to a viewer when your origin returns the HTTP status code specified by ``ErrorCode``, for example, ``/4xx-errors/403-forbidden.html``. If you want to store your objects and your custom error pages in different locations, your distribution must include a cache behavior for which the following is true:\n + The value of ``PathPattern`` matches the path to your custom error messages. For example, suppose you saved custom error pages for 4xx errors in an Amazon S3 bucket in a directory named ``/4xx-errors``. Your distribution must include a cache behavior for which the path pattern routes requests for your custom error pages to that location, for example, ``/4xx-errors/*``.\n + The value of ``TargetOriginId`` specifies the value of the ``ID`` element for the origin that contains your custom error pages.\n \n If you specify a value for ``ResponsePagePath``, you must also specify a value for ``ResponseCode``.\n We recommend " + "description": "The path to the custom error page that you want CloudFront to return to a viewer when your origin returns the HTTP status code specified by ``ErrorCode``, for example, ``/4xx-errors/403-forbidden.html``. If you want to store your objects and your custom error pages in different locations, your distribution must include a cache behavior for which the following is true:\n + The value of ``PathPattern`` matches the path to your custom error messages. For example, suppose you saved custom error pages for 4xx errors in an Amazon S3 bucket in a directory named ``/4xx-errors``. Your distribution must include a cache behavior for which the path pattern routes requests for your custom error pages to that location, for example, ``/4xx-errors/*``.\n + The value of ``TargetOriginId`` specifies the value of the ``ID`` element for the origin that contains your custom error pages.\n \n If you specify a value for ``ResponsePagePath``, you must also specify a value for ``ResponseCode``.\n We recommend that you store custom error pages in an Amazon S3 bucket. If you store custom error pages on an HTTP server and the server starts to return 5xx errors, CloudFront can't get the files that you want to return to viewers because the origin server is unavailable." } }, "irreversibleNames": { @@ -90676,7 +92113,7 @@ }, "defaultTtl": { "type": "number", - "description": "This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide" + "description": "This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*." }, "fieldLevelEncryptionId": { "type": "string", @@ -90684,7 +92121,7 @@ }, "forwardedValues": { "$ref": "#/types/aws-native:cloudfront:DistributionForwardedValues", - "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r" + "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*.\n A ``DefaultCacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``.\n A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers." }, "functionAssociations": { "type": "array", @@ -90702,11 +92139,11 @@ }, "maxTtl": { "type": "number", - "description": "This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration." + "description": "This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*." }, "minTtl": { "type": "number", - "description": "This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*.\n You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He" + "description": "This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*.\n You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``)." }, "originRequestPolicyId": { "type": "string", @@ -90744,7 +92181,7 @@ }, "viewerProtocolPolicy": { "type": "string", - "description": "The protocol that viewers can use to access the files in the origin specified by ``TargetOriginId`` when a request matches the path pattern in ``PathPattern``. You can specify the following options:\n + ``allow-all``: Viewers can use HTTP or HTTPS.\n + ``redirect-to-https``: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.\n + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).\n \n For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*.\n The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol" + "description": "The protocol that viewers can use to access the files in the origin specified by ``TargetOriginId`` when a request matches the path pattern in ``PathPattern``. You can specify the following options:\n + ``allow-all``: Viewers can use HTTP or HTTPS.\n + ``redirect-to-https``: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.\n + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).\n \n For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*.\n The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*." } }, "irreversibleNames": { @@ -90758,18 +92195,18 @@ "properties": { "cookies": { "$ref": "#/types/aws-native:cloudfront:DistributionCookies", - "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C" + "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*." }, "headers": { "type": "array", "items": { "type": "string" }, - "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include headers in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versio" + "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include headers in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versions of a specified object that is based on the header values in viewer requests.\n For more information, see [Caching Content Based on Request Headers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html) in the *Amazon CloudFront Developer Guide*." }, "queryString": { "type": "boolean", - "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of" + "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of ``QueryString`` and on the values that you specify for ``QueryStringCacheKeys``, if any:\n If you specify true for ``QueryString`` and you don't specify any values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin and caches based on all query string parameters. Depending on how many query string parameters and values you have, this can adversely affect performance because CloudFront must forward more requests to the origin.\n If you specify true for ``QueryString`` and you specify one or more values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin, but it only caches based on the query string parameters that you specify.\n If you specify false for ``QueryString``, CloudFront doesn't forward any query string parameters to the origin, and doesn't cache based on query string parameters.\n For more information, see [Configuring CloudFront to Cache Based on Query String Parameters](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html) in the *Amazon CloudFront Developer Guide*." }, "queryStringCacheKeys": { "type": "array", @@ -91050,7 +92487,7 @@ "properties": { "originAccessIdentity": { "type": "string", - "description": "The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that viewers can *only* access objects in an Amazon S3 bucket through CloudFront. The format of the value is:\n origin-access-identity/cloudfront/*ID-of-origin-access-identity* \n where ``ID-of-origin-access-identity`` is the value that CloudFront returned in the ``ID`` element when you created the origin access identity.\n If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element.\n To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element.\n To replace the origin access identity, update the distribution configuration and specify the new origin access identity.\n For more information about the origin access identity, see [Serving Private Content through CloudFront](https://d" + "description": "The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that viewers can *only* access objects in an Amazon S3 bucket through CloudFront. The format of the value is:\n origin-access-identity/cloudfront/*ID-of-origin-access-identity* \n where ``ID-of-origin-access-identity`` is the value that CloudFront returned in the ``ID`` element when you created the origin access identity.\n If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element.\n To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element.\n To replace the origin access identity, update the distribution configuration and specify the new origin access identity.\n For more information about the origin access identity, see [Serving Private Content through CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*." } } }, @@ -91100,11 +92537,11 @@ }, "minimumProtocolVersion": { "type": "string", - "description": "If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify the security policy that you want CloudFront to use for HTTPS connections with viewers. The security policy determines two settings:\n + The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers.\n + The ciphers that CloudFront can use to encrypt the content that it returns to viewers.\n \n For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*.\n On the CloudFront console, this setting is called *Security Policy*.\n When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-onl" + "description": "If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify the security policy that you want CloudFront to use for HTTPS connections with viewers. The security policy determines two settings:\n + The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers.\n + The ciphers that CloudFront can use to encrypt the content that it returns to viewers.\n \n For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*.\n On the CloudFront console, this setting is called *Security Policy*.\n When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-only``), you must specify ``TLSv1`` or higher. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.)\n If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` (you set ``CloudFrontDefaultCertificate`` to ``true``), CloudFront automatically sets the security policy to ``TLSv1`` regardless of the value that you set here." }, "sslSupportMethod": { "type": "string", - "description": "In CloudFormation, this field name is ``SslSupportMethod``. Note the different capitalization.\n If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from.\n + ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication). This is recommended. Most browsers and clients support SNI.\n + ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront.\n + ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [Center](https://docs.aws.amazon.com/support/home)." + "description": "In CloudFormation, this field name is ``SslSupportMethod``. Note the different capitalization.\n If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from.\n + ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication). This is recommended. Most browsers and clients support SNI.\n + ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront.\n + ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [Center](https://docs.aws.amazon.com/support/home).\n \n If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``, don't set a value for this field." } } }, @@ -91980,6 +93417,62 @@ } } }, + "aws-native:codeartifact:PackageGroupOriginConfiguration": { + "type": "object", + "properties": { + "restrictions": { + "$ref": "#/types/aws-native:codeartifact:PackageGroupRestrictions", + "description": "The origin configuration that is applied to the package group." + } + } + }, + "aws-native:codeartifact:PackageGroupRestrictionType": { + "type": "object", + "properties": { + "repositories": { + "type": "array", + "items": { + "type": "string" + } + }, + "restrictionMode": { + "$ref": "#/types/aws-native:codeartifact:PackageGroupRestrictionTypeRestrictionMode" + } + } + }, + "aws-native:codeartifact:PackageGroupRestrictionTypeRestrictionMode": { + "type": "string" + }, + "aws-native:codeartifact:PackageGroupRestrictions": { + "type": "object", + "properties": { + "externalUpstream": { + "$ref": "#/types/aws-native:codeartifact:PackageGroupRestrictionType", + "description": "The external upstream restriction determines if new package versions can be ingested or retained from external connections." + }, + "internalUpstream": { + "$ref": "#/types/aws-native:codeartifact:PackageGroupRestrictionType", + "description": "The internal upstream restriction determines if new package versions can be ingested or retained from upstream repositories." + }, + "publish": { + "$ref": "#/types/aws-native:codeartifact:PackageGroupRestrictionType", + "description": "The publish restriction determines if new package versions can be published." + } + } + }, + "aws-native:codeartifact:PackageGroupTag": { + "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 1 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:codeartifact:RepositoryTag": { "type": "object", "properties": { @@ -92012,6 +93505,19 @@ } } }, + "aws-native:codeconnections:ConnectionTag": { + "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:codedeploy:ApplicationTag": { "type": "object", "properties": { @@ -92241,6 +93747,9 @@ } } }, + "aws-native:codestarconnections:RepositoryLinkProviderType": { + "type": "string" + }, "aws-native:codestarconnections:RepositoryLinkTag": { "type": "object", "properties": { @@ -92254,6 +93763,15 @@ } } }, + "aws-native:codestarconnections:SyncConfigurationProviderType": { + "type": "string" + }, + "aws-native:codestarconnections:SyncConfigurationPublishDeploymentStatus": { + "type": "string" + }, + "aws-native:codestarconnections:SyncConfigurationTriggerResourceUpdateOn": { + "type": "string" + }, "aws-native:codestarnotifications:NotificationRuleDetailType": { "type": "string" }, @@ -94268,6 +95786,22 @@ } } }, + "aws-native:connect:SecurityProfileApplication": { + "type": "object", + "properties": { + "applicationPermissions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The permissions that the agent is granted on the application" + }, + "namespace": { + "type": "string", + "description": "Namespace of the application that you want to give access to." + } + } + }, "aws-native:connect:SecurityProfileTag": { "type": "object", "properties": { @@ -98370,6 +99904,12 @@ "region": { "type": "string" }, + "replicaStreamSpecification": { + "$ref": "#/types/aws-native:dynamodb:GlobalTableReplicaStreamSpecification" + }, + "resourcePolicy": { + "$ref": "#/types/aws-native:dynamodb:GlobalTableResourcePolicy" + }, "sseSpecification": { "$ref": "#/types/aws-native:dynamodb:GlobalTableReplicaSseSpecification" }, @@ -98398,6 +99938,22 @@ "kmsMasterKeyId": "KMSMasterKeyId" } }, + "aws-native:dynamodb:GlobalTableReplicaStreamSpecification": { + "type": "object", + "properties": { + "resourcePolicy": { + "$ref": "#/types/aws-native:dynamodb:GlobalTableResourcePolicy" + } + } + }, + "aws-native:dynamodb:GlobalTableResourcePolicy": { + "type": "object", + "properties": { + "policyDocument": { + "$ref": "pulumi.json#/Any" + } + } + }, "aws-native:dynamodb:GlobalTableSseSpecification": { "type": "object", "properties": { @@ -98654,6 +100210,14 @@ } } }, + "aws-native:dynamodb:TableResourcePolicy": { + "type": "object", + "properties": { + "policyDocument": { + "$ref": "pulumi.json#/Any" + } + } + }, "aws-native:dynamodb:TableS3BucketSource": { "type": "object", "properties": { @@ -98701,6 +100265,9 @@ "aws-native:dynamodb:TableStreamSpecification": { "type": "object", "properties": { + "resourcePolicy": { + "$ref": "#/types/aws-native:dynamodb:TableResourcePolicy" + }, "streamViewType": { "type": "string", "description": "When an item in the table is modified, ``StreamViewType`` determines what information is written to the stream for this table. Valid values for ``StreamViewType`` are:\n + ``KEYS_ONLY`` - Only the key attributes of the modified item are written to the stream.\n + ``NEW_IMAGE`` - The entire item, as it appears after it was modified, is written to the stream.\n + ``OLD_IMAGE`` - The entire item, as it appeared before it was modified, is written to the stream.\n + ``NEW_AND_OLD_IMAGES`` - Both the new and the old item images of the item are written to the stream." @@ -99690,10 +101257,12 @@ "type": "object", "properties": { "key": { - "type": "string" + "type": "string", + "description": "The tag key." }, "value": { - "type": "string" + "type": "string", + "description": "The tag value." } } }, @@ -100048,7 +101617,7 @@ }, "instanceRequirements": { "$ref": "#/types/aws-native:ec2:LaunchTemplateInstanceRequirements", - "description": "The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.\n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values.\n To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n If you specify ``InstanceReq" + "description": "The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.\n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values.\n To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n If you specify ``InstanceRequirements``, you can't specify ``InstanceType``.\n Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``.\n For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*." }, "instanceType": { "type": "string", @@ -100160,7 +101729,7 @@ }, "volumeType": { "type": "string", - "description": "The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*." + "description": "The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon EBS User Guide*." } } }, @@ -100337,7 +101906,7 @@ }, "maxSpotPriceAsPercentageOfOptimalOnDemandPrice": { "type": "integer", - "description": "[Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n To indicate no price protection threshold, specify a high value, such as ``999999``.\n If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instanc" + "description": "[Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price.\n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``." }, "memoryGiBPerVCpu": { "$ref": "#/types/aws-native:ec2:LaunchTemplateMemoryGiBPerVCpu", @@ -100357,7 +101926,7 @@ }, "onDemandMaxPricePercentageOverLowestPrice": { "type": "integer", - "description": "[Price protection] The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n To turn off price protection, specify a high value, such as ``999999``.\n This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html).\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-" + "description": "[Price protection] The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n To turn off price protection, specify a high value, such as ``999999``.\n This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html).\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.\n Default: ``20``" }, "requireHibernateSupport": { "type": "boolean", @@ -100365,7 +101934,7 @@ }, "spotMaxPricePercentageOverLowestPrice": { "type": "integer", - "description": "[Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n To indicate no price protection threshold, specify a high value, such as ``999999``.\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price i" + "description": "[Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.\n This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html).\n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``.\n Default: ``100``" }, "totalLocalStorageGb": { "$ref": "#/types/aws-native:ec2:LaunchTemplateTotalLocalStorageGb", @@ -100422,9 +101991,6 @@ "autoRecovery": { "type": "string", "description": "Disables the automatic recovery behavior of your instance or sets it to default." - }, - "rebootMigration": { - "type": "string" } } }, @@ -100713,7 +102279,7 @@ }, "spotInstanceType": { "type": "string", - "description": "The Spot Instance request type.\n If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is below its desired capacity." + "description": "The Spot Instance request type.\n If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the ASlong service handles requesting new Spot Instances whenever the group is below its desired capacity." }, "validUntil": { "type": "string", @@ -104629,11 +106195,14 @@ "type": "object", "properties": { "status": { - "type": "string", + "$ref": "#/types/aws-native:efs:FileSystemBackupPolicyStatus", "description": "Set the backup policy status for the file system.\n + *ENABLED* - Turns automatic backups on for the file system. \n + *DISABLED* - Turns automatic backups off for the file system." } } }, + "aws-native:efs:FileSystemBackupPolicyStatus": { + "type": "string" + }, "aws-native:efs:FileSystemElasticFileSystemTag": { "type": "object", "properties": { @@ -105226,9 +106795,13 @@ "type": "integer", "description": "The maximum cached data capacity of the Serverless Cache." }, + "minimum": { + "type": "integer", + "description": "The minimum cached data capacity of the Serverless Cache." + }, "unit": { "$ref": "#/types/aws-native:elasticache:ServerlessCacheDataStorageUnit", - "description": "The unix of cached data capacity of the Serverless Cache." + "description": "The unit of cached data capacity of the Serverless Cache." } } }, @@ -105241,6 +106814,10 @@ "maximum": { "type": "integer", "description": "The maximum ECPU per second of the Serverless Cache." + }, + "minimum": { + "type": "integer", + "description": "The minimum ECPU per second of the Serverless Cache." } } }, @@ -106575,16 +108152,22 @@ "properties": { "inputSourceArn": { "type": "string", - "description": "An Glue table ARN for the input source table" + "description": "An Glue table ARN for the input source table or IdNamespace ARN" }, "schemaArn": { "type": "string" + }, + "type": { + "$ref": "#/types/aws-native:entityresolution:IdMappingWorkflowInputSourceType" } }, "irreversibleNames": { "inputSourceArn": "InputSourceARN" } }, + "aws-native:entityresolution:IdMappingWorkflowInputSourceType": { + "type": "string" + }, "aws-native:entityresolution:IdMappingWorkflowIntermediateSourceConfiguration": { "type": "object", "properties": { @@ -115760,10 +117343,24 @@ "greengrassV2": { "$ref": "#/types/aws-native:iotsitewise:GatewayGreengrassV2", "description": "A gateway that runs on AWS IoT Greengrass V2." + }, + "siemensIe": { + "$ref": "#/types/aws-native:iotsitewise:GatewaySiemensIe", + "description": "A gateway that runs on Siemens Industrial Edge." } }, "irreversibleNames": { - "greengrassV2": "GreengrassV2" + "greengrassV2": "GreengrassV2", + "siemensIe": "SiemensIE" + } + }, + "aws-native:iotsitewise:GatewaySiemensIe": { + "type": "object", + "properties": { + "iotCoreThingName": { + "type": "string", + "description": "The name of the IoT Core Thing." + } } }, "aws-native:iotsitewise:GatewayTag": { @@ -117312,6 +118909,74 @@ "s3": "S3" } }, + "aws-native:kafkaconnect:CustomPluginContentType": { + "type": "string" + }, + "aws-native:kafkaconnect:CustomPluginFileDescription": { + "type": "object", + "properties": { + "fileMd5": { + "type": "string", + "description": "The hex-encoded MD5 checksum of the custom plugin file. You can use it to validate the file." + }, + "fileSize": { + "type": "integer", + "description": "The size in bytes of the custom plugin file. You can use it to validate the file." + } + } + }, + "aws-native:kafkaconnect:CustomPluginLocation": { + "type": "object", + "properties": { + "s3Location": { + "$ref": "#/types/aws-native:kafkaconnect:CustomPluginS3Location" + } + }, + "irreversibleNames": { + "s3Location": "S3Location" + } + }, + "aws-native:kafkaconnect:CustomPluginS3Location": { + "type": "object", + "properties": { + "bucketArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of an S3 bucket." + }, + "fileKey": { + "type": "string", + "description": "The file key for an object in an S3 bucket." + }, + "objectVersion": { + "type": "string", + "description": "The version of an object in an S3 bucket." + } + } + }, + "aws-native:kafkaconnect:CustomPluginTag": { + "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:kafkaconnect:WorkerConfigurationTag": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, "aws-native:kendra:DataSourceAccessControlListConfiguration": { "type": "object", "properties": { @@ -123629,12 +125294,10 @@ "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 @." + "type": "string" }, "value": { - "type": "string", - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., :, /, =, +, - and @." + "type": "string" } } }, @@ -123643,11 +125306,11 @@ "properties": { "key": { "type": "string", - "description": "The key of the dimension. Maximum length of 255." + "description": "The name for the CW metric dimension that the metric filter creates.\n Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon (:)." }, "value": { "type": "string", - "description": "The value of the dimension. Maximum length of 255." + "description": "The log event field that will contain the value for this dimension. This dimension will only be published for a metric if the value is found in the log event. For example, ``$.eventType`` for JSON log events, or ``$server`` for space-delimited log events." } } }, @@ -123656,30 +125319,30 @@ "properties": { "defaultValue": { "type": "number", - "description": "The value to emit when a filter pattern does not match a log event. This value can be null." + "description": "(Optional) The value to emit when a filter pattern does not match a log event. This value can be null." }, "dimensions": { "type": "array", "items": { "$ref": "#/types/aws-native:logs:MetricFilterDimension" }, - "description": "Dimensions are the key-value pairs that further define a metric" + "description": "The fields to use as dimensions for the metric. One metric filter can include as many as three dimensions.\n Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. \n CloudWatch Logs disables a metric filter if it generates 1000 different name/value pairs for your specified dimensions within a certain amount of time. This helps to prevent accidental high charges.\n You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html)." }, "metricName": { "type": "string", - "description": "The name of the CloudWatch metric. Metric name must be in ASCII format." + "description": "The name of the CloudWatch metric." }, "metricNamespace": { "type": "string", - "description": "The namespace of the CloudWatch metric." + "description": "A custom namespace to contain your metric in CloudWatch. Use namespaces to group together metrics that are similar. For more information, see [Namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace)." }, "metricValue": { "type": "string", - "description": "The value to publish to the CloudWatch metric when a filter pattern matches a log event." + "description": "The value that is published to the CloudWatch metric. For example, if you're counting the occurrences of a particular term like ``Error``, specify 1 for the metric value. If you're counting the number of bytes transferred, reference the value that is in the log event by using $. followed by the name of the field that you specified in the filter pattern, such as ``$.size``." }, "unit": { "$ref": "#/types/aws-native:logs:MetricFilterMetricTransformationUnit", - "description": "The unit to assign to the metric. If you omit this, the unit is set as None." + "description": "The unit to assign to the metric. If you omit this, the unit is set as ``None``." } } }, @@ -159497,6 +161160,26 @@ } } }, + "aws-native:resiliencehub:ResiliencyPolicyPolicyMap": { + "type": "object", + "properties": { + "az": { + "$ref": "#/types/aws-native:resiliencehub:ResiliencyPolicyFailurePolicy" + }, + "hardware": { + "$ref": "#/types/aws-native:resiliencehub:ResiliencyPolicyFailurePolicy" + }, + "region": { + "$ref": "#/types/aws-native:resiliencehub:ResiliencyPolicyFailurePolicy" + }, + "software": { + "$ref": "#/types/aws-native:resiliencehub:ResiliencyPolicyFailurePolicy" + } + }, + "irreversibleNames": { + "az": "AZ" + } + }, "aws-native:resiliencehub:ResiliencyPolicyTier": { "type": "string" }, @@ -167886,6 +169569,150 @@ } } }, + "aws-native:securitylake:DataLakeEncryptionConfiguration": { + "type": "object", + "properties": { + "kmsKeyId": { + "type": "string", + "description": "The id of KMS encryption key used by Amazon Security Lake to encrypt the Security Lake object." + } + } + }, + "aws-native:securitylake:DataLakeExpiration": { + "type": "object", + "properties": { + "days": { + "type": "integer" + } + } + }, + "aws-native:securitylake:DataLakeLifecycleConfiguration": { + "type": "object", + "properties": { + "expiration": { + "$ref": "#/types/aws-native:securitylake:DataLakeExpiration" + }, + "transitions": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securitylake:DataLakeTransitions" + }, + "description": "Provides data storage transition details of Amazon Security Lake object." + } + } + }, + "aws-native:securitylake:DataLakeReplicationConfiguration": { + "type": "object", + "properties": { + "regions": { + "type": "array", + "items": { + "type": "string" + } + }, + "roleArn": { + "type": "string", + "description": "Replication settings for the Amazon S3 buckets. This parameter uses the AWS Identity and Access Management (IAM) role you created that is managed by Security Lake, to ensure the replication setting is correct." + } + } + }, + "aws-native:securitylake:DataLakeTag": { + "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 characters in length." + } + } + }, + "aws-native:securitylake:DataLakeTransitions": { + "type": "object", + "properties": { + "days": { + "type": "integer", + "description": "Number of days before data transitions to a different S3 Storage Class in the Amazon Security Lake object." + }, + "storageClass": { + "type": "string", + "description": "The range of storage classes that you can choose from based on the data access, resiliency, and cost requirements of your workloads." + } + } + }, + "aws-native:securitylake:SubscriberAccessTypesItem": { + "type": "string" + }, + "aws-native:securitylake:SubscriberAwsLogSource": { + "type": "object", + "properties": { + "sourceName": { + "type": "string", + "description": "The name for a AWS source. This must be a Regionally unique value." + }, + "sourceVersion": { + "type": "string", + "description": "The version for a AWS source. This must be a Regionally unique value." + } + } + }, + "aws-native:securitylake:SubscriberCustomLogSource": { + "type": "object", + "properties": { + "sourceName": { + "type": "string", + "description": "The name for a third-party custom source. This must be a Regionally unique value." + }, + "sourceVersion": { + "type": "string", + "description": "The version for a third-party custom source. This must be a Regionally unique value." + } + } + }, + "aws-native:securitylake:SubscriberIdentityProperties": { + "type": "object", + "properties": { + "externalId": { + "type": "string", + "description": "The external ID used to establish trust relationship with the AWS identity." + }, + "principal": { + "type": "string", + "description": "The AWS identity principal." + } + } + }, + "aws-native:securitylake:SubscriberSource0Properties": { + "type": "object", + "properties": { + "awsLogSource": { + "$ref": "#/types/aws-native:securitylake:SubscriberAwsLogSource" + } + } + }, + "aws-native:securitylake:SubscriberSource1Properties": { + "type": "object", + "properties": { + "customLogSource": { + "$ref": "#/types/aws-native:securitylake:SubscriberCustomLogSource" + } + } + }, + "aws-native:securitylake:SubscriberTag": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "The name of the tag. This is a general label that acts as a category for a more specific tag value (value)." + }, + "value": { + "type": "string", + "description": "The value that is associated with the specified tag key (key). This value acts as a descriptor for the tag key. A tag value cannot be null, but it can be an empty string." + } + } + }, "aws-native:servicecatalog:CloudFormationProvisionedProductAcceptLanguage": { "type": "string" }, @@ -173796,6 +175623,12 @@ "flowName" ] }, + "aws-native:appintegrations:getApplication": { + "cf": "AWS::AppIntegrations::Application", + "ids": [ + "applicationArn" + ] + }, "aws-native:appintegrations:getDataIntegration": { "cf": "AWS::AppIntegrations::DataIntegration", "ids": [ @@ -173932,6 +175765,12 @@ "arn" ] }, + "aws-native:aps:getScraper": { + "cf": "AWS::APS::Scraper", + "ids": [ + "arn" + ] + }, "aws-native:aps:getWorkspace": { "cf": "AWS::APS::Workspace", "ids": [ @@ -174110,6 +175949,19 @@ "arn" ] }, + "aws-native:bedrock:getAgent": { + "cf": "AWS::Bedrock::Agent", + "ids": [ + "agentId" + ] + }, + "aws-native:bedrock:getAgentAlias": { + "cf": "AWS::Bedrock::AgentAlias", + "ids": [ + "agentId", + "agentAliasId" + ] + }, "aws-native:budgets:getBudgetsAction": { "cf": "AWS::Budgets::BudgetsAction", "ids": [ @@ -174390,6 +176242,12 @@ "arn" ] }, + "aws-native:codeartifact:getPackageGroup": { + "cf": "AWS::CodeArtifact::PackageGroup", + "ids": [ + "arn" + ] + }, "aws-native:codeartifact:getRepository": { "cf": "AWS::CodeArtifact::Repository", "ids": [ @@ -174402,6 +176260,12 @@ "arn" ] }, + "aws-native:codeconnections:getConnection": { + "cf": "AWS::CodeConnections::Connection", + "ids": [ + "connectionArn" + ] + }, "aws-native:codedeploy:getApplication": { "cf": "AWS::CodeDeploy::Application", "ids": [ @@ -175438,12 +177302,6 @@ "transitGatewayRouteTableId" ] }, - "aws-native:ec2:getTransitGatewayRouteTableAssociation": { - "cf": "AWS::EC2::TransitGatewayRouteTableAssociation", - "ids": [ - "id" - ] - }, "aws-native:ec2:getTransitGatewayVpcAttachment": { "cf": "AWS::EC2::TransitGatewayVpcAttachment", "ids": [ @@ -176748,6 +178606,18 @@ "connectorArn" ] }, + "aws-native:kafkaconnect:getCustomPlugin": { + "cf": "AWS::KafkaConnect::CustomPlugin", + "ids": [ + "customPluginArn" + ] + }, + "aws-native:kafkaconnect:getWorkerConfiguration": { + "cf": "AWS::KafkaConnect::WorkerConfiguration", + "ids": [ + "workerConfigurationArn" + ] + }, "aws-native:kendra:getDataSource": { "cf": "AWS::Kendra::DataSource", "ids": [ @@ -178519,6 +180389,25 @@ "standardsSubscriptionArn" ] }, + "aws-native:securitylake:getAwsLogSource": { + "cf": "AWS::SecurityLake::AwsLogSource", + "ids": [ + "sourceName", + "sourceVersion" + ] + }, + "aws-native:securitylake:getDataLake": { + "cf": "AWS::SecurityLake::DataLake", + "ids": [ + "arn" + ] + }, + "aws-native:securitylake:getSubscriber": { + "cf": "AWS::SecurityLake::Subscriber", + "ids": [ + "subscriberArn" + ] + }, "aws-native:servicecatalog:getCloudFormationProvisionedProduct": { "cf": "AWS::ServiceCatalog::CloudFormationProvisionedProduct", "ids": [ diff --git a/provider/cmd/pulumi-resource-aws-native/schema.json b/provider/cmd/pulumi-resource-aws-native/schema.json index e4850e4e5f..083ff37474 100644 --- a/provider/cmd/pulumi-resource-aws-native/schema.json +++ b/provider/cmd/pulumi-resource-aws-native/schema.json @@ -40,6 +40,7 @@ "backup": "Backup", "backupgateway": "BackupGateway", "batch": "Batch", + "bedrock": "Bedrock", "budgets": "Budgets", "cassandra": "Cassandra", "ce": "Ce", @@ -52,6 +53,7 @@ "cloudwatch": "CloudWatch", "codeartifact": "CodeArtifact", "codebuild": "CodeBuild", + "codeconnections": "CodeConnections", "codedeploy": "CodeDeploy", "codeguruprofiler": "CodeGuruProfiler", "codegurureviewer": "CodeGuruReviewer", @@ -193,6 +195,7 @@ "scheduler": "Scheduler", "secretsmanager": "SecretsManager", "securityhub": "SecurityHub", + "securitylake": "SecurityLake", "servicecatalog": "ServiceCatalog", "servicecatalogappregistry": "ServiceCatalogAppRegistry", "ses": "Ses", @@ -6947,6 +6950,54 @@ "object" ] }, + "aws-native:appintegrations:ApplicationExternalUrlConfig": { + "properties": { + "accessUrl": { + "type": "string" + }, + "approvedOrigins": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "type": "object", + "required": [ + "accessUrl", + "approvedOrigins" + ] + }, + "aws-native:appintegrations:ApplicationSourceConfigProperties": { + "description": "Application source config", + "properties": { + "externalUrlConfig": { + "$ref": "#/types/aws-native:appintegrations:ApplicationExternalUrlConfig" + } + }, + "type": "object", + "required": [ + "externalUrlConfig" + ] + }, + "aws-native:appintegrations:ApplicationTag": { + "description": "A label for tagging Application resources", + "properties": { + "key": { + "type": "string", + "description": "A key to identify the tag." + }, + "value": { + "type": "string", + "description": "Corresponding tag value for the key." + } + }, + "type": "object", + "required": [ + "key", + "value" + ] + }, "aws-native:appintegrations:DataIntegrationFileConfiguration": { "description": "The configuration for what files should be pulled from the source.", "properties": { @@ -8826,6 +8877,7 @@ "type": "object" }, "aws-native:appsync:ResolverMetricsConfig": { + "description": "Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value.", "type": "string", "enum": [ { @@ -8951,6 +9003,95 @@ "value" ] }, + "aws-native:aps:ScraperDestination": { + "description": "Scraper metrics destination", + "properties": { + "ampConfiguration": { + "$ref": "#/types/aws-native:aps:ScraperDestinationAmpConfigurationProperties", + "description": "Configuration for Amazon Managed Prometheus metrics destination" + } + }, + "type": "object" + }, + "aws-native:aps:ScraperDestinationAmpConfigurationProperties": { + "description": "Configuration for Amazon Managed Prometheus metrics destination", + "properties": { + "workspaceArn": { + "type": "string", + "description": "ARN of an Amazon Managed Prometheus workspace" + } + }, + "type": "object", + "required": [ + "workspaceArn" + ] + }, + "aws-native:aps:ScraperScrapeConfiguration": { + "description": "Scraper configuration", + "properties": { + "configurationBlob": { + "type": "string", + "description": "Prometheus compatible scrape configuration in base64 encoded blob format" + } + }, + "type": "object" + }, + "aws-native:aps:ScraperSource": { + "description": "Scraper metrics source", + "properties": { + "eksConfiguration": { + "$ref": "#/types/aws-native:aps:ScraperSourceEksConfigurationProperties", + "description": "Configuration for EKS metrics source" + } + }, + "type": "object" + }, + "aws-native:aps:ScraperSourceEksConfigurationProperties": { + "description": "Configuration for EKS metrics source", + "properties": { + "clusterArn": { + "type": "string", + "description": "ARN of an EKS cluster" + }, + "securityGroupIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of security group IDs" + }, + "subnetIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of subnet IDs" + } + }, + "type": "object", + "required": [ + "clusterArn", + "subnetIds" + ] + }, + "aws-native:aps:ScraperTag": { + "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:aps:WorkspaceLoggingConfiguration": { "description": "Logging configuration", "properties": { @@ -12468,6 +12609,378 @@ }, "type": "object" }, + "aws-native:bedrock:AgentActionGroup": { + "description": "Contains the information of an Agent Action Group", + "properties": { + "actionGroupExecutor": { + "$ref": "#/types/aws-native:bedrock:AgentActionGroupExecutor" + }, + "actionGroupName": { + "type": "string", + "description": "Name of the action group" + }, + "actionGroupState": { + "$ref": "#/types/aws-native:bedrock:AgentActionGroupState" + }, + "apiSchema": { + "oneOf": [ + { + "$ref": "#/types/aws-native:bedrock:AgentApiSchema0Properties" + }, + { + "$ref": "#/types/aws-native:bedrock:AgentApiSchema1Properties" + } + ] + }, + "description": { + "type": "string", + "description": "Description of action group" + }, + "parentActionGroupSignature": { + "$ref": "#/types/aws-native:bedrock:AgentActionGroupSignature" + }, + "skipResourceInUseCheckOnDelete": { + "type": "boolean", + "description": "Specifies whether to allow deleting action group while it is in use." + } + }, + "type": "object", + "required": [ + "actionGroupName" + ] + }, + "aws-native:bedrock:AgentActionGroupExecutor": { + "properties": { + "lambda": { + "type": "string", + "description": "ARN of a Lambda." + } + }, + "type": "object", + "required": [ + "lambda" + ] + }, + "aws-native:bedrock:AgentActionGroupSignature": { + "description": "Action Group Signature for a BuiltIn Action", + "type": "string", + "enum": [ + { + "name": "AmazonUserInput", + "value": "AMAZON.UserInput" + } + ] + }, + "aws-native:bedrock:AgentActionGroupState": { + "description": "State of the action group", + "type": "string", + "enum": [ + { + "name": "Enabled", + "value": "ENABLED" + }, + { + "name": "Disabled", + "value": "DISABLED" + } + ] + }, + "aws-native:bedrock:AgentAliasHistoryEvent": { + "description": "History event for an alias for an Agent.", + "properties": { + "endDate": { + "type": "string", + "description": "Time Stamp." + }, + "routingConfiguration": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:bedrock:AgentAliasRoutingConfigurationListItem" + }, + "description": "Routing configuration for an Agent alias." + }, + "startDate": { + "type": "string", + "description": "Time Stamp." + } + }, + "type": "object" + }, + "aws-native:bedrock:AgentAliasRoutingConfigurationListItem": { + "description": "Details about the routing configuration for an Agent alias.", + "properties": { + "agentVersion": { + "type": "string", + "description": "Agent Version." + } + }, + "type": "object", + "required": [ + "agentVersion" + ] + }, + "aws-native:bedrock:AgentAliasStatus": { + "description": "The statuses an Agent Alias can be in.", + "type": "string", + "enum": [ + { + "name": "Creating", + "value": "CREATING" + }, + { + "name": "Prepared", + "value": "PREPARED" + }, + { + "name": "Failed", + "value": "FAILED" + }, + { + "name": "Updating", + "value": "UPDATING" + }, + { + "name": "Deleting", + "value": "DELETING" + } + ] + }, + "aws-native:bedrock:AgentApiSchema0Properties": { + "description": "Contains information about the API Schema for the Action Group", + "properties": { + "s3": { + "$ref": "#/types/aws-native:bedrock:AgentS3Identifier" + } + }, + "type": "object", + "required": [ + "s3" + ] + }, + "aws-native:bedrock:AgentApiSchema1Properties": { + "description": "Contains information about the API Schema for the Action Group", + "properties": { + "payload": { + "type": "string", + "description": "String OpenAPI Payload" + } + }, + "type": "object", + "required": [ + "payload" + ] + }, + "aws-native:bedrock:AgentCreationMode": { + "description": "Creation Mode for Prompt Configuration.", + "type": "string", + "enum": [ + { + "name": "Default", + "value": "DEFAULT" + }, + { + "name": "Overridden", + "value": "OVERRIDDEN" + } + ] + }, + "aws-native:bedrock:AgentInferenceConfiguration": { + "description": "Configuration for inference in prompt configuration", + "properties": { + "maximumLength": { + "type": "number", + "description": "Maximum length of output" + }, + "stopSequences": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of stop sequences" + }, + "temperature": { + "type": "number", + "description": "Controls randomness, higher values increase diversity" + }, + "topK": { + "type": "number", + "description": "Sample from the k most likely next tokens" + }, + "topP": { + "type": "number", + "description": "Cumulative probability cutoff for token selection" + } + }, + "type": "object" + }, + "aws-native:bedrock:AgentKnowledgeBase": { + "description": "Agent Knowledge Base", + "properties": { + "description": { + "type": "string", + "description": "Description of the Resource." + }, + "knowledgeBaseId": { + "type": "string", + "description": "Identifier for a resource." + }, + "knowledgeBaseState": { + "$ref": "#/types/aws-native:bedrock:AgentKnowledgeBaseState" + } + }, + "type": "object", + "required": [ + "description", + "knowledgeBaseId" + ] + }, + "aws-native:bedrock:AgentKnowledgeBaseState": { + "description": "State of the knowledge base; whether it is enabled or disabled", + "type": "string", + "enum": [ + { + "name": "Enabled", + "value": "ENABLED" + }, + { + "name": "Disabled", + "value": "DISABLED" + } + ] + }, + "aws-native:bedrock:AgentPromptConfiguration": { + "description": "BasePromptConfiguration per Prompt Type.", + "properties": { + "basePromptTemplate": { + "type": "string", + "description": "Base Prompt Template." + }, + "inferenceConfiguration": { + "$ref": "#/types/aws-native:bedrock:AgentInferenceConfiguration" + }, + "parserMode": { + "$ref": "#/types/aws-native:bedrock:AgentCreationMode" + }, + "promptCreationMode": { + "$ref": "#/types/aws-native:bedrock:AgentCreationMode" + }, + "promptState": { + "$ref": "#/types/aws-native:bedrock:AgentPromptState" + }, + "promptType": { + "$ref": "#/types/aws-native:bedrock:AgentPromptType" + } + }, + "type": "object" + }, + "aws-native:bedrock:AgentPromptOverrideConfiguration": { + "description": "Configuration for prompt override.", + "properties": { + "overrideLambda": { + "type": "string", + "description": "ARN of a Lambda." + }, + "promptConfigurations": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:bedrock:AgentPromptConfiguration" + }, + "description": "List of BasePromptConfiguration" + } + }, + "type": "object", + "required": [ + "promptConfigurations" + ] + }, + "aws-native:bedrock:AgentPromptState": { + "description": "Prompt State.", + "type": "string", + "enum": [ + { + "name": "Enabled", + "value": "ENABLED" + }, + { + "name": "Disabled", + "value": "DISABLED" + } + ] + }, + "aws-native:bedrock:AgentPromptType": { + "description": "Prompt Type.", + "type": "string", + "enum": [ + { + "name": "PreProcessing", + "value": "PRE_PROCESSING" + }, + { + "name": "Orchestration", + "value": "ORCHESTRATION" + }, + { + "name": "PostProcessing", + "value": "POST_PROCESSING" + }, + { + "name": "KnowledgeBaseResponseGeneration", + "value": "KNOWLEDGE_BASE_RESPONSE_GENERATION" + } + ] + }, + "aws-native:bedrock:AgentS3Identifier": { + "description": "The identifier for the S3 resource.", + "properties": { + "s3BucketName": { + "type": "string", + "description": "A bucket in S3." + }, + "s3ObjectKey": { + "type": "string", + "description": "A object key in S3." + } + }, + "type": "object" + }, + "aws-native:bedrock:AgentStatus": { + "description": "Schema Type for Action APIs.", + "type": "string", + "enum": [ + { + "name": "Creating", + "value": "CREATING" + }, + { + "name": "Preparing", + "value": "PREPARING" + }, + { + "name": "Prepared", + "value": "PREPARED" + }, + { + "name": "NotPrepared", + "value": "NOT_PREPARED" + }, + { + "name": "Deleting", + "value": "DELETING" + }, + { + "name": "Failed", + "value": "FAILED" + }, + { + "name": "Versioning", + "value": "VERSIONING" + }, + { + "name": "Updating", + "value": "UPDATING" + } + ] + }, "aws-native:budgets:BudgetsActionActionThreshold": { "properties": { "type": { @@ -13527,6 +14040,9 @@ "items": { "type": "string" } + }, + "differentialPrivacy": { + "$ref": "#/types/aws-native:cleanrooms:ConfiguredTableDifferentialPrivacy" } }, "type": "object", @@ -13647,6 +14163,31 @@ "value" ] }, + "aws-native:cleanrooms:ConfiguredTableDifferentialPrivacy": { + "properties": { + "columns": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:cleanrooms:ConfiguredTableDifferentialPrivacyColumn" + } + } + }, + "type": "object", + "required": [ + "columns" + ] + }, + "aws-native:cleanrooms:ConfiguredTableDifferentialPrivacyColumn": { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object", + "required": [ + "name" + ] + }, "aws-native:cleanrooms:ConfiguredTableGlueTableReference": { "properties": { "databaseName": { @@ -13738,6 +14279,50 @@ { "name": "Coalesce", "value": "COALESCE" + }, + { + "name": "Convert", + "value": "CONVERT" + }, + { + "name": "CurrentDate", + "value": "CURRENT_DATE" + }, + { + "name": "Dateadd", + "value": "DATEADD" + }, + { + "name": "Extract", + "value": "EXTRACT" + }, + { + "name": "Getdate", + "value": "GETDATE" + }, + { + "name": "Substring", + "value": "SUBSTRING" + }, + { + "name": "ToChar", + "value": "TO_CHAR" + }, + { + "name": "ToDate", + "value": "TO_DATE" + }, + { + "name": "ToNumber", + "value": "TO_NUMBER" + }, + { + "name": "ToTimestamp", + "value": "TO_TIMESTAMP" + }, + { + "name": "Trim", + "value": "TRIM" } ] }, @@ -14691,7 +15276,7 @@ ] }, "aws-native:cloudfront:DistributionCacheBehavior": { - "description": "A complex type that describes how CloudFront processes requests.\n You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to serve objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin is never used.\n For the current quota (formerly known as limit) on the number of cache behaviors that you can add to a distribution, see [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) in the *Amazon CloudFront Developer Guide*.\n If you don't want to specify any cache behaviors, include only an empty ``CacheBehaviors`` element. Don't include an empty ``CacheBehavior`` element because this is invalid.\n To delete all cache behaviors in an exist", + "description": "A complex type that describes how CloudFront processes requests.\n You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to serve objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin is never used.\n For the current quota (formerly known as limit) on the number of cache behaviors that you can add to a distribution, see [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) in the *Amazon CloudFront Developer Guide*.\n If you don't want to specify any cache behaviors, include only an empty ``CacheBehaviors`` element. Don't include an empty ``CacheBehavior`` element because this is invalid.\n To delete all cache behaviors in an existing distribution, update the distribution configuration and include only an empty ``CacheBehaviors`` element.\n To add, change, or remove one or more cache behaviors, update the distribution configuration and specify all of the cache behaviors that you want to include in the updated distribution.\n For more information about cache behaviors, see [Cache Behavior Settings](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesCacheBehavior) in the *Amazon CloudFront Developer Guide*.", "properties": { "allowedMethods": { "type": "array", @@ -14717,7 +15302,7 @@ }, "defaultTtl": { "type": "number", - "description": "This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide" + "description": "This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*." }, "fieldLevelEncryptionId": { "type": "string", @@ -14725,7 +15310,7 @@ }, "forwardedValues": { "$ref": "#/types/aws-native:cloudfront:DistributionForwardedValues", - "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r" + "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*.\n A ``CacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``.\n A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers." }, "functionAssociations": { "type": "array", @@ -14743,11 +15328,11 @@ }, "maxTtl": { "type": "number", - "description": "This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration." + "description": "This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*." }, "minTtl": { "type": "number", - "description": "This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*.\n You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He" + "description": "This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*.\n You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``)." }, "originRequestPolicyId": { "type": "string", @@ -14789,7 +15374,7 @@ }, "viewerProtocolPolicy": { "type": "string", - "description": "The protocol that viewers can use to access the files in the origin specified by ``TargetOriginId`` when a request matches the path pattern in ``PathPattern``. You can specify the following options:\n + ``allow-all``: Viewers can use HTTP or HTTPS.\n + ``redirect-to-https``: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.\n + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).\n \n For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*.\n The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol" + "description": "The protocol that viewers can use to access the files in the origin specified by ``TargetOriginId`` when a request matches the path pattern in ``PathPattern``. You can specify the following options:\n + ``allow-all``: Viewers can use HTTP or HTTPS.\n + ``redirect-to-https``: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.\n + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).\n \n For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*.\n The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*." } }, "type": "object", @@ -14846,7 +15431,7 @@ }, "defaultRootObject": { "type": "string", - "description": "The object that you want CloudFront to request from your origin (for example, ``index.html``) when a viewer requests the root URL for your distribution (``https://www.example.com``) instead of an object in your distribution (``https://www.example.com/product-description.html``). Specifying a default root object avoids exposing the contents of your distribution.\n Specify only the object name, for example, ``index.html``. Don't add a ``/`` before the object name.\n If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element.\n To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element.\n To replace the default root object, update the distribution configuration and specify the new object.\n For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/D" + "description": "The object that you want CloudFront to request from your origin (for example, ``index.html``) when a viewer requests the root URL for your distribution (``https://www.example.com``) instead of an object in your distribution (``https://www.example.com/product-description.html``). Specifying a default root object avoids exposing the contents of your distribution.\n Specify only the object name, for example, ``index.html``. Don't add a ``/`` before the object name.\n If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element.\n To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element.\n To replace the default root object, update the distribution configuration and specify the new object.\n For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*." }, "enabled": { "type": "boolean", @@ -14858,7 +15443,7 @@ }, "ipv6Enabled": { "type": "boolean", - "description": "If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify ``true``. If you specify ``false``, CloudFront responds to IPv6 DNS requests with the DNS response code ``NOERROR`` and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution.\n In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/Devel" + "description": "If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify ``true``. If you specify ``false``, CloudFront responds to IPv6 DNS requests with the DNS response code ``NOERROR`` and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution.\n In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html) in the *Amazon CloudFront Developer Guide*.\n If you're using an R53AWSIntlong alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true:\n + You enable IPv6 for the distribution\n + You're using alternate domain names in the URLs for your objects\n \n For more information, see [Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html) in the *Developer Guide*.\n If you created a CNAME resource record set, either with R53AWSIntlong or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request." }, "logging": { "$ref": "#/types/aws-native:cloudfront:DistributionLogging", @@ -14896,7 +15481,7 @@ }, "webAclId": { "type": "string", - "description": "A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example ``arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a``. To specify a web ACL created using WAF Classic, use the ACL ID, for example ``473e64fd-f30b-4765-81a0-62ad96dd167a``.\n WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest" + "description": "A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example ``arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a``. To specify a web ACL created using WAF Classic, use the ACL ID, for example ``473e64fd-f30b-4765-81a0-62ad96dd167a``.\n WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html)." } }, "type": "object", @@ -14906,18 +15491,18 @@ ] }, "aws-native:cloudfront:DistributionCookies": { - "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C", + "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*.", "properties": { "forward": { "type": "string", - "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the ``WhitelistedNames`` complex type.\n Amazon S3 doesn't process cookies. When the cache behavior is forw" + "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the ``WhitelistedNames`` complex type.\n Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify none for the ``Forward`` element." }, "whitelistedNames": { "type": "array", "items": { "type": "string" }, - "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward se" + "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward selected cookies, the names of those cookies.\n If you specify ``all`` or ``none`` for the value of ``Forward``, omit ``WhitelistedNames``. If you change the value of ``Forward`` from ``whitelist`` to ``all`` or ``none`` and you don't delete the ``WhitelistedNames`` element and its child elements, CloudFront deletes them automatically.\n For the current limit on the number of cookie names that you can whitelist for each cache behavior, see [CloudFront Limits](https://docs.aws.amazon.com/general/latest/gr/xrefaws_service_limits.html#limits_cloudfront) in the *General Reference*." } }, "type": "object", @@ -14942,7 +15527,7 @@ }, "responsePagePath": { "type": "string", - "description": "The path to the custom error page that you want CloudFront to return to a viewer when your origin returns the HTTP status code specified by ``ErrorCode``, for example, ``/4xx-errors/403-forbidden.html``. If you want to store your objects and your custom error pages in different locations, your distribution must include a cache behavior for which the following is true:\n + The value of ``PathPattern`` matches the path to your custom error messages. For example, suppose you saved custom error pages for 4xx errors in an Amazon S3 bucket in a directory named ``/4xx-errors``. Your distribution must include a cache behavior for which the path pattern routes requests for your custom error pages to that location, for example, ``/4xx-errors/*``.\n + The value of ``TargetOriginId`` specifies the value of the ``ID`` element for the origin that contains your custom error pages.\n \n If you specify a value for ``ResponsePagePath``, you must also specify a value for ``ResponseCode``.\n We recommend " + "description": "The path to the custom error page that you want CloudFront to return to a viewer when your origin returns the HTTP status code specified by ``ErrorCode``, for example, ``/4xx-errors/403-forbidden.html``. If you want to store your objects and your custom error pages in different locations, your distribution must include a cache behavior for which the following is true:\n + The value of ``PathPattern`` matches the path to your custom error messages. For example, suppose you saved custom error pages for 4xx errors in an Amazon S3 bucket in a directory named ``/4xx-errors``. Your distribution must include a cache behavior for which the path pattern routes requests for your custom error pages to that location, for example, ``/4xx-errors/*``.\n + The value of ``TargetOriginId`` specifies the value of the ``ID`` element for the origin that contains your custom error pages.\n \n If you specify a value for ``ResponsePagePath``, you must also specify a value for ``ResponseCode``.\n We recommend that you store custom error pages in an Amazon S3 bucket. If you store custom error pages on an HTTP server and the server starts to return 5xx errors, CloudFront can't get the files that you want to return to viewers because the origin server is unavailable." } }, "type": "object", @@ -15013,7 +15598,7 @@ }, "defaultTtl": { "type": "number", - "description": "This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide" + "description": "This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*." }, "fieldLevelEncryptionId": { "type": "string", @@ -15021,7 +15606,7 @@ }, "forwardedValues": { "$ref": "#/types/aws-native:cloudfront:DistributionForwardedValues", - "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r" + "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*.\n A ``DefaultCacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``.\n A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers." }, "functionAssociations": { "type": "array", @@ -15039,11 +15624,11 @@ }, "maxTtl": { "type": "number", - "description": "This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration." + "description": "This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*." }, "minTtl": { "type": "number", - "description": "This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*.\n You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He" + "description": "This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*.\n The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*.\n You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``)." }, "originRequestPolicyId": { "type": "string", @@ -15081,7 +15666,7 @@ }, "viewerProtocolPolicy": { "type": "string", - "description": "The protocol that viewers can use to access the files in the origin specified by ``TargetOriginId`` when a request matches the path pattern in ``PathPattern``. You can specify the following options:\n + ``allow-all``: Viewers can use HTTP or HTTPS.\n + ``redirect-to-https``: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.\n + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).\n \n For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*.\n The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol" + "description": "The protocol that viewers can use to access the files in the origin specified by ``TargetOriginId`` when a request matches the path pattern in ``PathPattern``. You can specify the following options:\n + ``allow-all``: Viewers can use HTTP or HTTPS.\n + ``redirect-to-https``: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL.\n + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden).\n \n For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*.\n The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*." } }, "type": "object", @@ -15095,18 +15680,18 @@ "properties": { "cookies": { "$ref": "#/types/aws-native:cloudfront:DistributionCookies", - "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C" + "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*." }, "headers": { "type": "array", "items": { "type": "string" }, - "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include headers in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versio" + "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include headers in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versions of a specified object that is based on the header values in viewer requests.\n For more information, see [Caching Content Based on Request Headers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html) in the *Amazon CloudFront Developer Guide*." }, "queryString": { "type": "boolean", - "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of" + "description": "This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field.\n If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*.\n If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*.\n Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of ``QueryString`` and on the values that you specify for ``QueryStringCacheKeys``, if any:\n If you specify true for ``QueryString`` and you don't specify any values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin and caches based on all query string parameters. Depending on how many query string parameters and values you have, this can adversely affect performance because CloudFront must forward more requests to the origin.\n If you specify true for ``QueryString`` and you specify one or more values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin, but it only caches based on the query string parameters that you specify.\n If you specify false for ``QueryString``, CloudFront doesn't forward any query string parameters to the origin, and doesn't cache based on query string parameters.\n For more information, see [Configuring CloudFront to Cache Based on Query String Parameters](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html) in the *Amazon CloudFront Developer Guide*." }, "queryStringCacheKeys": { "type": "array", @@ -15429,7 +16014,7 @@ "properties": { "originAccessIdentity": { "type": "string", - "description": "The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that viewers can *only* access objects in an Amazon S3 bucket through CloudFront. The format of the value is:\n origin-access-identity/cloudfront/*ID-of-origin-access-identity* \n where ``ID-of-origin-access-identity`` is the value that CloudFront returned in the ``ID`` element when you created the origin access identity.\n If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element.\n To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element.\n To replace the origin access identity, update the distribution configuration and specify the new origin access identity.\n For more information about the origin access identity, see [Serving Private Content through CloudFront](https://d" + "description": "The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that viewers can *only* access objects in an Amazon S3 bucket through CloudFront. The format of the value is:\n origin-access-identity/cloudfront/*ID-of-origin-access-identity* \n where ``ID-of-origin-access-identity`` is the value that CloudFront returned in the ``ID`` element when you created the origin access identity.\n If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element.\n To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element.\n To replace the origin access identity, update the distribution configuration and specify the new origin access identity.\n For more information about the origin access identity, see [Serving Private Content through CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*." } }, "type": "object" @@ -15474,7 +16059,7 @@ ] }, "aws-native:cloudfront:DistributionViewerCertificate": { - "description": "A complex type that determines the distribution's SSL/TLS configuration for communicating with viewers.\n If the distribution doesn't use ``Aliases`` (also known as alternate domain names or CNAMEs)—that is, if the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``—set ``CloudFrontDefaultCertificate`` to ``true`` and leave all other fields empty.\n If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), use the fields in this type to specify the following settings:\n + Which viewers the distribution accepts HTTPS connections from: only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication) (recommended), or all viewers including those that don't support SNI.\n + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field n", + "description": "A complex type that determines the distribution's SSL/TLS configuration for communicating with viewers.\n If the distribution doesn't use ``Aliases`` (also known as alternate domain names or CNAMEs)—that is, if the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``—set ``CloudFrontDefaultCertificate`` to ``true`` and leave all other fields empty.\n If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), use the fields in this type to specify the following settings:\n + Which viewers the distribution accepts HTTPS connections from: only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication) (recommended), or all viewers including those that don't support SNI.\n + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.)\n + To accept HTTPS connections from all viewers, including those that don't support SNI, set ``SSLSupportMethod`` to ``vip``. This is not recommended, and results in additional monthly charges from CloudFront. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.)\n \n + The minimum SSL/TLS protocol version that the distribution can use to communicate with viewers. To specify a minimum version, choose a value for ``MinimumProtocolVersion``. For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) in the *Amazon CloudFront Developer Guide*.\n + The location of the SSL/TLS certificate, [(ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) (recommended) or [(IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html). You specify the location by setting a value in one of the following fields (not both):\n + ``ACMCertificateArn`` (In CloudFormation, this field name is ``AcmCertificateArn``. Note the different capitalization.)\n + ``IAMCertificateId`` (In CloudFormation, this field name is ``IamCertificateId``. Note the different capitalization.)\n \n \n All distributions support HTTPS connections from viewers. To require viewers to use HTTPS only, or to redirect them from HTTP to HTTPS, use ``ViewerProtocolPolicy`` in the ``CacheBehavior`` or ``DefaultCacheBehavior``. To specify how CloudFront should use SSL/TLS to communicate with your custom origin, use ``CustomOriginConfig``.\n For more information, see [Using HTTPS with CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html) and [Using Alternate Domain Names and HTTPS](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-alternate-domain-names.html) in the *Amazon CloudFront Developer Guide*.", "properties": { "acmCertificateArn": { "type": "string", @@ -15490,11 +16075,11 @@ }, "minimumProtocolVersion": { "type": "string", - "description": "If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify the security policy that you want CloudFront to use for HTTPS connections with viewers. The security policy determines two settings:\n + The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers.\n + The ciphers that CloudFront can use to encrypt the content that it returns to viewers.\n \n For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*.\n On the CloudFront console, this setting is called *Security Policy*.\n When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-onl" + "description": "If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify the security policy that you want CloudFront to use for HTTPS connections with viewers. The security policy determines two settings:\n + The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers.\n + The ciphers that CloudFront can use to encrypt the content that it returns to viewers.\n \n For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*.\n On the CloudFront console, this setting is called *Security Policy*.\n When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-only``), you must specify ``TLSv1`` or higher. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.)\n If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` (you set ``CloudFrontDefaultCertificate`` to ``true``), CloudFront automatically sets the security policy to ``TLSv1`` regardless of the value that you set here." }, "sslSupportMethod": { "type": "string", - "description": "In CloudFormation, this field name is ``SslSupportMethod``. Note the different capitalization.\n If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from.\n + ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication). This is recommended. Most browsers and clients support SNI.\n + ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront.\n + ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [Center](https://docs.aws.amazon.com/support/home)." + "description": "In CloudFormation, this field name is ``SslSupportMethod``. Note the different capitalization.\n If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from.\n + ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication). This is recommended. Most browsers and clients support SNI.\n + ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront.\n + ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [Center](https://docs.aws.amazon.com/support/home).\n \n If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``, don't set a value for this field." } }, "type": "object" @@ -16591,6 +17176,91 @@ "value" ] }, + "aws-native:codeartifact:PackageGroupOriginConfiguration": { + "properties": { + "restrictions": { + "$ref": "#/types/aws-native:codeartifact:PackageGroupRestrictions", + "description": "The origin configuration that is applied to the package group." + } + }, + "type": "object", + "required": [ + "restrictions" + ] + }, + "aws-native:codeartifact:PackageGroupRestrictionType": { + "properties": { + "repositories": { + "type": "array", + "items": { + "type": "string" + } + }, + "restrictionMode": { + "$ref": "#/types/aws-native:codeartifact:PackageGroupRestrictionTypeRestrictionMode" + } + }, + "type": "object", + "required": [ + "restrictionMode" + ] + }, + "aws-native:codeartifact:PackageGroupRestrictionTypeRestrictionMode": { + "type": "string", + "enum": [ + { + "name": "Allow", + "value": "ALLOW" + }, + { + "name": "Block", + "value": "BLOCK" + }, + { + "name": "AllowSpecificRepositories", + "value": "ALLOW_SPECIFIC_REPOSITORIES" + }, + { + "name": "Inherit", + "value": "INHERIT" + } + ] + }, + "aws-native:codeartifact:PackageGroupRestrictions": { + "properties": { + "externalUpstream": { + "$ref": "#/types/aws-native:codeartifact:PackageGroupRestrictionType", + "description": "The external upstream restriction determines if new package versions can be ingested or retained from external connections." + }, + "internalUpstream": { + "$ref": "#/types/aws-native:codeartifact:PackageGroupRestrictionType", + "description": "The internal upstream restriction determines if new package versions can be ingested or retained from upstream repositories." + }, + "publish": { + "$ref": "#/types/aws-native:codeartifact:PackageGroupRestrictionType", + "description": "The publish restriction determines if new package versions can be published." + } + }, + "type": "object" + }, + "aws-native:codeartifact:PackageGroupTag": { + "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 1 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:codeartifact:RepositoryTag": { "description": "A key-value pair to associate with a resource.", "properties": { @@ -16672,6 +17342,24 @@ "value" ] }, + "aws-native:codeconnections:ConnectionTag": { + "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:codedeploy:ApplicationTag": { "properties": { "key": { @@ -16994,6 +17682,32 @@ "value" ] }, + "aws-native:codestarconnections:RepositoryLinkProviderType": { + "description": "The name of the external provider where your third-party code repository is configured.", + "type": "string", + "enum": [ + { + "name": "GitHub", + "value": "GitHub" + }, + { + "name": "Bitbucket", + "value": "Bitbucket" + }, + { + "name": "GitHubEnterprise", + "value": "GitHubEnterprise" + }, + { + "name": "GitLab", + "value": "GitLab" + }, + { + "name": "GitLabSelfManaged", + "value": "GitLabSelfManaged" + } + ] + }, "aws-native:codestarconnections:RepositoryLinkTag": { "description": "A key-value pair to associate with a resource.", "properties": { @@ -17012,6 +17726,60 @@ "value" ] }, + "aws-native:codestarconnections:SyncConfigurationProviderType": { + "description": "The name of the external provider where your third-party code repository is configured.", + "type": "string", + "enum": [ + { + "name": "GitHub", + "value": "GitHub" + }, + { + "name": "Bitbucket", + "value": "Bitbucket" + }, + { + "name": "GitHubEnterprise", + "value": "GitHubEnterprise" + }, + { + "name": "GitLab", + "value": "GitLab" + }, + { + "name": "GitLabSelfManaged", + "value": "GitLabSelfManaged" + } + ] + }, + "aws-native:codestarconnections:SyncConfigurationPublishDeploymentStatus": { + "description": "Whether to enable or disable publishing of deployment status to source providers.", + "type": "string", + "enum": [ + { + "name": "Enabled", + "value": "ENABLED" + }, + { + "name": "Disabled", + "value": "DISABLED" + } + ] + }, + "aws-native:codestarconnections:SyncConfigurationTriggerResourceUpdateOn": { + "description": "When to trigger Git sync to begin the stack update.", + "type": "string", + "enum": [ + { + "name": "AnyChange", + "value": "ANY_CHANGE" + }, + { + "name": "FileChange", + "value": "FILE_CHANGE" + } + ] + }, "aws-native:codestarnotifications:NotificationRuleDetailType": { "type": "string", "enum": [ @@ -20161,6 +20929,27 @@ "fields" ] }, + "aws-native:connect:SecurityProfileApplication": { + "description": "A third-party application's metadata.", + "properties": { + "applicationPermissions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The permissions that the agent is granted on the application" + }, + "namespace": { + "type": "string", + "description": "Namespace of the application that you want to give access to." + } + }, + "type": "object", + "required": [ + "applicationPermissions", + "namespace" + ] + }, "aws-native:connect:SecurityProfileTag": { "description": "A key-value pair to associate with a resource.", "properties": { @@ -26959,6 +27748,12 @@ "region": { "type": "string" }, + "replicaStreamSpecification": { + "$ref": "#/types/aws-native:dynamodb:GlobalTableReplicaStreamSpecification" + }, + "resourcePolicy": { + "$ref": "#/types/aws-native:dynamodb:GlobalTableResourcePolicy" + }, "sseSpecification": { "$ref": "#/types/aws-native:dynamodb:GlobalTableReplicaSseSpecification" }, @@ -26988,6 +27783,28 @@ "kmsMasterKeyId" ] }, + "aws-native:dynamodb:GlobalTableReplicaStreamSpecification": { + "properties": { + "resourcePolicy": { + "$ref": "#/types/aws-native:dynamodb:GlobalTableResourcePolicy" + } + }, + "type": "object", + "required": [ + "resourcePolicy" + ] + }, + "aws-native:dynamodb:GlobalTableResourcePolicy": { + "properties": { + "policyDocument": { + "$ref": "pulumi.json#/Any" + } + }, + "type": "object", + "required": [ + "policyDocument" + ] + }, "aws-native:dynamodb:GlobalTableSseSpecification": { "properties": { "sseEnabled": { @@ -27308,6 +28125,17 @@ "writeCapacityUnits" ] }, + "aws-native:dynamodb:TableResourcePolicy": { + "properties": { + "policyDocument": { + "$ref": "pulumi.json#/Any" + } + }, + "type": "object", + "required": [ + "policyDocument" + ] + }, "aws-native:dynamodb:TableS3BucketSource": { "description": "The S3 bucket that is being imported from.", "properties": { @@ -27353,6 +28181,9 @@ "aws-native:dynamodb:TableStreamSpecification": { "description": "Represents the DynamoDB Streams configuration for a table in DynamoDB.", "properties": { + "resourcePolicy": { + "$ref": "#/types/aws-native:dynamodb:TableResourcePolicy" + }, "streamViewType": { "type": "string", "description": "When an item in the table is modified, ``StreamViewType`` determines what information is written to the stream for this table. Valid values for ``StreamViewType`` are:\n + ``KEYS_ONLY`` - Only the key attributes of the modified item are written to the stream.\n + ``NEW_IMAGE`` - The entire item, as it appears after it was modified, is written to the stream.\n + ``OLD_IMAGE`` - The entire item, as it appeared before it was modified, is written to the stream.\n + ``NEW_AND_OLD_IMAGES`` - Both the new and the old item images of the item are written to the stream." @@ -28978,12 +29809,15 @@ ] }, "aws-native:ec2:InternetGatewayTag": { + "description": "Specifies a tag. For more information, see [Add tags to a resource](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#cloudformation-add-tag-specifications).", "properties": { "key": { - "type": "string" + "type": "string", + "description": "The tag key." }, "value": { - "type": "string" + "type": "string", + "description": "The tag value." } }, "type": "object", @@ -29512,7 +30346,7 @@ }, "instanceRequirements": { "$ref": "#/types/aws-native:ec2:LaunchTemplateInstanceRequirements", - "description": "The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.\n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values.\n To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n If you specify ``InstanceReq" + "description": "The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.\n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values.\n To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n If you specify ``InstanceRequirements``, you can't specify ``InstanceType``.\n Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``.\n For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*." }, "instanceType": { "type": "string", @@ -29625,13 +30459,13 @@ }, "volumeType": { "type": "string", - "description": "The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*." + "description": "The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon EBS User Guide*." } }, "type": "object" }, "aws-native:ec2:LaunchTemplateElasticGpuSpecification": { - "description": "Specifies a specification for an Elastic GPU for an Amazon EC2 launch template.\n ``ElasticGpuSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", + "description": "Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances.\n Specifies a specification for an Elastic GPU for an Amazon EC2 launch template.\n ``ElasticGpuSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", "properties": { "type": { "type": "string", @@ -29699,7 +30533,7 @@ "type": "object" }, "aws-native:ec2:LaunchTemplateIamInstanceProfile": { - "description": "Specifies an IAM instance profile, which is a container for an IAM role for your instance. You can use an IAM role to distribute your AWS credentials to your instances.\n If you are creating the launch template for use with an Amazon EC2 Auto Scaling group, you can specify either the name or the ARN of the instance profile, but not both.\n ``IamInstanceProfile`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", + "description": "Specifies an IAM instance profile, which is a container for an IAM role for your instance. You can use an IAM role to distribute your AWS credentials to your instances.\n If you are creating the launch template for use with an ASlong group, you can specify either the name or the ARN of the instance profile, but not both.\n ``IamInstanceProfile`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", "properties": { "arn": { "type": "string", @@ -29727,7 +30561,7 @@ "type": "object" }, "aws-native:ec2:LaunchTemplateInstanceRequirements": { - "description": "The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.\n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values.\n To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n If you specify ``InstanceReq", + "description": "The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.\n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values.\n To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n If you specify ``InstanceRequirements``, you can't specify ``InstanceType``.\n Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``.\n For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*.", "properties": { "acceleratorCount": { "$ref": "#/types/aws-native:ec2:LaunchTemplateAcceleratorCount", @@ -29811,7 +30645,7 @@ }, "maxSpotPriceAsPercentageOfOptimalOnDemandPrice": { "type": "integer", - "description": "[Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n To indicate no price protection threshold, specify a high value, such as ``999999``.\n If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instanc" + "description": "[Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price.\n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``." }, "memoryGiBPerVCpu": { "$ref": "#/types/aws-native:ec2:LaunchTemplateMemoryGiBPerVCpu", @@ -29831,7 +30665,7 @@ }, "onDemandMaxPricePercentageOverLowestPrice": { "type": "integer", - "description": "[Price protection] The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n To turn off price protection, specify a high value, such as ``999999``.\n This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html).\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-" + "description": "[Price protection] The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n To turn off price protection, specify a high value, such as ``999999``.\n This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html).\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.\n Default: ``20``" }, "requireHibernateSupport": { "type": "boolean", @@ -29839,7 +30673,7 @@ }, "spotMaxPricePercentageOverLowestPrice": { "type": "integer", - "description": "[Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n To indicate no price protection threshold, specify a high value, such as ``999999``.\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price i" + "description": "[Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.\n This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html).\n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``.\n Default: ``100``" }, "totalLocalStorageGb": { "$ref": "#/types/aws-native:ec2:LaunchTemplateTotalLocalStorageGb", @@ -29898,9 +30732,6 @@ "autoRecovery": { "type": "string", "description": "Disables the automatic recovery behavior of your instance or sets it to default." - }, - "rebootMigration": { - "type": "string" } }, "type": "object" @@ -30197,7 +31028,7 @@ }, "spotInstanceType": { "type": "string", - "description": "The Spot Instance request type.\n If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is below its desired capacity." + "description": "The Spot Instance request type.\n If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the ASlong service handles requesting new Spot Instances whenever the group is below its desired capacity." }, "validUntil": { "type": "string", @@ -31238,7 +32069,7 @@ ] }, "aws-native:ec2:PrivateDnsNameOptionsOnLaunchProperties": { - "description": "The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*.\n Available options:\n + EnableResourceNameDnsAAAARecord (true | false)\n + EnableResourceNameDnsARecord (true | false)\n + HostnameType (ip-name | resource-name)", + "description": "The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*.\n Available options:\n + EnableResourceNameDnsAAAARecord (true | false)\n + EnableResourceNameDnsARecord (true | false)\n + HostnameType (ip-name | resource-name)", "properties": { "enableResourceNameDnsARecord": { "type": "boolean" @@ -35291,7 +36122,7 @@ "description": "The backup policy turns automatic backups for the file system on or off.", "properties": { "status": { - "type": "string", + "$ref": "#/types/aws-native:efs:FileSystemBackupPolicyStatus", "description": "Set the backup policy status for the file system.\n + *ENABLED* - Turns automatic backups on for the file system. \n + *DISABLED* - Turns automatic backups off for the file system." } }, @@ -35300,6 +36131,20 @@ "status" ] }, + "aws-native:efs:FileSystemBackupPolicyStatus": { + "description": "Set the backup policy status for the file system.\n + *ENABLED* - Turns automatic backups on for the file system. \n + *DISABLED* - Turns automatic backups off for the file system.", + "type": "string", + "enum": [ + { + "name": "Disabled", + "value": "DISABLED" + }, + { + "name": "Enabled", + "value": "ENABLED" + } + ] + }, "aws-native:efs:FileSystemElasticFileSystemTag": { "description": "A tag is a key-value pair attached to a file system. Allowed characters in the ``Key`` and ``Value`` properties are letters, white space, and numbers that can be represented in UTF-8, and the following characters:``+ - = . _ : /``", "properties": { @@ -36084,19 +36929,22 @@ "type": "integer", "description": "The maximum cached data capacity of the Serverless Cache." }, + "minimum": { + "type": "integer", + "description": "The minimum cached data capacity of the Serverless Cache." + }, "unit": { "$ref": "#/types/aws-native:elasticache:ServerlessCacheDataStorageUnit", - "description": "The unix of cached data capacity of the Serverless Cache." + "description": "The unit of cached data capacity of the Serverless Cache." } }, "type": "object", "required": [ - "maximum", "unit" ] }, "aws-native:elasticache:ServerlessCacheDataStorageUnit": { - "description": "The unix of cached data capacity of the Serverless Cache.", + "description": "The unit of cached data capacity of the Serverless Cache.", "type": "string", "enum": [ { @@ -36111,12 +36959,13 @@ "maximum": { "type": "integer", "description": "The maximum ECPU per second of the Serverless Cache." + }, + "minimum": { + "type": "integer", + "description": "The minimum ECPU per second of the Serverless Cache." } }, - "type": "object", - "required": [ - "maximum" - ] + "type": "object" }, "aws-native:elasticache:ServerlessCacheEndpoint": { "description": "The address and the port.", @@ -37695,16 +38544,31 @@ "properties": { "inputSourceArn": { "type": "string", - "description": "An Glue table ARN for the input source table" + "description": "An Glue table ARN for the input source table or IdNamespace ARN" }, "schemaArn": { "type": "string" + }, + "type": { + "$ref": "#/types/aws-native:entityresolution:IdMappingWorkflowInputSourceType" } }, "type": "object", "required": [ - "inputSourceArn", - "schemaArn" + "inputSourceArn" + ] + }, + "aws-native:entityresolution:IdMappingWorkflowInputSourceType": { + "type": "string", + "enum": [ + { + "name": "Source", + "value": "SOURCE" + }, + { + "name": "Target", + "value": "TARGET" + } ] }, "aws-native:entityresolution:IdMappingWorkflowIntermediateSourceConfiguration": { @@ -41661,7 +42525,7 @@ ] }, "aws-native:gamelift:GameServerGroupAutoScalingPolicy": { - "description": "Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting", + "description": "Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource.", "properties": { "estimatedInstanceWarmup": { "type": "number" @@ -41741,7 +42605,7 @@ ] }, "aws-native:gamelift:GameServerGroupLaunchTemplate": { - "description": "The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group.", + "description": "The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource.", "properties": { "launchTemplateId": { "type": "string" @@ -51427,10 +52291,27 @@ "greengrassV2": { "$ref": "#/types/aws-native:iotsitewise:GatewayGreengrassV2", "description": "A gateway that runs on AWS IoT Greengrass V2." + }, + "siemensIe": { + "$ref": "#/types/aws-native:iotsitewise:GatewaySiemensIe", + "description": "A gateway that runs on Siemens Industrial Edge." } }, "type": "object" }, + "aws-native:iotsitewise:GatewaySiemensIe": { + "description": "Contains the IotCoreThingName of AWS IoT Thing that the gateway runs on.", + "properties": { + "iotCoreThingName": { + "type": "string", + "description": "The name of the IoT Core Thing." + } + }, + "type": "object", + "required": [ + "iotCoreThingName" + ] + }, "aws-native:iotsitewise:GatewayTag": { "description": "To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted", "properties": { @@ -53599,6 +54480,101 @@ }, "type": "object" }, + "aws-native:kafkaconnect:CustomPluginContentType": { + "description": "The type of the plugin file.", + "type": "string", + "enum": [ + { + "name": "Jar", + "value": "JAR" + }, + { + "name": "Zip", + "value": "ZIP" + } + ] + }, + "aws-native:kafkaconnect:CustomPluginFileDescription": { + "description": "Details about the custom plugin file.", + "properties": { + "fileMd5": { + "type": "string", + "description": "The hex-encoded MD5 checksum of the custom plugin file. You can use it to validate the file." + }, + "fileSize": { + "type": "integer", + "description": "The size in bytes of the custom plugin file. You can use it to validate the file." + } + }, + "type": "object" + }, + "aws-native:kafkaconnect:CustomPluginLocation": { + "description": "Information about the location of a custom plugin.", + "properties": { + "s3Location": { + "$ref": "#/types/aws-native:kafkaconnect:CustomPluginS3Location" + } + }, + "type": "object", + "required": [ + "s3Location" + ] + }, + "aws-native:kafkaconnect:CustomPluginS3Location": { + "description": "The S3 bucket Amazon Resource Name (ARN), file key, and object version of the plugin file stored in Amazon S3.", + "properties": { + "bucketArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of an S3 bucket." + }, + "fileKey": { + "type": "string", + "description": "The file key for an object in an S3 bucket." + }, + "objectVersion": { + "type": "string", + "description": "The version of an object in an S3 bucket." + } + }, + "type": "object", + "required": [ + "bucketArn", + "fileKey" + ] + }, + "aws-native:kafkaconnect:CustomPluginTag": { + "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:kafkaconnect:WorkerConfigurationTag": { + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "required": [ + "key", + "value" + ] + }, "aws-native:kendra:DataSourceAccessControlListConfiguration": { "properties": { "keyPath": { @@ -62398,7 +63374,7 @@ ] }, "aws-native:logs:LogGroupClass": { - "description": "The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class", + "description": "Specifies the log group class for this log group. There are two classes:\n + The ``Standard`` log class supports all CWL features.\n + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs.\n \n For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html)", "type": "string", "enum": [ { @@ -62412,15 +63388,12 @@ ] }, "aws-native:logs:LogGroupTag": { - "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 @." + "type": "string" }, "value": { - "type": "string", - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., :, /, =, +, - and @." + "type": "string" } }, "type": "object", @@ -62430,15 +63403,15 @@ ] }, "aws-native:logs:MetricFilterDimension": { - "description": "the key-value pairs that further define a metric.", + "description": "Specifies the CW metric dimensions to publish with this metric.\n Because dimensions are part of the unique identifier for a metric, whenever a unique dimension name/value pair is extracted from your logs, you are creating a new variation of that metric.\n For more information about publishing dimensions with metrics created by metric filters, see [Publishing dimensions with metrics from values in JSON or space-delimited log events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html#logs-metric-filters-dimensions).\n Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. \n To help prevent accidental high charges, Amazon disables a metric filter if it generates 1000 different name/value pairs for the dimensions that you have specified within a certain amount of time.\n You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html).", "properties": { "key": { "type": "string", - "description": "The key of the dimension. Maximum length of 255." + "description": "The name for the CW metric dimension that the metric filter creates.\n Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon (:)." }, "value": { "type": "string", - "description": "The value of the dimension. Maximum length of 255." + "description": "The log event field that will contain the value for this dimension. This dimension will only be published for a metric if the value is found in the log event. For example, ``$.eventType`` for JSON log events, or ``$server`` for space-delimited log events." } }, "type": "object", @@ -62448,33 +63421,34 @@ ] }, "aws-native:logs:MetricFilterMetricTransformation": { + "description": "``MetricTransformation`` is a property of the ``AWS::Logs::MetricFilter`` resource that describes how to transform log streams into a CloudWatch metric.", "properties": { "defaultValue": { "type": "number", - "description": "The value to emit when a filter pattern does not match a log event. This value can be null." + "description": "(Optional) The value to emit when a filter pattern does not match a log event. This value can be null." }, "dimensions": { "type": "array", "items": { "$ref": "#/types/aws-native:logs:MetricFilterDimension" }, - "description": "Dimensions are the key-value pairs that further define a metric" + "description": "The fields to use as dimensions for the metric. One metric filter can include as many as three dimensions.\n Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. \n CloudWatch Logs disables a metric filter if it generates 1000 different name/value pairs for your specified dimensions within a certain amount of time. This helps to prevent accidental high charges.\n You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html)." }, "metricName": { "type": "string", - "description": "The name of the CloudWatch metric. Metric name must be in ASCII format." + "description": "The name of the CloudWatch metric." }, "metricNamespace": { "type": "string", - "description": "The namespace of the CloudWatch metric." + "description": "A custom namespace to contain your metric in CloudWatch. Use namespaces to group together metrics that are similar. For more information, see [Namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace)." }, "metricValue": { "type": "string", - "description": "The value to publish to the CloudWatch metric when a filter pattern matches a log event." + "description": "The value that is published to the CloudWatch metric. For example, if you're counting the occurrences of a particular term like ``Error``, specify 1 for the metric value. If you're counting the number of bytes transferred, reference the value that is in the log event by using $. followed by the name of the field that you specified in the filter pattern, such as ``$.size``." }, "unit": { "$ref": "#/types/aws-native:logs:MetricFilterMetricTransformationUnit", - "description": "The unit to assign to the metric. If you omit this, the unit is set as None." + "description": "The unit to assign to the metric. If you omit this, the unit is set as ``None``." } }, "type": "object", @@ -62485,7 +63459,7 @@ ] }, "aws-native:logs:MetricFilterMetricTransformationUnit": { - "description": "The unit to assign to the metric. If you omit this, the unit is set as None.", + "description": "The unit to assign to the metric. If you omit this, the unit is set as ``None``.", "type": "string", "enum": [ { @@ -62599,7 +63573,7 @@ ] }, "aws-native:logs:SubscriptionFilterDistribution": { - "description": "The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream.", + "description": "The method used to distribute log data to the destination, which can be either random or grouped by log stream.", "type": "string", "enum": [ { @@ -111503,6 +112477,28 @@ "rtoInSecs" ] }, + "aws-native:resiliencehub:ResiliencyPolicyPolicyMap": { + "properties": { + "az": { + "$ref": "#/types/aws-native:resiliencehub:ResiliencyPolicyFailurePolicy" + }, + "hardware": { + "$ref": "#/types/aws-native:resiliencehub:ResiliencyPolicyFailurePolicy" + }, + "region": { + "$ref": "#/types/aws-native:resiliencehub:ResiliencyPolicyFailurePolicy" + }, + "software": { + "$ref": "#/types/aws-native:resiliencehub:ResiliencyPolicyFailurePolicy" + } + }, + "type": "object", + "required": [ + "az", + "hardware", + "software" + ] + }, "aws-native:resiliencehub:ResiliencyPolicyTier": { "description": "Resiliency Policy Tier.", "type": "string", @@ -124694,6 +125690,185 @@ "standardsControlArn" ] }, + "aws-native:securitylake:DataLakeEncryptionConfiguration": { + "description": "Provides encryption details of Amazon Security Lake object.", + "properties": { + "kmsKeyId": { + "type": "string", + "description": "The id of KMS encryption key used by Amazon Security Lake to encrypt the Security Lake object." + } + }, + "type": "object" + }, + "aws-native:securitylake:DataLakeExpiration": { + "description": "Provides data expiration details of Amazon Security Lake object.", + "properties": { + "days": { + "type": "integer" + } + }, + "type": "object" + }, + "aws-native:securitylake:DataLakeLifecycleConfiguration": { + "description": "Provides lifecycle details of Amazon Security Lake object.", + "properties": { + "expiration": { + "$ref": "#/types/aws-native:securitylake:DataLakeExpiration" + }, + "transitions": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securitylake:DataLakeTransitions" + }, + "description": "Provides data storage transition details of Amazon Security Lake object." + } + }, + "type": "object" + }, + "aws-native:securitylake:DataLakeReplicationConfiguration": { + "description": "Provides replication details of Amazon Security Lake object.", + "properties": { + "regions": { + "type": "array", + "items": { + "type": "string" + } + }, + "roleArn": { + "type": "string", + "description": "Replication settings for the Amazon S3 buckets. This parameter uses the AWS Identity and Access Management (IAM) role you created that is managed by Security Lake, to ensure the replication setting is correct." + } + }, + "type": "object" + }, + "aws-native:securitylake:DataLakeTag": { + "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 characters in length." + } + }, + "type": "object", + "required": [ + "key", + "value" + ] + }, + "aws-native:securitylake:DataLakeTransitions": { + "properties": { + "days": { + "type": "integer", + "description": "Number of days before data transitions to a different S3 Storage Class in the Amazon Security Lake object." + }, + "storageClass": { + "type": "string", + "description": "The range of storage classes that you can choose from based on the data access, resiliency, and cost requirements of your workloads." + } + }, + "type": "object" + }, + "aws-native:securitylake:SubscriberAccessTypesItem": { + "type": "string", + "enum": [ + { + "name": "Lakeformation", + "value": "LAKEFORMATION" + }, + { + "name": "S3", + "value": "S3" + } + ] + }, + "aws-native:securitylake:SubscriberAwsLogSource": { + "description": "Amazon Security Lake supports log and event collection for natively supported AWS services.", + "properties": { + "sourceName": { + "type": "string", + "description": "The name for a AWS source. This must be a Regionally unique value." + }, + "sourceVersion": { + "type": "string", + "description": "The version for a AWS source. This must be a Regionally unique value." + } + }, + "type": "object" + }, + "aws-native:securitylake:SubscriberCustomLogSource": { + "properties": { + "sourceName": { + "type": "string", + "description": "The name for a third-party custom source. This must be a Regionally unique value." + }, + "sourceVersion": { + "type": "string", + "description": "The version for a third-party custom source. This must be a Regionally unique value." + } + }, + "type": "object" + }, + "aws-native:securitylake:SubscriberIdentityProperties": { + "description": "The AWS identity used to access your data.", + "properties": { + "externalId": { + "type": "string", + "description": "The external ID used to establish trust relationship with the AWS identity." + }, + "principal": { + "type": "string", + "description": "The AWS identity principal." + } + }, + "type": "object", + "required": [ + "externalId", + "principal" + ] + }, + "aws-native:securitylake:SubscriberSource0Properties": { + "properties": { + "awsLogSource": { + "$ref": "#/types/aws-native:securitylake:SubscriberAwsLogSource" + } + }, + "type": "object", + "required": [ + "awsLogSource" + ] + }, + "aws-native:securitylake:SubscriberSource1Properties": { + "properties": { + "customLogSource": { + "$ref": "#/types/aws-native:securitylake:SubscriberCustomLogSource" + } + }, + "type": "object", + "required": [ + "customLogSource" + ] + }, + "aws-native:securitylake:SubscriberTag": { + "properties": { + "key": { + "type": "string", + "description": "The name of the tag. This is a general label that acts as a category for a more specific tag value (value)." + }, + "value": { + "type": "string", + "description": "The value that is associated with the specified tag key (key). This value acts as a descriptor for the tag key. A tag value cannot be null, but it can be an empty string." + } + }, + "type": "object", + "required": [ + "key", + "value" + ] + }, "aws-native:servicecatalog:CloudFormationProvisionedProductAcceptLanguage": { "type": "string", "enum": [ @@ -137799,6 +138974,79 @@ "triggerConfig" ] }, + "aws-native:appintegrations:Application": { + "description": "Resource Type definition for AWS:AppIntegrations::Application", + "properties": { + "applicationArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the application." + }, + "applicationSourceConfig": { + "$ref": "#/types/aws-native:appintegrations:ApplicationSourceConfigProperties", + "description": "Application source config" + }, + "awsId": { + "type": "string", + "description": "The id of the application." + }, + "description": { + "type": "string", + "description": "The application description." + }, + "name": { + "type": "string", + "description": "The name of the application." + }, + "namespace": { + "type": "string", + "description": "The namespace of the application." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "The tags (keys and values) associated with the application." + } + }, + "type": "object", + "required": [ + "applicationArn", + "applicationSourceConfig", + "awsId", + "description", + "name" + ], + "inputProperties": { + "applicationSourceConfig": { + "$ref": "#/types/aws-native:appintegrations:ApplicationSourceConfigProperties", + "description": "Application source config" + }, + "description": { + "type": "string", + "description": "The application description." + }, + "name": { + "type": "string", + "description": "The name of the application." + }, + "namespace": { + "type": "string", + "description": "The namespace of the application." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "The tags (keys and values) associated with the application." + } + }, + "requiredInputs": [ + "applicationSourceConfig", + "description" + ] + }, "aws-native:appintegrations:DataIntegration": { "description": "Resource Type definition for AWS::AppIntegrations::DataIntegration", "properties": { @@ -139590,7 +140838,8 @@ "description": "The maximum number of resolver request inputs that will be sent to a single LAMlong function in a ``BatchInvoke`` operation." }, "metricsConfig": { - "$ref": "#/types/aws-native:appsync:ResolverMetricsConfig" + "$ref": "#/types/aws-native:appsync:ResolverMetricsConfig", + "description": "Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value." }, "pipelineConfig": { "$ref": "#/types/aws-native:appsync:ResolverPipelineConfig", @@ -139670,7 +140919,8 @@ "description": "The maximum number of resolver request inputs that will be sent to a single LAMlong function in a ``BatchInvoke`` operation." }, "metricsConfig": { - "$ref": "#/types/aws-native:appsync:ResolverMetricsConfig" + "$ref": "#/types/aws-native:appsync:ResolverMetricsConfig", + "description": "Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value." }, "pipelineConfig": { "$ref": "#/types/aws-native:appsync:ResolverPipelineConfig", @@ -139862,6 +141112,83 @@ "workspace" ] }, + "aws-native:aps:Scraper": { + "description": "Resource Type definition for AWS::APS::Scraper", + "properties": { + "alias": { + "type": "string", + "description": "Scraper alias.", + "replaceOnChanges": true + }, + "arn": { + "type": "string", + "description": "Scraper ARN." + }, + "destination": { + "$ref": "#/types/aws-native:aps:ScraperDestination", + "replaceOnChanges": true + }, + "roleArn": { + "type": "string", + "description": "IAM role ARN for the scraper." + }, + "scrapeConfiguration": { + "$ref": "#/types/aws-native:aps:ScraperScrapeConfiguration", + "replaceOnChanges": true + }, + "scraperId": { + "type": "string", + "description": "Required to identify a specific scraper." + }, + "source": { + "$ref": "#/types/aws-native:aps:ScraperSource", + "replaceOnChanges": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to this resource." + } + }, + "type": "object", + "required": [ + "arn", + "destination", + "roleArn", + "scrapeConfiguration", + "scraperId", + "source" + ], + "inputProperties": { + "alias": { + "type": "string", + "description": "Scraper alias." + }, + "destination": { + "$ref": "#/types/aws-native:aps:ScraperDestination" + }, + "scrapeConfiguration": { + "$ref": "#/types/aws-native:aps:ScraperScrapeConfiguration" + }, + "source": { + "$ref": "#/types/aws-native:aps:ScraperSource" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to this resource." + } + }, + "requiredInputs": [ + "destination", + "scrapeConfiguration", + "source" + ] + }, "aws-native:aps:Workspace": { "description": "Resource Type definition for AWS::APS::Workspace\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 apsWorkspace = new AwsNative.Aps.Workspace(\"apsWorkspace\", new()\n {\n Alias = \"TestWorkspace\",\n Tags = new[]\n {\n new AwsNative.Inputs.TagArgs\n {\n Key = \"BusinessPurpose\",\n Value = \"LoadTesting\",\n },\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\tawsnative \"github.com/pulumi/pulumi-aws-native/sdk/go/aws\"\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/aps\"\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 := aps.NewWorkspace(ctx, \"apsWorkspace\", \u0026aps.WorkspaceArgs{\n\t\t\tAlias: pulumi.String(\"TestWorkspace\"),\n\t\t\tTags: aws.TagArray{\n\t\t\t\t\u0026aws.TagArgs{\n\t\t\t\t\tKey: pulumi.String(\"BusinessPurpose\"),\n\t\t\t\t\tValue: pulumi.String(\"LoadTesting\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst apsWorkspace = new aws_native.aps.Workspace(\"apsWorkspace\", {\n alias: \"TestWorkspace\",\n tags: [{\n key: \"BusinessPurpose\",\n value: \"LoadTesting\",\n }],\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\naps_workspace = aws_native.aps.Workspace(\"apsWorkspace\",\n alias=\"TestWorkspace\",\n tags=[aws_native.TagArgs(\n key=\"BusinessPurpose\",\n value=\"LoadTesting\",\n )])\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Example\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AwsNative = Pulumi.AwsNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var apsWorkspace = new AwsNative.Aps.Workspace(\"apsWorkspace\", new()\n {\n Alias = \"TestWorkspace\",\n LoggingConfiguration = new AwsNative.Aps.Inputs.WorkspaceLoggingConfigurationArgs\n {\n LogGroupArn = \"arn:aws:logs:{region}:{account}:log-group:test-log-group:*\",\n },\n Tags = new[]\n {\n new AwsNative.Inputs.TagArgs\n {\n Key = \"BusinessPurpose\",\n Value = \"LoadTesting\",\n },\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\tawsnative \"github.com/pulumi/pulumi-aws-native/sdk/go/aws\"\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/aps\"\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 := aps.NewWorkspace(ctx, \"apsWorkspace\", \u0026aps.WorkspaceArgs{\n\t\t\tAlias: pulumi.String(\"TestWorkspace\"),\n\t\t\tLoggingConfiguration: \u0026aps.WorkspaceLoggingConfigurationArgs{\n\t\t\t\tLogGroupArn: pulumi.String(\"arn:aws:logs:{region}:{account}:log-group:test-log-group:*\"),\n\t\t\t},\n\t\t\tTags: aws.TagArray{\n\t\t\t\t\u0026aws.TagArgs{\n\t\t\t\t\tKey: pulumi.String(\"BusinessPurpose\"),\n\t\t\t\t\tValue: pulumi.String(\"LoadTesting\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst apsWorkspace = new aws_native.aps.Workspace(\"apsWorkspace\", {\n alias: \"TestWorkspace\",\n loggingConfiguration: {\n logGroupArn: \"arn:aws:logs:{region}:{account}:log-group:test-log-group:*\",\n },\n tags: [{\n key: \"BusinessPurpose\",\n value: \"LoadTesting\",\n }],\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\naps_workspace = aws_native.aps.Workspace(\"apsWorkspace\",\n alias=\"TestWorkspace\",\n logging_configuration=aws_native.aps.WorkspaceLoggingConfigurationArgs(\n log_group_arn=\"arn:aws:logs:{region}:{account}:log-group:test-log-group:*\",\n ),\n tags=[aws_native.TagArgs(\n key=\"BusinessPurpose\",\n value=\"LoadTesting\",\n )])\n\n```\n\n{{% /example %}}\n{{% example %}}\n### Example\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AwsNative = Pulumi.AwsNative;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var apsWorkspace = new AwsNative.Aps.Workspace(\"apsWorkspace\", new()\n {\n Alias = \"TestWorkspace\",\n LoggingConfiguration = new AwsNative.Aps.Inputs.WorkspaceLoggingConfigurationArgs\n {\n LogGroupArn = \"arn:aws:logs:{region}:{account}:log-group:test-log-group:*\",\n },\n Tags = new[]\n {\n new AwsNative.Inputs.TagArgs\n {\n Key = \"BusinessPurpose\",\n Value = \"LoadTesting\",\n },\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\tawsnative \"github.com/pulumi/pulumi-aws-native/sdk/go/aws\"\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/aps\"\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 := aps.NewWorkspace(ctx, \"apsWorkspace\", \u0026aps.WorkspaceArgs{\n\t\t\tAlias: pulumi.String(\"TestWorkspace\"),\n\t\t\tLoggingConfiguration: \u0026aps.WorkspaceLoggingConfigurationArgs{\n\t\t\t\tLogGroupArn: pulumi.String(\"arn:aws:logs:{region}:{account}:log-group:test-log-group:*\"),\n\t\t\t},\n\t\t\tTags: aws.TagArray{\n\t\t\t\t\u0026aws.TagArgs{\n\t\t\t\t\tKey: pulumi.String(\"BusinessPurpose\"),\n\t\t\t\t\tValue: pulumi.String(\"LoadTesting\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst apsWorkspace = new aws_native.aps.Workspace(\"apsWorkspace\", {\n alias: \"TestWorkspace\",\n loggingConfiguration: {\n logGroupArn: \"arn:aws:logs:{region}:{account}:log-group:test-log-group:*\",\n },\n tags: [{\n key: \"BusinessPurpose\",\n value: \"LoadTesting\",\n }],\n});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\naps_workspace = aws_native.aps.Workspace(\"apsWorkspace\",\n alias=\"TestWorkspace\",\n logging_configuration=aws_native.aps.WorkspaceLoggingConfigurationArgs(\n log_group_arn=\"arn:aws:logs:{region}:{account}:log-group:test-log-group:*\",\n ),\n tags=[aws_native.TagArgs(\n key=\"BusinessPurpose\",\n value=\"LoadTesting\",\n )])\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n", "properties": { @@ -142428,6 +143755,283 @@ } } }, + "aws-native:bedrock:Agent": { + "description": "Definition of AWS::Bedrock::Agent Resource Type", + "properties": { + "actionGroups": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:bedrock:AgentActionGroup" + }, + "description": "List of ActionGroups" + }, + "agentArn": { + "type": "string", + "description": "Arn representation of the Agent." + }, + "agentId": { + "type": "string", + "description": "Identifier for a resource." + }, + "agentName": { + "type": "string", + "description": "Name for a resource." + }, + "agentResourceRoleArn": { + "type": "string", + "description": "ARN of a IAM role." + }, + "agentStatus": { + "$ref": "#/types/aws-native:bedrock:AgentStatus" + }, + "agentVersion": { + "type": "string", + "description": "Draft Agent Version." + }, + "autoPrepare": { + "type": "boolean", + "description": "Specifies whether to automatically prepare after creating or updating the agent." + }, + "createdAt": { + "type": "string", + "description": "Time Stamp." + }, + "customerEncryptionKeyArn": { + "type": "string", + "description": "A KMS key ARN" + }, + "description": { + "type": "string", + "description": "Description of the Resource." + }, + "failureReasons": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Failure Reasons for Error." + }, + "foundationModel": { + "type": "string", + "description": "ARN or name of a Bedrock model." + }, + "idleSessionTtlInSeconds": { + "type": "number", + "description": "Max Session Time." + }, + "instruction": { + "type": "string", + "description": "Instruction for the agent." + }, + "knowledgeBases": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:bedrock:AgentKnowledgeBase" + }, + "description": "List of Agent Knowledge Bases" + }, + "preparedAt": { + "type": "string", + "description": "Time Stamp." + }, + "promptOverrideConfiguration": { + "$ref": "#/types/aws-native:bedrock:AgentPromptOverrideConfiguration" + }, + "recommendedActions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The recommended actions users can take to resolve an error in failureReasons." + }, + "skipResourceInUseCheckOnDelete": { + "type": "boolean", + "description": "Specifies whether to allow deleting agent while it is in use." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "updatedAt": { + "type": "string", + "description": "Time Stamp." + } + }, + "type": "object", + "required": [ + "agentArn", + "agentId", + "agentName", + "agentStatus", + "agentVersion", + "createdAt", + "failureReasons", + "preparedAt", + "recommendedActions", + "updatedAt" + ], + "inputProperties": { + "actionGroups": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:bedrock:AgentActionGroup" + }, + "description": "List of ActionGroups" + }, + "agentName": { + "type": "string", + "description": "Name for a resource." + }, + "agentResourceRoleArn": { + "type": "string", + "description": "ARN of a IAM role." + }, + "autoPrepare": { + "type": "boolean", + "description": "Specifies whether to automatically prepare after creating or updating the agent." + }, + "customerEncryptionKeyArn": { + "type": "string", + "description": "A KMS key ARN" + }, + "description": { + "type": "string", + "description": "Description of the Resource." + }, + "foundationModel": { + "type": "string", + "description": "ARN or name of a Bedrock model." + }, + "idleSessionTtlInSeconds": { + "type": "number", + "description": "Max Session Time." + }, + "instruction": { + "type": "string", + "description": "Instruction for the agent." + }, + "knowledgeBases": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:bedrock:AgentKnowledgeBase" + }, + "description": "List of Agent Knowledge Bases" + }, + "promptOverrideConfiguration": { + "$ref": "#/types/aws-native:bedrock:AgentPromptOverrideConfiguration" + }, + "skipResourceInUseCheckOnDelete": { + "type": "boolean", + "description": "Specifies whether to allow deleting agent while it is in use." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "aws-native:bedrock:AgentAlias": { + "description": "Definition of AWS::Bedrock::AgentAlias Resource Type", + "properties": { + "agentAliasArn": { + "type": "string", + "description": "Arn representation of the Agent Alias." + }, + "agentAliasHistoryEvents": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:bedrock:AgentAliasHistoryEvent" + }, + "description": "The list of history events for an alias for an Agent." + }, + "agentAliasId": { + "type": "string", + "description": "Id for an Agent Alias generated at the server side." + }, + "agentAliasName": { + "type": "string", + "description": "Name for a resource." + }, + "agentAliasStatus": { + "$ref": "#/types/aws-native:bedrock:AgentAliasStatus" + }, + "agentId": { + "type": "string", + "description": "Identifier for a resource.", + "replaceOnChanges": true + }, + "createdAt": { + "type": "string", + "description": "Time Stamp." + }, + "description": { + "type": "string", + "description": "Description of the Resource." + }, + "routingConfiguration": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:bedrock:AgentAliasRoutingConfigurationListItem" + }, + "description": "Routing configuration for an Agent alias." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "updatedAt": { + "type": "string", + "description": "Time Stamp." + } + }, + "type": "object", + "required": [ + "agentAliasArn", + "agentAliasHistoryEvents", + "agentAliasId", + "agentAliasName", + "agentAliasStatus", + "agentId", + "createdAt", + "updatedAt" + ], + "inputProperties": { + "agentAliasName": { + "type": "string", + "description": "Name for a resource." + }, + "agentId": { + "type": "string", + "description": "Identifier for a resource." + }, + "description": { + "type": "string", + "description": "Description of the Resource." + }, + "routingConfiguration": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:bedrock:AgentAliasRoutingConfigurationListItem" + }, + "description": "Routing configuration for an Agent alias." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "requiredInputs": [ + "agentId" + ] + }, "aws-native:budgets:BudgetsAction": { "description": "An example resource schema demonstrating some basic constructs and validation rules.", "properties": { @@ -146013,6 +147617,91 @@ } } }, + "aws-native:codeartifact:PackageGroup": { + "description": "The resource schema to create a CodeArtifact package group.", + "properties": { + "arn": { + "type": "string", + "description": "The ARN of the package group." + }, + "contactInfo": { + "type": "string", + "description": "The contact info of the package group." + }, + "description": { + "type": "string", + "description": "The text description of the package group." + }, + "domainName": { + "type": "string", + "description": "The name of the domain that contains the package group.", + "replaceOnChanges": true + }, + "domainOwner": { + "type": "string", + "description": "The 12-digit account ID of the AWS account that owns the domain." + }, + "originConfiguration": { + "$ref": "#/types/aws-native:codeartifact:PackageGroupOriginConfiguration", + "description": "The package origin configuration of the package group." + }, + "pattern": { + "type": "string", + "description": "The package group pattern that is used to gather packages.", + "replaceOnChanges": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to the package group." + } + }, + "type": "object", + "required": [ + "arn", + "domainName", + "pattern" + ], + "inputProperties": { + "contactInfo": { + "type": "string", + "description": "The contact info of the package group." + }, + "description": { + "type": "string", + "description": "The text description of the package group." + }, + "domainName": { + "type": "string", + "description": "The name of the domain that contains the package group." + }, + "domainOwner": { + "type": "string", + "description": "The 12-digit account ID of the AWS account that owns the domain." + }, + "originConfiguration": { + "$ref": "#/types/aws-native:codeartifact:PackageGroupOriginConfiguration", + "description": "The package origin configuration of the package group." + }, + "pattern": { + "type": "string", + "description": "The package group pattern that is used to gather packages." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to the package group." + } + }, + "requiredInputs": [ + "domainName", + "pattern" + ] + }, "aws-native:codeartifact:Repository": { "description": "The resource schema to create a CodeArtifact repository.", "properties": { @@ -146174,6 +147863,73 @@ } } }, + "aws-native:codeconnections:Connection": { + "description": "Schema for AWS::CodeConnections::Connection resource which can be used to connect external source providers with other AWS services (i.e. AWS CodePipeline)", + "properties": { + "connectionArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services." + }, + "connectionName": { + "type": "string", + "description": "The name of the connection. Connection names must be unique in an AWS user account.", + "replaceOnChanges": true + }, + "connectionStatus": { + "type": "string", + "description": "The current status of the connection." + }, + "hostArn": { + "type": "string", + "description": "The host arn configured to represent the infrastructure where your third-party provider is installed. You must specify either a ProviderType or a HostArn.", + "replaceOnChanges": true + }, + "ownerAccountId": { + "type": "string", + "description": "The name of the external provider where your third-party code repository is configured. For Bitbucket, this is the account ID of the owner of the Bitbucket repository." + }, + "providerType": { + "type": "string", + "description": "The name of the external provider where your third-party code repository is configured. You must specify either a ProviderType or a HostArn.", + "replaceOnChanges": true + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "Specifies the tags applied to a connection." + } + }, + "type": "object", + "required": [ + "connectionArn", + "connectionName", + "connectionStatus", + "ownerAccountId" + ], + "inputProperties": { + "connectionName": { + "type": "string", + "description": "The name of the connection. Connection names must be unique in an AWS user account." + }, + "hostArn": { + "type": "string", + "description": "The host arn configured to represent the infrastructure where your third-party provider is installed. You must specify either a ProviderType or a HostArn." + }, + "providerType": { + "type": "string", + "description": "The name of the external provider where your third-party code repository is configured. You must specify either a ProviderType or a HostArn." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "Specifies the tags applied to a connection." + } + } + }, "aws-native:codedeploy:Application": { "description": "The AWS::CodeDeploy::Application resource creates an AWS CodeDeploy application", "properties": { @@ -146610,7 +148366,7 @@ "replaceOnChanges": true }, "providerType": { - "type": "string", + "$ref": "#/types/aws-native:codestarconnections:RepositoryLinkProviderType", "description": "The name of the external provider where your third-party code repository is configured." }, "repositoryLinkArn": { @@ -146690,9 +148446,13 @@ "description": "the ID of the entity that owns the repository." }, "providerType": { - "type": "string", + "$ref": "#/types/aws-native:codestarconnections:SyncConfigurationProviderType", "description": "The name of the external provider where your third-party code repository is configured." }, + "publishDeploymentStatus": { + "$ref": "#/types/aws-native:codestarconnections:SyncConfigurationPublishDeploymentStatus", + "description": "Whether to enable or disable publishing of deployment status to source providers." + }, "repositoryLinkId": { "type": "string", "description": "A UUID that uniquely identifies the RepositoryLink that the SyncConfig is associated with." @@ -146714,6 +148474,10 @@ "type": "string", "description": "The type of resource synchronization service that is to be configured, for example, CFN_STACK_SYNC.", "replaceOnChanges": true + }, + "triggerResourceUpdateOn": { + "$ref": "#/types/aws-native:codestarconnections:SyncConfigurationTriggerResourceUpdateOn", + "description": "When to trigger Git sync to begin the stack update." } }, "type": "object", @@ -146737,6 +148501,10 @@ "type": "string", "description": "The source provider repository path of the sync configuration file of the respective SyncType." }, + "publishDeploymentStatus": { + "$ref": "#/types/aws-native:codestarconnections:SyncConfigurationPublishDeploymentStatus", + "description": "Whether to enable or disable publishing of deployment status to source providers." + }, "repositoryLinkId": { "type": "string", "description": "A UUID that uniquely identifies the RepositoryLink that the SyncConfig is associated with." @@ -146752,6 +148520,10 @@ "syncType": { "type": "string", "description": "The type of resource synchronization service that is to be configured, for example, CFN_STACK_SYNC." + }, + "triggerResourceUpdateOn": { + "$ref": "#/types/aws-native:codestarconnections:SyncConfigurationTriggerResourceUpdateOn", + "description": "When to trigger Git sync to begin the stack update." } }, "requiredInputs": [ @@ -149231,6 +151003,14 @@ "description": "The identifier of the Amazon Connect instance.", "replaceOnChanges": true }, + "lastModifiedRegion": { + "type": "string", + "description": "Last modified region." + }, + "lastModifiedTime": { + "type": "number", + "description": "Last modified time." + }, "name": { "type": "string", "description": "The name of the predefined attribute.", @@ -149244,6 +151024,8 @@ "type": "object", "required": [ "instanceArn", + "lastModifiedRegion", + "lastModifiedTime", "name", "values" ], @@ -149753,6 +151535,10 @@ "aws-native:connect:SecurityProfile": { "description": "Resource Type definition for AWS::Connect::SecurityProfile", "properties": { + "allowedAccessControlHierarchyGroupId": { + "type": "string", + "description": "The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect." + }, "allowedAccessControlTags": { "type": "array", "items": { @@ -149760,15 +151546,37 @@ }, "description": "The list of tags that a security profile uses to restrict access to resources in Amazon Connect." }, + "applications": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:connect:SecurityProfileApplication" + }, + "description": "A list of third-party applications that the security profile will give access to." + }, "description": { "type": "string", "description": "The description of the security profile." }, + "hierarchyRestrictedResources": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect." + }, "instanceArn": { "type": "string", "description": "The identifier of the Amazon Connect instance.", "replaceOnChanges": true }, + "lastModifiedRegion": { + "type": "string", + "description": "The AWS Region where this resource was last modified." + }, + "lastModifiedTime": { + "type": "number", + "description": "The timestamp when this resource was last modified." + }, "permissions": { "type": "array", "items": { @@ -149803,10 +151611,16 @@ "type": "object", "required": [ "instanceArn", + "lastModifiedRegion", + "lastModifiedTime", "securityProfileArn", "securityProfileName" ], "inputProperties": { + "allowedAccessControlHierarchyGroupId": { + "type": "string", + "description": "The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect." + }, "allowedAccessControlTags": { "type": "array", "items": { @@ -149814,10 +151628,24 @@ }, "description": "The list of tags that a security profile uses to restrict access to resources in Amazon Connect." }, + "applications": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:connect:SecurityProfileApplication" + }, + "description": "A list of third-party applications that the security profile will give access to." + }, "description": { "type": "string", "description": "The description of the security profile." }, + "hierarchyRestrictedResources": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect." + }, "instanceArn": { "type": "string", "description": "The identifier of the Amazon Connect instance." @@ -155112,6 +156940,9 @@ "type": "string", "replaceOnChanges": true }, + "backupRetentionPeriod": { + "type": "integer" + }, "clusterArn": { "type": "string" }, @@ -155126,6 +156957,9 @@ "type": "string", "replaceOnChanges": true }, + "preferredBackupWindow": { + "type": "string" + }, "preferredMaintenanceWindow": { "type": "string" }, @@ -155135,6 +156969,9 @@ "shardCount": { "type": "integer" }, + "shardInstanceCount": { + "type": "integer" + }, "subnetIds": { "type": "array", "items": { @@ -155174,12 +157011,18 @@ "authType": { "type": "string" }, + "backupRetentionPeriod": { + "type": "integer" + }, "clusterName": { "type": "string" }, "kmsKeyId": { "type": "string" }, + "preferredBackupWindow": { + "type": "string" + }, "preferredMaintenanceWindow": { "type": "string" }, @@ -155189,6 +157032,9 @@ "shardCount": { "type": "integer" }, + "shardInstanceCount": { + "type": "integer" + }, "subnetIds": { "type": "array", "items": { @@ -155414,6 +157260,9 @@ "$ref": "#/types/aws-native:dynamodb:TableProvisionedThroughput", "description": "Throughput for the specified table, which consists of values for ``ReadCapacityUnits`` and ``WriteCapacityUnits``. For more information about the contents of a provisioned throughput structure, see [Amazon DynamoDB Table ProvisionedThroughput](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ProvisionedThroughput.html). \n If you set ``BillingMode`` as ``PROVISIONED``, you must specify this property. If you set ``BillingMode`` as ``PAY_PER_REQUEST``, you cannot specify this property." }, + "resourcePolicy": { + "$ref": "#/types/aws-native:dynamodb:TableResourcePolicy" + }, "sseSpecification": { "$ref": "#/types/aws-native:dynamodb:TableSseSpecification", "description": "Specifies the settings to enable server-side encryption." @@ -155516,6 +157365,9 @@ "$ref": "#/types/aws-native:dynamodb:TableProvisionedThroughput", "description": "Throughput for the specified table, which consists of values for ``ReadCapacityUnits`` and ``WriteCapacityUnits``. For more information about the contents of a provisioned throughput structure, see [Amazon DynamoDB Table ProvisionedThroughput](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ProvisionedThroughput.html). \n If you set ``BillingMode`` as ``PROVISIONED``, you must specify this property. If you set ``BillingMode`` as ``PAY_PER_REQUEST``, you cannot specify this property." }, + "resourcePolicy": { + "$ref": "#/types/aws-native:dynamodb:TableResourcePolicy" + }, "sseSpecification": { "$ref": "#/types/aws-native:dynamodb:TableSseSpecification", "description": "Specifies the settings to enable server-side encryption." @@ -157088,11 +158940,10 @@ ] }, "aws-native:ec2:InternetGateway": { - "description": "Resource Type definition for AWS::EC2::InternetGateway\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 myInternetGateway = new AwsNative.Ec2.InternetGateway(\"myInternetGateway\", new()\n {\n Tags = new[]\n {\n new AwsNative.Inputs.TagArgs\n {\n Key = \"stack\",\n Value = \"production\",\n },\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\tawsnative \"github.com/pulumi/pulumi-aws-native/sdk/go/aws\"\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ec2.NewInternetGateway(ctx, \"myInternetGateway\", \u0026ec2.InternetGatewayArgs{\n\t\t\tTags: aws.TagArray{\n\t\t\t\t\u0026aws.TagArgs{\n\t\t\t\t\tKey: pulumi.String(\"stack\"),\n\t\t\t\t\tValue: pulumi.String(\"production\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst myInternetGateway = new aws_native.ec2.InternetGateway(\"myInternetGateway\", {tags: [{\n key: \"stack\",\n value: \"production\",\n}]});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nmy_internet_gateway = aws_native.ec2.InternetGateway(\"myInternetGateway\", tags=[aws_native.TagArgs(\n key=\"stack\",\n value=\"production\",\n)])\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n", + "description": "Allocates an internet gateway for use with a VPC. After creating the Internet gateway, you then attach it to a VPC.\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 myInternetGateway = new AwsNative.Ec2.InternetGateway(\"myInternetGateway\", new()\n {\n Tags = new[]\n {\n new AwsNative.Inputs.TagArgs\n {\n Key = \"stack\",\n Value = \"production\",\n },\n },\n });\n\n});\n\n\n```\n\n```go\npackage main\n\nimport (\n\tawsnative \"github.com/pulumi/pulumi-aws-native/sdk/go/aws\"\n\t\"github.com/pulumi/pulumi-aws-native/sdk/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ec2.NewInternetGateway(ctx, \"myInternetGateway\", \u0026ec2.InternetGatewayArgs{\n\t\t\tTags: aws.TagArray{\n\t\t\t\t\u0026aws.TagArgs{\n\t\t\t\t\tKey: pulumi.String(\"stack\"),\n\t\t\t\t\tValue: pulumi.String(\"production\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws_native from \"@pulumi/aws-native\";\n\nconst myInternetGateway = new aws_native.ec2.InternetGateway(\"myInternetGateway\", {tags: [{\n key: \"stack\",\n value: \"production\",\n}]});\n\n```\n\n```python\nimport pulumi\nimport pulumi_aws_native as aws_native\n\nmy_internet_gateway = aws_native.ec2.InternetGateway(\"myInternetGateway\", tags=[aws_native.TagArgs(\n key=\"stack\",\n value=\"production\",\n)])\n\n```\n\n{{% /example %}}\n{{% /examples %}}\n", "properties": { "internetGatewayId": { - "type": "string", - "description": "ID of internet gateway." + "type": "string" }, "tags": { "type": "array", @@ -159713,6 +161564,10 @@ "type": "boolean", "description": "Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. For more information, see [DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) in the *User Guide*." }, + "enableLniAtDeviceIndex": { + "type": "integer", + "description": "Indicates the device position for local network interfaces in this subnet. For example, ``1`` indicates local network interfaces in this subnet are the secondary network interface (eth1)." + }, "ipv4IpamPoolId": { "type": "string", "description": "An IPv4 IPAM pool ID for the subnet.", @@ -159751,7 +161606,7 @@ }, "mapPublicIpOnLaunch": { "type": "boolean", - "description": "Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``.\n AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/)." + "description": "Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``.\n AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/)." }, "networkAclAssociationId": { "type": "string" @@ -159763,7 +161618,7 @@ }, "privateDnsNameOptionsOnLaunch": { "$ref": "#/types/aws-native:ec2:PrivateDnsNameOptionsOnLaunchProperties", - "description": "The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*.\n Available options:\n + EnableResourceNameDnsAAAARecord (true | false)\n + EnableResourceNameDnsARecord (true | false)\n + HostnameType (ip-name | resource-name)" + "description": "The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*.\n Available options:\n + EnableResourceNameDnsAAAARecord (true | false)\n + EnableResourceNameDnsARecord (true | false)\n + HostnameType (ip-name | resource-name)" }, "subnetId": { "type": "string" @@ -159808,6 +161663,10 @@ "type": "boolean", "description": "Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. For more information, see [DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) in the *User Guide*." }, + "enableLniAtDeviceIndex": { + "type": "integer", + "description": "Indicates the device position for local network interfaces in this subnet. For example, ``1`` indicates local network interfaces in this subnet are the secondary network interface (eth1)." + }, "ipv4IpamPoolId": { "type": "string", "description": "An IPv4 IPAM pool ID for the subnet." @@ -159841,7 +161700,7 @@ }, "mapPublicIpOnLaunch": { "type": "boolean", - "description": "Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``.\n AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/)." + "description": "Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``.\n AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/)." }, "outpostArn": { "type": "string", @@ -159849,7 +161708,7 @@ }, "privateDnsNameOptionsOnLaunch": { "$ref": "#/types/aws-native:ec2:PrivateDnsNameOptionsOnLaunchProperties", - "description": "The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*.\n Available options:\n + EnableResourceNameDnsAAAARecord (true | false)\n + EnableResourceNameDnsARecord (true | false)\n + HostnameType (ip-name | resource-name)" + "description": "The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*.\n Available options:\n + EnableResourceNameDnsAAAARecord (true | false)\n + EnableResourceNameDnsARecord (true | false)\n + HostnameType (ip-name | resource-name)" }, "tags": { "type": "array", @@ -160669,30 +162528,30 @@ "aws-native:ec2:TransitGatewayRouteTableAssociation": { "description": "Resource Type definition for AWS::EC2::TransitGatewayRouteTableAssociation", "properties": { - "awsId": { - "type": "string" - }, "transitGatewayAttachmentId": { "type": "string", + "description": "The ID of transit gateway attachment.", "replaceOnChanges": true }, "transitGatewayRouteTableId": { "type": "string", + "description": "The ID of transit gateway route table.", "replaceOnChanges": true } }, "type": "object", "required": [ - "awsId", "transitGatewayAttachmentId", "transitGatewayRouteTableId" ], "inputProperties": { "transitGatewayAttachmentId": { - "type": "string" + "type": "string", + "description": "The ID of transit gateway attachment." }, "transitGatewayRouteTableId": { - "type": "string" + "type": "string", + "description": "The ID of transit gateway route table." } }, "requiredInputs": [ @@ -166377,7 +168236,6 @@ "createdAt", "idMappingTechniques", "inputSourceConfig", - "outputSourceConfig", "roleArn", "updatedAt", "workflowArn", @@ -166420,7 +168278,6 @@ "requiredInputs": [ "idMappingTechniques", "inputSourceConfig", - "outputSourceConfig", "roleArn" ] }, @@ -169341,7 +171198,7 @@ }, "autoScalingPolicy": { "$ref": "#/types/aws-native:gamelift:GameServerGroupAutoScalingPolicy", - "description": "Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting" + "description": "Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource." }, "balancingStrategy": { "$ref": "#/types/aws-native:gamelift:GameServerGroupBalancingStrategy", @@ -169372,15 +171229,15 @@ }, "launchTemplate": { "$ref": "#/types/aws-native:gamelift:GameServerGroupLaunchTemplate", - "description": "The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group." + "description": "The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource." }, "maxSize": { "type": "number", - "description": "The maximum number of instances allowed in the EC2 Auto Scaling group." + "description": "The maximum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource." }, "minSize": { "type": "number", - "description": "The minimum number of instances allowed in the EC2 Auto Scaling group." + "description": "The minimum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource." }, "roleArn": { "type": "string", @@ -169391,14 +171248,14 @@ "items": { "$ref": "#/types/aws-native:index:Tag" }, - "description": "A list of labels to assign to the new game server group resource." + "description": "A list of labels to assign to the new game server group resource. Updating game server group tags with CloudFormation will not take effect. Please update this property using AWS GameLift APIs instead." }, "vpcSubnets": { "type": "array", "items": { "type": "string" }, - "description": "A list of virtual private cloud (VPC) subnets to use with instances in the game server group." + "description": "A list of virtual private cloud (VPC) subnets to use with instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource." } }, "type": "object", @@ -169412,7 +171269,7 @@ "inputProperties": { "autoScalingPolicy": { "$ref": "#/types/aws-native:gamelift:GameServerGroupAutoScalingPolicy", - "description": "Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting" + "description": "Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource." }, "balancingStrategy": { "$ref": "#/types/aws-native:gamelift:GameServerGroupBalancingStrategy", @@ -169439,15 +171296,15 @@ }, "launchTemplate": { "$ref": "#/types/aws-native:gamelift:GameServerGroupLaunchTemplate", - "description": "The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group." + "description": "The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource." }, "maxSize": { "type": "number", - "description": "The maximum number of instances allowed in the EC2 Auto Scaling group." + "description": "The maximum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource." }, "minSize": { "type": "number", - "description": "The minimum number of instances allowed in the EC2 Auto Scaling group." + "description": "The minimum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource." }, "roleArn": { "type": "string", @@ -169458,14 +171315,14 @@ "items": { "$ref": "#/types/aws-native:index:Tag" }, - "description": "A list of labels to assign to the new game server group resource." + "description": "A list of labels to assign to the new game server group resource. Updating game server group tags with CloudFormation will not take effect. Please update this property using AWS GameLift APIs instead." }, "vpcSubnets": { "type": "array", "items": { "type": "string" }, - "description": "A list of virtual private cloud (VPC) subnets to use with instances in the game server group." + "description": "A list of virtual private cloud (VPC) subnets to use with instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource." } }, "requiredInputs": [ @@ -171606,23 +173463,20 @@ ] }, "aws-native:iam:ManagedPolicy": { - "description": "Resource Type definition for AWS::IAM::ManagedPolicy", + "description": "Creates a new managed policy for your AWS-account.\n This operation creates a policy version with a version identifier of ``v1`` and sets v1 as the policy's default version. For more information about policy versions, see [Versioning for managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) in the *IAM User Guide*.\n As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) in the *IAM User Guide*.\n For more information about managed policies in general, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*.", "properties": { "attachmentCount": { - "type": "integer", - "description": "The number of entities (users, groups, and roles) that the policy is attached to." + "type": "integer" }, "createDate": { - "type": "string", - "description": "The date and time, in ISO 8601 date-time format, when the policy was created." + "type": "string" }, "defaultVersionId": { - "type": "string", - "description": "The identifier for the version of the policy that is set as the default version." + "type": "string" }, "description": { "type": "string", - "description": "A friendly description of the policy.", + "description": "A friendly description of the policy.\n Typically used to store information about the permissions defined in the policy. For example, \"Grants access to production DynamoDB tables.\"\n The policy description is immutable. After a value is assigned, it cannot be changed.", "replaceOnChanges": true }, "groups": { @@ -171630,55 +173484,50 @@ "items": { "type": "string" }, - "description": "The name (friendly name, not ARN) of the group to attach the policy to." + "description": "The name (friendly name, not ARN) of the group to attach the policy to.\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-" }, "isAttachable": { - "type": "boolean", - "description": "Specifies whether the policy can be attached to an IAM user, group, or role." + "type": "boolean" }, "managedPolicyName": { "type": "string", - "description": "The friendly name of the policy.", + "description": "The friendly name of the policy.\n If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.\n If you specify a name, you must specify the ``CAPABILITY_NAMED_IAM`` value to acknowledge your template's capabilities. For more information, see [Acknowledging Resources in Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities).\n Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using ``Fn::Join`` and ``AWS::Region`` to create a Region-specific name, as in the following example: ``{\"Fn::Join\": [\"\", [{\"Ref\": \"AWS::Region\"}, {\"Ref\": \"MyResourceName\"}]]}``.", "replaceOnChanges": true }, "path": { "type": "string", - "description": "The path for the policy.", + "description": "The path for the policy.\n For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*.\n This parameter is optional. If it is not included, it defaults to a slash (/).\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (``\\u0021``) through the DEL character (``\\u007F``), including most punctuation characters, digits, and upper and lowercased letters.\n You cannot use an asterisk (*) in the path name.", "replaceOnChanges": true }, "permissionsBoundaryUsageCount": { - "type": "integer", - "description": "The number of entities (users and roles) for which the policy is used to set the permissions boundary." + "type": "integer" }, "policyArn": { - "type": "string", - "description": "Amazon Resource Name (ARN) of the managed policy" + "type": "string" }, "policyDocument": { "$ref": "pulumi.json#/Any", - "description": "The JSON policy document that you want to use as the content for the new policy.\n\nSearch the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property." + "description": "The JSON policy document that you want to use as the content for the new policy.\n You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM.\n The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length).\n To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. \n The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following:\n + Any printable ASCII character ranging from the space character (``\\u0020``) through the end of the ASCII character range\n + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\\u00FF``)\n + The special characters tab (``\\u0009``), line feed (``\\u000A``), and carriage return (``\\u000D``)\n\nSearch the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property." }, "policyId": { - "type": "string", - "description": "The stable and unique string identifying the policy." + "type": "string" }, "roles": { "type": "array", "items": { "type": "string" }, - "description": "The name (friendly name, not ARN) of the role to attach the policy to." + "description": "The name (friendly name, not ARN) of the role to attach the policy to.\n This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-\n If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy." }, "updateDate": { - "type": "string", - "description": "The date and time, in ISO 8601 date-time format, when the policy was last updated." + "type": "string" }, "users": { "type": "array", "items": { "type": "string" }, - "description": "The name (friendly name, not ARN) of the IAM user to attach the policy to." + "description": "The name (friendly name, not ARN) of the IAM user to attach the policy to.\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-" } }, "type": "object", @@ -171696,40 +173545,40 @@ "inputProperties": { "description": { "type": "string", - "description": "A friendly description of the policy." + "description": "A friendly description of the policy.\n Typically used to store information about the permissions defined in the policy. For example, \"Grants access to production DynamoDB tables.\"\n The policy description is immutable. After a value is assigned, it cannot be changed." }, "groups": { "type": "array", "items": { "type": "string" }, - "description": "The name (friendly name, not ARN) of the group to attach the policy to." + "description": "The name (friendly name, not ARN) of the group to attach the policy to.\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-" }, "managedPolicyName": { "type": "string", - "description": "The friendly name of the policy." + "description": "The friendly name of the policy.\n If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.\n If you specify a name, you must specify the ``CAPABILITY_NAMED_IAM`` value to acknowledge your template's capabilities. For more information, see [Acknowledging Resources in Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities).\n Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using ``Fn::Join`` and ``AWS::Region`` to create a Region-specific name, as in the following example: ``{\"Fn::Join\": [\"\", [{\"Ref\": \"AWS::Region\"}, {\"Ref\": \"MyResourceName\"}]]}``." }, "path": { "type": "string", - "description": "The path for the policy." + "description": "The path for the policy.\n For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*.\n This parameter is optional. If it is not included, it defaults to a slash (/).\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (``\\u0021``) through the DEL character (``\\u007F``), including most punctuation characters, digits, and upper and lowercased letters.\n You cannot use an asterisk (*) in the path name." }, "policyDocument": { "$ref": "pulumi.json#/Any", - "description": "The JSON policy document that you want to use as the content for the new policy.\n\nSearch the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property." + "description": "The JSON policy document that you want to use as the content for the new policy.\n You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM.\n The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length).\n To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. \n The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following:\n + Any printable ASCII character ranging from the space character (``\\u0020``) through the end of the ASCII character range\n + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\\u00FF``)\n + The special characters tab (``\\u0009``), line feed (``\\u000A``), and carriage return (``\\u000D``)\n\nSearch the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property." }, "roles": { "type": "array", "items": { "type": "string" }, - "description": "The name (friendly name, not ARN) of the role to attach the policy to." + "description": "The name (friendly name, not ARN) of the role to attach the policy to.\n This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-\n If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy." }, "users": { "type": "array", "items": { "type": "string" }, - "description": "The name (friendly name, not ARN) of the IAM user to attach the policy to." + "description": "The name (friendly name, not ARN) of the IAM user to attach the policy to.\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-" } }, "requiredInputs": [ @@ -178747,6 +180596,151 @@ "serviceExecutionRoleArn" ] }, + "aws-native:kafkaconnect:CustomPlugin": { + "description": "An example resource schema demonstrating some basic constructs and validation rules.", + "properties": { + "contentType": { + "$ref": "#/types/aws-native:kafkaconnect:CustomPluginContentType", + "description": "The type of the plugin file.", + "replaceOnChanges": true + }, + "customPluginArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the custom plugin to use." + }, + "description": { + "type": "string", + "description": "A summary description of the custom plugin.", + "replaceOnChanges": true + }, + "fileDescription": { + "$ref": "#/types/aws-native:kafkaconnect:CustomPluginFileDescription" + }, + "location": { + "$ref": "#/types/aws-native:kafkaconnect:CustomPluginLocation", + "replaceOnChanges": true + }, + "name": { + "type": "string", + "description": "The name of the custom plugin.", + "replaceOnChanges": true + }, + "revision": { + "type": "integer", + "description": "The revision of the custom plugin." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to this resource." + } + }, + "type": "object", + "required": [ + "contentType", + "customPluginArn", + "fileDescription", + "location", + "name", + "revision" + ], + "inputProperties": { + "contentType": { + "$ref": "#/types/aws-native:kafkaconnect:CustomPluginContentType", + "description": "The type of the plugin file." + }, + "description": { + "type": "string", + "description": "A summary description of the custom plugin." + }, + "location": { + "$ref": "#/types/aws-native:kafkaconnect:CustomPluginLocation" + }, + "name": { + "type": "string", + "description": "The name of the custom plugin." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to this resource." + } + }, + "requiredInputs": [ + "contentType", + "location" + ] + }, + "aws-native:kafkaconnect:WorkerConfiguration": { + "description": "The configuration of the workers, which are the processes that run the connector logic.", + "properties": { + "description": { + "type": "string", + "description": "A summary description of the worker configuration.", + "replaceOnChanges": true + }, + "name": { + "type": "string", + "description": "The name of the worker configuration.", + "replaceOnChanges": true + }, + "propertiesFileContent": { + "type": "string", + "description": "Base64 encoded contents of connect-distributed.properties file.", + "replaceOnChanges": true + }, + "revision": { + "type": "integer", + "description": "The description of a revision of the worker configuration." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "A collection of tags associated with a resource" + }, + "workerConfigurationArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the custom configuration." + } + }, + "type": "object", + "required": [ + "name", + "propertiesFileContent", + "revision", + "workerConfigurationArn" + ], + "inputProperties": { + "description": { + "type": "string", + "description": "A summary description of the worker configuration." + }, + "name": { + "type": "string", + "description": "The name of the worker configuration." + }, + "propertiesFileContent": { + "type": "string", + "description": "Base64 encoded contents of connect-distributed.properties file." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "A collection of tags associated with a resource" + } + }, + "requiredInputs": [ + "propertiesFileContent" + ] + }, "aws-native:kendra:DataSource": { "description": "Kendra DataSource", "properties": { @@ -183470,39 +185464,38 @@ } }, "aws-native:logs:LogGroup": { - "description": "Resource schema for AWS::Logs::LogGroup", + "description": "The ``AWS::Logs::LogGroup`` resource specifies a log group. A log group defines common properties for log streams, such as their retention and access control rules. Each log stream must belong to one log group.\n You can create up to 1,000,000 log groups per Region per account. You must use the following guidelines when naming a log group:\n + Log group names must be unique within a Region for an AWS account.\n + Log group names can be between 1 and 512 characters long.\n + Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period).", "properties": { "arn": { - "type": "string", - "description": "The CloudWatch log group ARN." + "type": "string" }, "dataProtectionPolicy": { "$ref": "pulumi.json#/Any", - "description": "The body of the policy document you want to use for this topic.\n\nYou can only add one policy per topic.\n\nThe policy must be in JSON string format.\n\nLength Constraints: Maximum length of 30720\n\nSearch the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property." + "description": "Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks.\n For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html).\n\nSearch the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property." }, "kmsKeyId": { "type": "string", - "description": "The Amazon Resource Name (ARN) of the CMK to use when encrypting log data." + "description": "The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data.\n To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested.\n If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error.\n Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html)" }, "logGroupClass": { "$ref": "#/types/aws-native:logs:LogGroupClass", - "description": "The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class" + "description": "Specifies the log group class for this log group. There are two classes:\n + The ``Standard`` log class supports all CWL features.\n + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs.\n \n For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html)" }, "logGroupName": { "type": "string", - "description": "The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group.", + "description": "The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group.", "replaceOnChanges": true }, "retentionInDays": { "type": "integer", - "description": "The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653." + "description": "The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653.\n To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html)." }, "tags": { "type": "array", "items": { "$ref": "#/types/aws-native:index:Tag" }, - "description": "An array of key-value pairs to apply to this resource." + "description": "An array of key-value pairs to apply to the log group.\n For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)." } }, "type": "object", @@ -183512,30 +185505,30 @@ "inputProperties": { "dataProtectionPolicy": { "$ref": "pulumi.json#/Any", - "description": "The body of the policy document you want to use for this topic.\n\nYou can only add one policy per topic.\n\nThe policy must be in JSON string format.\n\nLength Constraints: Maximum length of 30720\n\nSearch the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property." + "description": "Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks.\n For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html).\n\nSearch the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property." }, "kmsKeyId": { "type": "string", - "description": "The Amazon Resource Name (ARN) of the CMK to use when encrypting log data." + "description": "The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data.\n To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested.\n If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error.\n Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html)" }, "logGroupClass": { "$ref": "#/types/aws-native:logs:LogGroupClass", - "description": "The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class" + "description": "Specifies the log group class for this log group. There are two classes:\n + The ``Standard`` log class supports all CWL features.\n + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs.\n \n For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html)" }, "logGroupName": { "type": "string", - "description": "The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group." + "description": "The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group." }, "retentionInDays": { "type": "integer", - "description": "The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653." + "description": "The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653.\n To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html)." }, "tags": { "type": "array", "items": { "$ref": "#/types/aws-native:index:Tag" }, - "description": "An array of key-value pairs to apply to this resource." + "description": "An array of key-value pairs to apply to the log group.\n For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)." } } }, @@ -183572,20 +185565,20 @@ ] }, "aws-native:logs:MetricFilter": { - "description": "Specifies a metric filter that describes how CloudWatch Logs extracts information from logs and transforms it into Amazon CloudWatch metrics.", + "description": "The ``AWS::Logs::MetricFilter`` resource specifies a metric filter that describes how CWL extracts information from logs and transforms it into Amazon CloudWatch metrics. If you have multiple metric filters that are associated with a log group, all the filters are applied to the log streams in that group.\n The maximum number of metric filters that can be associated with a log group is 100.", "properties": { "filterName": { "type": "string", - "description": "A name for the metric filter.", + "description": "The name of the metric filter.", "replaceOnChanges": true }, "filterPattern": { "type": "string", - "description": "Pattern that Logs follows to interpret each entry in a log." + "description": "A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)." }, "logGroupName": { "type": "string", - "description": "Existing log group that you want to associate with this filter.", + "description": "The name of an existing log group that you want to associate with this metric filter.", "replaceOnChanges": true }, "metricTransformations": { @@ -183593,7 +185586,7 @@ "items": { "$ref": "#/types/aws-native:logs:MetricFilterMetricTransformation" }, - "description": "A collection of information that defines how metric data gets emitted." + "description": "The metric transformations." } }, "type": "object", @@ -183605,22 +185598,22 @@ "inputProperties": { "filterName": { "type": "string", - "description": "A name for the metric filter." + "description": "The name of the metric filter." }, "filterPattern": { "type": "string", - "description": "Pattern that Logs follows to interpret each entry in a log." + "description": "A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)." }, "logGroupName": { "type": "string", - "description": "Existing log group that you want to associate with this filter." + "description": "The name of an existing log group that you want to associate with this metric filter." }, "metricTransformations": { "type": "array", "items": { "$ref": "#/types/aws-native:logs:MetricFilterMetricTransformation" }, - "description": "A collection of information that defines how metric data gets emitted." + "description": "The metric transformations." } }, "requiredInputs": [ @@ -183712,7 +185705,7 @@ ] }, "aws-native:logs:SubscriptionFilter": { - "description": "Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination.", + "description": "The ``AWS::Logs::SubscriptionFilter`` resource specifies a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. Currently, the supported destinations are:\n + An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery.\n + A logical destination that belongs to a different account, for cross-account delivery.\n + An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery.\n + An LAMlong function that belongs to the same account as the subscription filter, for same-account delivery.\n \n There can be as many as two subscription filters associated with a log group.", "properties": { "destinationArn": { "type": "string", @@ -183720,25 +185713,25 @@ }, "distribution": { "$ref": "#/types/aws-native:logs:SubscriptionFilterDistribution", - "description": "The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream." + "description": "The method used to distribute log data to the destination, which can be either random or grouped by log stream." }, "filterName": { "type": "string", - "description": "The name of the filter generated by resource.", + "description": "The name of the subscription filter.", "replaceOnChanges": true }, "filterPattern": { "type": "string", - "description": "The filtering expressions that restrict what gets delivered to the destination AWS resource." + "description": "The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)." }, "logGroupName": { "type": "string", - "description": "Existing log group that you want to associate with this filter.", + "description": "The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events.", "replaceOnChanges": true }, "roleArn": { "type": "string", - "description": "The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery." + "description": "The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery." } }, "type": "object", @@ -183754,23 +185747,23 @@ }, "distribution": { "$ref": "#/types/aws-native:logs:SubscriptionFilterDistribution", - "description": "The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream." + "description": "The method used to distribute log data to the destination, which can be either random or grouped by log stream." }, "filterName": { "type": "string", - "description": "The name of the filter generated by resource." + "description": "The name of the subscription filter." }, "filterPattern": { "type": "string", - "description": "The filtering expressions that restrict what gets delivered to the destination AWS resource." + "description": "The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)." }, "logGroupName": { "type": "string", - "description": "Existing log group that you want to associate with this filter." + "description": "The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events." }, "roleArn": { "type": "string", - "description": "The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery." + "description": "The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery." } }, "requiredInputs": [ @@ -196454,14 +198447,21 @@ "createTime": { "type": "string" }, + "dataFilter": { + "type": "string", + "description": "The data filter for the integration." + }, + "description": { + "type": "string", + "description": "The description of the integration." + }, "integrationArn": { "type": "string", "description": "The ARN of the integration." }, "integrationName": { "type": "string", - "description": "The name of the integration.", - "replaceOnChanges": true + "description": "The name of the integration." }, "kmsKeyId": { "type": "string", @@ -196500,6 +198500,14 @@ "type": "string" } }, + "dataFilter": { + "type": "string", + "description": "The data filter for the integration." + }, + "description": { + "type": "string", + "description": "The description of the integration." + }, "integrationName": { "type": "string", "description": "The name of the integration." @@ -198616,10 +200624,7 @@ "description": "Data Location Constraint of the Policy." }, "policy": { - "type": "object", - "additionalProperties": { - "$ref": "#/types/aws-native:resiliencehub:ResiliencyPolicyFailurePolicy" - } + "$ref": "#/types/aws-native:resiliencehub:ResiliencyPolicyPolicyMap" }, "policyArn": { "type": "string", @@ -198657,10 +200662,7 @@ "description": "Data Location Constraint of the Policy." }, "policy": { - "type": "object", - "additionalProperties": { - "$ref": "#/types/aws-native:resiliencehub:ResiliencyPolicyFailurePolicy" - } + "$ref": "#/types/aws-native:resiliencehub:ResiliencyPolicyPolicyMap" }, "policyDescription": { "type": "string", @@ -204699,6 +206701,251 @@ "standardsArn" ] }, + "aws-native:securitylake:AwsLogSource": { + "description": "Resource Type definition for AWS::SecurityLake::AwsLogSource", + "properties": { + "accounts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "AWS account where you want to collect logs from." + }, + "dataLakeArn": { + "type": "string", + "description": "The ARN for the data lake.", + "replaceOnChanges": true + }, + "sourceName": { + "type": "string", + "description": "The name for a AWS source. This must be a Regionally unique value.", + "replaceOnChanges": true + }, + "sourceVersion": { + "type": "string", + "description": "The version for a AWS source. This must be a Regionally unique value.", + "replaceOnChanges": true + } + }, + "type": "object", + "required": [ + "dataLakeArn", + "sourceName", + "sourceVersion" + ], + "inputProperties": { + "accounts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "AWS account where you want to collect logs from." + }, + "dataLakeArn": { + "type": "string", + "description": "The ARN for the data lake." + }, + "sourceName": { + "type": "string", + "description": "The name for a AWS source. This must be a Regionally unique value." + }, + "sourceVersion": { + "type": "string", + "description": "The version for a AWS source. This must be a Regionally unique value." + } + }, + "requiredInputs": [ + "dataLakeArn", + "sourceVersion" + ] + }, + "aws-native:securitylake:DataLake": { + "description": "Resource Type definition for AWS::SecurityLake::DataLake", + "properties": { + "arn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) created by you to provide to the subscriber." + }, + "encryptionConfiguration": { + "$ref": "#/types/aws-native:securitylake:DataLakeEncryptionConfiguration" + }, + "lifecycleConfiguration": { + "$ref": "#/types/aws-native:securitylake:DataLakeLifecycleConfiguration" + }, + "metaStoreManagerRoleArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) used to index AWS Glue table partitions that are generated by the ingestion and normalization of AWS log sources and custom sources.", + "replaceOnChanges": true + }, + "replicationConfiguration": { + "$ref": "#/types/aws-native:securitylake:DataLakeReplicationConfiguration" + }, + "s3BucketArn": { + "type": "string", + "description": "The ARN for the Amazon Security Lake Amazon S3 bucket." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + } + }, + "type": "object", + "required": [ + "arn", + "s3BucketArn" + ], + "inputProperties": { + "encryptionConfiguration": { + "$ref": "#/types/aws-native:securitylake:DataLakeEncryptionConfiguration" + }, + "lifecycleConfiguration": { + "$ref": "#/types/aws-native:securitylake:DataLakeLifecycleConfiguration" + }, + "metaStoreManagerRoleArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) used to index AWS Glue table partitions that are generated by the ingestion and normalization of AWS log sources and custom sources." + }, + "replicationConfiguration": { + "$ref": "#/types/aws-native:securitylake:DataLakeReplicationConfiguration" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + } + } + }, + "aws-native:securitylake:Subscriber": { + "description": "Resource Type definition for AWS::SecurityLake::Subscriber", + "properties": { + "accessTypes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securitylake:SubscriberAccessTypesItem" + } + }, + "dataLakeArn": { + "type": "string", + "description": "The ARN for the data lake.", + "replaceOnChanges": true + }, + "resourceShareArn": { + "type": "string" + }, + "resourceShareName": { + "type": "string" + }, + "s3BucketArn": { + "type": "string" + }, + "sources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/types/aws-native:securitylake:SubscriberSource0Properties" + }, + { + "$ref": "#/types/aws-native:securitylake:SubscriberSource1Properties" + } + ] + }, + "description": "The supported AWS services from which logs and events are collected." + }, + "subscriberArn": { + "type": "string" + }, + "subscriberDescription": { + "type": "string", + "description": "The description for your subscriber account in Security Lake." + }, + "subscriberIdentity": { + "$ref": "#/types/aws-native:securitylake:SubscriberIdentityProperties", + "description": "The AWS identity used to access your data." + }, + "subscriberName": { + "type": "string", + "description": "The name of your Security Lake subscriber account." + }, + "subscriberRoleArn": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string." + } + }, + "type": "object", + "required": [ + "accessTypes", + "dataLakeArn", + "resourceShareArn", + "resourceShareName", + "s3BucketArn", + "sources", + "subscriberArn", + "subscriberIdentity", + "subscriberName", + "subscriberRoleArn" + ], + "inputProperties": { + "accessTypes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securitylake:SubscriberAccessTypesItem" + } + }, + "dataLakeArn": { + "type": "string", + "description": "The ARN for the data lake." + }, + "sources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/types/aws-native:securitylake:SubscriberSource0Properties" + }, + { + "$ref": "#/types/aws-native:securitylake:SubscriberSource1Properties" + } + ] + }, + "description": "The supported AWS services from which logs and events are collected." + }, + "subscriberDescription": { + "type": "string", + "description": "The description for your subscriber account in Security Lake." + }, + "subscriberIdentity": { + "$ref": "#/types/aws-native:securitylake:SubscriberIdentityProperties", + "description": "The AWS identity used to access your data." + }, + "subscriberName": { + "type": "string", + "description": "The name of your Security Lake subscriber account." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string." + } + }, + "requiredInputs": [ + "accessTypes", + "dataLakeArn", + "sources", + "subscriberIdentity" + ] + }, "aws-native:servicecatalog:CloudFormationProvisionedProduct": { "description": "Resource Schema for AWS::ServiceCatalog::CloudFormationProvisionedProduct", "properties": { @@ -213647,6 +215894,55 @@ } } }, + "aws-native:appintegrations:getApplication": { + "description": "Resource Type definition for AWS:AppIntegrations::Application", + "inputs": { + "properties": { + "applicationArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the application." + } + }, + "required": [ + "applicationArn" + ] + }, + "outputs": { + "properties": { + "applicationArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the application." + }, + "applicationSourceConfig": { + "$ref": "#/types/aws-native:appintegrations:ApplicationSourceConfigProperties", + "description": "Application source config" + }, + "description": { + "type": "string", + "description": "The application description." + }, + "id": { + "type": "string", + "description": "The id of the application." + }, + "name": { + "type": "string", + "description": "The name of the application." + }, + "namespace": { + "type": "string", + "description": "The namespace of the application." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "The tags (keys and values) associated with the application." + } + } + } + }, "aws-native:appintegrations:getDataIntegration": { "description": "Resource Type definition for AWS::AppIntegrations::DataIntegration", "inputs": { @@ -214436,7 +216732,8 @@ "description": "The maximum number of resolver request inputs that will be sent to a single LAMlong function in a ``BatchInvoke`` operation." }, "metricsConfig": { - "$ref": "#/types/aws-native:appsync:ResolverMetricsConfig" + "$ref": "#/types/aws-native:appsync:ResolverMetricsConfig", + "description": "Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value." }, "pipelineConfig": { "$ref": "#/types/aws-native:appsync:ResolverPipelineConfig", @@ -214559,6 +216856,43 @@ } } }, + "aws-native:aps:getScraper": { + "description": "Resource Type definition for AWS::APS::Scraper", + "inputs": { + "properties": { + "arn": { + "type": "string", + "description": "Scraper ARN." + } + }, + "required": [ + "arn" + ] + }, + "outputs": { + "properties": { + "arn": { + "type": "string", + "description": "Scraper ARN." + }, + "roleArn": { + "type": "string", + "description": "IAM role ARN for the scraper." + }, + "scraperId": { + "type": "string", + "description": "Required to identify a specific scraper." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to this resource." + } + } + } + }, "aws-native:aps:getWorkspace": { "description": "Resource Type definition for AWS::APS::Workspace", "inputs": { @@ -215870,6 +218204,186 @@ } } }, + "aws-native:bedrock:getAgent": { + "description": "Definition of AWS::Bedrock::Agent Resource Type", + "inputs": { + "properties": { + "agentId": { + "type": "string", + "description": "Identifier for a resource." + } + }, + "required": [ + "agentId" + ] + }, + "outputs": { + "properties": { + "actionGroups": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:bedrock:AgentActionGroup" + }, + "description": "List of ActionGroups" + }, + "agentArn": { + "type": "string", + "description": "Arn representation of the Agent." + }, + "agentId": { + "type": "string", + "description": "Identifier for a resource." + }, + "agentName": { + "type": "string", + "description": "Name for a resource." + }, + "agentResourceRoleArn": { + "type": "string", + "description": "ARN of a IAM role." + }, + "agentStatus": { + "$ref": "#/types/aws-native:bedrock:AgentStatus" + }, + "agentVersion": { + "type": "string", + "description": "Draft Agent Version." + }, + "createdAt": { + "type": "string", + "description": "Time Stamp." + }, + "customerEncryptionKeyArn": { + "type": "string", + "description": "A KMS key ARN" + }, + "description": { + "type": "string", + "description": "Description of the Resource." + }, + "failureReasons": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Failure Reasons for Error." + }, + "foundationModel": { + "type": "string", + "description": "ARN or name of a Bedrock model." + }, + "idleSessionTtlInSeconds": { + "type": "number", + "description": "Max Session Time." + }, + "instruction": { + "type": "string", + "description": "Instruction for the agent." + }, + "knowledgeBases": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:bedrock:AgentKnowledgeBase" + }, + "description": "List of Agent Knowledge Bases" + }, + "preparedAt": { + "type": "string", + "description": "Time Stamp." + }, + "promptOverrideConfiguration": { + "$ref": "#/types/aws-native:bedrock:AgentPromptOverrideConfiguration" + }, + "recommendedActions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The recommended actions users can take to resolve an error in failureReasons." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "updatedAt": { + "type": "string", + "description": "Time Stamp." + } + } + } + }, + "aws-native:bedrock:getAgentAlias": { + "description": "Definition of AWS::Bedrock::AgentAlias Resource Type", + "inputs": { + "properties": { + "agentAliasId": { + "type": "string", + "description": "Id for an Agent Alias generated at the server side." + }, + "agentId": { + "type": "string", + "description": "Identifier for a resource." + } + }, + "required": [ + "agentId", + "agentAliasId" + ] + }, + "outputs": { + "properties": { + "agentAliasArn": { + "type": "string", + "description": "Arn representation of the Agent Alias." + }, + "agentAliasHistoryEvents": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:bedrock:AgentAliasHistoryEvent" + }, + "description": "The list of history events for an alias for an Agent." + }, + "agentAliasId": { + "type": "string", + "description": "Id for an Agent Alias generated at the server side." + }, + "agentAliasName": { + "type": "string", + "description": "Name for a resource." + }, + "agentAliasStatus": { + "$ref": "#/types/aws-native:bedrock:AgentAliasStatus" + }, + "createdAt": { + "type": "string", + "description": "Time Stamp." + }, + "description": { + "type": "string", + "description": "Description of the Resource." + }, + "routingConfiguration": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:bedrock:AgentAliasRoutingConfigurationListItem" + }, + "description": "Routing configuration for an Agent alias." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "updatedAt": { + "type": "string", + "description": "Time Stamp." + } + } + } + }, "aws-native:budgets:getBudgetsAction": { "description": "An example resource schema demonstrating some basic constructs and validation rules.", "inputs": { @@ -217866,6 +220380,51 @@ } } }, + "aws-native:codeartifact:getPackageGroup": { + "description": "The resource schema to create a CodeArtifact package group.", + "inputs": { + "properties": { + "arn": { + "type": "string", + "description": "The ARN of the package group." + } + }, + "required": [ + "arn" + ] + }, + "outputs": { + "properties": { + "arn": { + "type": "string", + "description": "The ARN of the package group." + }, + "contactInfo": { + "type": "string", + "description": "The contact info of the package group." + }, + "description": { + "type": "string", + "description": "The text description of the package group." + }, + "domainOwner": { + "type": "string", + "description": "The 12-digit account ID of the AWS account that owns the domain." + }, + "originConfiguration": { + "$ref": "#/types/aws-native:codeartifact:PackageGroupOriginConfiguration", + "description": "The package origin configuration of the package group." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to the package group." + } + } + } + }, "aws-native:codeartifact:getRepository": { "description": "The resource schema to create a CodeArtifact repository.", "inputs": { @@ -217959,6 +220518,43 @@ } } }, + "aws-native:codeconnections:getConnection": { + "description": "Schema for AWS::CodeConnections::Connection resource which can be used to connect external source providers with other AWS services (i.e. AWS CodePipeline)", + "inputs": { + "properties": { + "connectionArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services." + } + }, + "required": [ + "connectionArn" + ] + }, + "outputs": { + "properties": { + "connectionArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services." + }, + "connectionStatus": { + "type": "string", + "description": "The current status of the connection." + }, + "ownerAccountId": { + "type": "string", + "description": "The name of the external provider where your third-party code repository is configured. For Bitbucket, this is the account ID of the owner of the Bitbucket repository." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "Specifies the tags applied to a connection." + } + } + } + }, "aws-native:codedeploy:getApplication": { "description": "The AWS::CodeDeploy::Application resource creates an AWS CodeDeploy application", "inputs": { @@ -218145,7 +220741,7 @@ "description": "The ARN of the KMS key that the customer can optionally specify to use to encrypt RepositoryLink properties. If not specified, a default key will be used." }, "providerType": { - "type": "string", + "$ref": "#/types/aws-native:codestarconnections:RepositoryLinkProviderType", "description": "The name of the external provider where your third-party code repository is configured." }, "repositoryLinkArn": { @@ -218199,9 +220795,13 @@ "description": "the ID of the entity that owns the repository." }, "providerType": { - "type": "string", + "$ref": "#/types/aws-native:codestarconnections:SyncConfigurationProviderType", "description": "The name of the external provider where your third-party code repository is configured." }, + "publishDeploymentStatus": { + "$ref": "#/types/aws-native:codestarconnections:SyncConfigurationPublishDeploymentStatus", + "description": "Whether to enable or disable publishing of deployment status to source providers." + }, "repositoryLinkId": { "type": "string", "description": "A UUID that uniquely identifies the RepositoryLink that the SyncConfig is associated with." @@ -218213,6 +220813,10 @@ "roleArn": { "type": "string", "description": "The IAM Role that allows AWS to update CloudFormation stacks based on content in the specified repository." + }, + "triggerResourceUpdateOn": { + "$ref": "#/types/aws-native:codestarconnections:SyncConfigurationTriggerResourceUpdateOn", + "description": "When to trigger Git sync to begin the stack update." } } } @@ -219501,6 +222105,14 @@ }, "outputs": { "properties": { + "lastModifiedRegion": { + "type": "string", + "description": "Last modified region." + }, + "lastModifiedTime": { + "type": "number", + "description": "Last modified time." + }, "values": { "$ref": "#/types/aws-native:connect:ValuesProperties", "description": "The values of a predefined attribute." @@ -219813,6 +222425,10 @@ }, "outputs": { "properties": { + "allowedAccessControlHierarchyGroupId": { + "type": "string", + "description": "The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect." + }, "allowedAccessControlTags": { "type": "array", "items": { @@ -219820,10 +222436,32 @@ }, "description": "The list of tags that a security profile uses to restrict access to resources in Amazon Connect." }, + "applications": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:connect:SecurityProfileApplication" + }, + "description": "A list of third-party applications that the security profile will give access to." + }, "description": { "type": "string", "description": "The description of the security profile." }, + "hierarchyRestrictedResources": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect." + }, + "lastModifiedRegion": { + "type": "string", + "description": "The AWS Region where this resource was last modified." + }, + "lastModifiedTime": { + "type": "number", + "description": "The timestamp when this resource was last modified." + }, "permissions": { "type": "array", "items": { @@ -222762,12 +225400,18 @@ }, "outputs": { "properties": { + "backupRetentionPeriod": { + "type": "integer" + }, "clusterArn": { "type": "string" }, "clusterEndpoint": { "type": "string" }, + "preferredBackupWindow": { + "type": "string" + }, "preferredMaintenanceWindow": { "type": "string" }, @@ -222777,6 +225421,9 @@ "shardCount": { "type": "integer" }, + "shardInstanceCount": { + "type": "integer" + }, "subnetIds": { "type": "array", "items": { @@ -222934,6 +225581,9 @@ "$ref": "#/types/aws-native:dynamodb:TableProvisionedThroughput", "description": "Throughput for the specified table, which consists of values for ``ReadCapacityUnits`` and ``WriteCapacityUnits``. For more information about the contents of a provisioned throughput structure, see [Amazon DynamoDB Table ProvisionedThroughput](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ProvisionedThroughput.html). \n If you set ``BillingMode`` as ``PROVISIONED``, you must specify this property. If you set ``BillingMode`` as ``PAY_PER_REQUEST``, you cannot specify this property." }, + "resourcePolicy": { + "$ref": "#/types/aws-native:dynamodb:TableResourcePolicy" + }, "sseSpecification": { "$ref": "#/types/aws-native:dynamodb:TableSseSpecification", "description": "Specifies the settings to enable server-side encryption." @@ -223526,12 +226176,11 @@ } }, "aws-native:ec2:getInternetGateway": { - "description": "Resource Type definition for AWS::EC2::InternetGateway", + "description": "Allocates an internet gateway for use with a VPC. After creating the Internet gateway, you then attach it to a VPC.", "inputs": { "properties": { "internetGatewayId": { - "type": "string", - "description": "ID of internet gateway." + "type": "string" } }, "required": [ @@ -223541,8 +226190,7 @@ "outputs": { "properties": { "internetGatewayId": { - "type": "string", - "description": "ID of internet gateway." + "type": "string" }, "tags": { "type": "array", @@ -224934,14 +227582,14 @@ }, "mapPublicIpOnLaunch": { "type": "boolean", - "description": "Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``.\n AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/)." + "description": "Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``.\n AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/)." }, "networkAclAssociationId": { "type": "string" }, "privateDnsNameOptionsOnLaunch": { "$ref": "#/types/aws-native:ec2:PrivateDnsNameOptionsOnLaunchProperties", - "description": "The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*.\n Available options:\n + EnableResourceNameDnsAAAARecord (true | false)\n + EnableResourceNameDnsARecord (true | false)\n + HostnameType (ip-name | resource-name)" + "description": "The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*.\n Available options:\n + EnableResourceNameDnsAAAARecord (true | false)\n + EnableResourceNameDnsARecord (true | false)\n + HostnameType (ip-name | resource-name)" }, "subnetId": { "type": "string" @@ -225422,26 +228070,6 @@ } } }, - "aws-native:ec2:getTransitGatewayRouteTableAssociation": { - "description": "Resource Type definition for AWS::EC2::TransitGatewayRouteTableAssociation", - "inputs": { - "properties": { - "id": { - "type": "string" - } - }, - "required": [ - "id" - ] - }, - "outputs": { - "properties": { - "id": { - "type": "string" - } - } - } - }, "aws-native:ec2:getTransitGatewayVpcAttachment": { "description": "Resource Type definition for AWS::EC2::TransitGatewayVpcAttachment", "inputs": { @@ -230919,12 +233547,11 @@ } }, "aws-native:iam:getManagedPolicy": { - "description": "Resource Type definition for AWS::IAM::ManagedPolicy", + "description": "Creates a new managed policy for your AWS-account.\n This operation creates a policy version with a version identifier of ``v1`` and sets v1 as the policy's default version. For more information about policy versions, see [Versioning for managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) in the *IAM User Guide*.\n As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) in the *IAM User Guide*.\n For more information about managed policies in general, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*.", "inputs": { "properties": { "policyArn": { - "type": "string", - "description": "Amazon Resource Name (ARN) of the managed policy" + "type": "string" } }, "required": [ @@ -230934,61 +233561,53 @@ "outputs": { "properties": { "attachmentCount": { - "type": "integer", - "description": "The number of entities (users, groups, and roles) that the policy is attached to." + "type": "integer" }, "createDate": { - "type": "string", - "description": "The date and time, in ISO 8601 date-time format, when the policy was created." + "type": "string" }, "defaultVersionId": { - "type": "string", - "description": "The identifier for the version of the policy that is set as the default version." + "type": "string" }, "groups": { "type": "array", "items": { "type": "string" }, - "description": "The name (friendly name, not ARN) of the group to attach the policy to." + "description": "The name (friendly name, not ARN) of the group to attach the policy to.\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-" }, "isAttachable": { - "type": "boolean", - "description": "Specifies whether the policy can be attached to an IAM user, group, or role." + "type": "boolean" }, "permissionsBoundaryUsageCount": { - "type": "integer", - "description": "The number of entities (users and roles) for which the policy is used to set the permissions boundary." + "type": "integer" }, "policyArn": { - "type": "string", - "description": "Amazon Resource Name (ARN) of the managed policy" + "type": "string" }, "policyDocument": { "$ref": "pulumi.json#/Any", - "description": "The JSON policy document that you want to use as the content for the new policy.\n\nSearch the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property." + "description": "The JSON policy document that you want to use as the content for the new policy.\n You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM.\n The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length).\n To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. \n The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following:\n + Any printable ASCII character ranging from the space character (``\\u0020``) through the end of the ASCII character range\n + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\\u00FF``)\n + The special characters tab (``\\u0009``), line feed (``\\u000A``), and carriage return (``\\u000D``)\n\nSearch the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property." }, "policyId": { - "type": "string", - "description": "The stable and unique string identifying the policy." + "type": "string" }, "roles": { "type": "array", "items": { "type": "string" }, - "description": "The name (friendly name, not ARN) of the role to attach the policy to." + "description": "The name (friendly name, not ARN) of the role to attach the policy to.\n This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-\n If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy." }, "updateDate": { - "type": "string", - "description": "The date and time, in ISO 8601 date-time format, when the policy was last updated." + "type": "string" }, "users": { "type": "array", "items": { "type": "string" }, - "description": "The name (friendly name, not ARN) of the IAM user to attach the policy to." + "description": "The name (friendly name, not ARN) of the IAM user to attach the policy to.\n This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-" } } } @@ -235000,6 +237619,75 @@ } } }, + "aws-native:kafkaconnect:getCustomPlugin": { + "description": "An example resource schema demonstrating some basic constructs and validation rules.", + "inputs": { + "properties": { + "customPluginArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the custom plugin to use." + } + }, + "required": [ + "customPluginArn" + ] + }, + "outputs": { + "properties": { + "customPluginArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the custom plugin to use." + }, + "fileDescription": { + "$ref": "#/types/aws-native:kafkaconnect:CustomPluginFileDescription" + }, + "revision": { + "type": "integer", + "description": "The revision of the custom plugin." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to this resource." + } + } + } + }, + "aws-native:kafkaconnect:getWorkerConfiguration": { + "description": "The configuration of the workers, which are the processes that run the connector logic.", + "inputs": { + "properties": { + "workerConfigurationArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the custom configuration." + } + }, + "required": [ + "workerConfigurationArn" + ] + }, + "outputs": { + "properties": { + "revision": { + "type": "integer", + "description": "The description of a revision of the worker configuration." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "A collection of tags associated with a resource" + }, + "workerConfigurationArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the custom configuration." + } + } + } + }, "aws-native:kendra:getDataSource": { "description": "Kendra DataSource", "inputs": { @@ -237402,12 +240090,12 @@ } }, "aws-native:logs:getLogGroup": { - "description": "Resource schema for AWS::Logs::LogGroup", + "description": "The ``AWS::Logs::LogGroup`` resource specifies a log group. A log group defines common properties for log streams, such as their retention and access control rules. Each log stream must belong to one log group.\n You can create up to 1,000,000 log groups per Region per account. You must use the following guidelines when naming a log group:\n + Log group names must be unique within a Region for an AWS account.\n + Log group names can be between 1 and 512 characters long.\n + Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period).", "inputs": { "properties": { "logGroupName": { "type": "string", - "description": "The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group." + "description": "The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group." } }, "required": [ @@ -237417,46 +240105,45 @@ "outputs": { "properties": { "arn": { - "type": "string", - "description": "The CloudWatch log group ARN." + "type": "string" }, "dataProtectionPolicy": { "$ref": "pulumi.json#/Any", - "description": "The body of the policy document you want to use for this topic.\n\nYou can only add one policy per topic.\n\nThe policy must be in JSON string format.\n\nLength Constraints: Maximum length of 30720\n\nSearch the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property." + "description": "Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks.\n For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html).\n\nSearch the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property." }, "kmsKeyId": { "type": "string", - "description": "The Amazon Resource Name (ARN) of the CMK to use when encrypting log data." + "description": "The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data.\n To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested.\n If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error.\n Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html)" }, "logGroupClass": { "$ref": "#/types/aws-native:logs:LogGroupClass", - "description": "The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class" + "description": "Specifies the log group class for this log group. There are two classes:\n + The ``Standard`` log class supports all CWL features.\n + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs.\n \n For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html)" }, "retentionInDays": { "type": "integer", - "description": "The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653." + "description": "The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653.\n To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html)." }, "tags": { "type": "array", "items": { "$ref": "#/types/aws-native:index:Tag" }, - "description": "An array of key-value pairs to apply to this resource." + "description": "An array of key-value pairs to apply to the log group.\n For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)." } } } }, "aws-native:logs:getMetricFilter": { - "description": "Specifies a metric filter that describes how CloudWatch Logs extracts information from logs and transforms it into Amazon CloudWatch metrics.", + "description": "The ``AWS::Logs::MetricFilter`` resource specifies a metric filter that describes how CWL extracts information from logs and transforms it into Amazon CloudWatch metrics. If you have multiple metric filters that are associated with a log group, all the filters are applied to the log streams in that group.\n The maximum number of metric filters that can be associated with a log group is 100.", "inputs": { "properties": { "filterName": { "type": "string", - "description": "A name for the metric filter." + "description": "The name of the metric filter." }, "logGroupName": { "type": "string", - "description": "Existing log group that you want to associate with this filter." + "description": "The name of an existing log group that you want to associate with this metric filter." } }, "required": [ @@ -237468,14 +240155,14 @@ "properties": { "filterPattern": { "type": "string", - "description": "Pattern that Logs follows to interpret each entry in a log." + "description": "A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)." }, "metricTransformations": { "type": "array", "items": { "$ref": "#/types/aws-native:logs:MetricFilterMetricTransformation" }, - "description": "A collection of information that defines how metric data gets emitted." + "description": "The metric transformations." } } } @@ -237540,16 +240227,16 @@ } }, "aws-native:logs:getSubscriptionFilter": { - "description": "Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination.", + "description": "The ``AWS::Logs::SubscriptionFilter`` resource specifies a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. Currently, the supported destinations are:\n + An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery.\n + A logical destination that belongs to a different account, for cross-account delivery.\n + An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery.\n + An LAMlong function that belongs to the same account as the subscription filter, for same-account delivery.\n \n There can be as many as two subscription filters associated with a log group.", "inputs": { "properties": { "filterName": { "type": "string", - "description": "The name of the filter generated by resource." + "description": "The name of the subscription filter." }, "logGroupName": { "type": "string", - "description": "Existing log group that you want to associate with this filter." + "description": "The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events." } }, "required": [ @@ -237565,15 +240252,15 @@ }, "distribution": { "$ref": "#/types/aws-native:logs:SubscriptionFilterDistribution", - "description": "The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream." + "description": "The method used to distribute log data to the destination, which can be either random or grouped by log stream." }, "filterPattern": { "type": "string", - "description": "The filtering expressions that restrict what gets delivered to the destination AWS resource." + "description": "The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)." }, "roleArn": { "type": "string", - "description": "The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery." + "description": "The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery." } } } @@ -243849,10 +246536,22 @@ "createTime": { "type": "string" }, + "dataFilter": { + "type": "string", + "description": "The data filter for the integration." + }, + "description": { + "type": "string", + "description": "The description of the integration." + }, "integrationArn": { "type": "string", "description": "The ARN of the integration." }, + "integrationName": { + "type": "string", + "description": "The name of the integration." + }, "tags": { "type": "array", "items": { @@ -244841,10 +247540,7 @@ "description": "Data Location Constraint of the Policy." }, "policy": { - "type": "object", - "additionalProperties": { - "$ref": "#/types/aws-native:resiliencehub:ResiliencyPolicyFailurePolicy" - } + "$ref": "#/types/aws-native:resiliencehub:ResiliencyPolicyPolicyMap" }, "policyArn": { "type": "string", @@ -248057,6 +250753,148 @@ } } }, + "aws-native:securitylake:getAwsLogSource": { + "description": "Resource Type definition for AWS::SecurityLake::AwsLogSource", + "inputs": { + "properties": { + "sourceName": { + "type": "string", + "description": "The name for a AWS source. This must be a Regionally unique value." + }, + "sourceVersion": { + "type": "string", + "description": "The version for a AWS source. This must be a Regionally unique value." + } + }, + "required": [ + "sourceName", + "sourceVersion" + ] + }, + "outputs": { + "properties": { + "accounts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "AWS account where you want to collect logs from." + } + } + } + }, + "aws-native:securitylake:getDataLake": { + "description": "Resource Type definition for AWS::SecurityLake::DataLake", + "inputs": { + "properties": { + "arn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) created by you to provide to the subscriber." + } + }, + "required": [ + "arn" + ] + }, + "outputs": { + "properties": { + "arn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) created by you to provide to the subscriber." + }, + "encryptionConfiguration": { + "$ref": "#/types/aws-native:securitylake:DataLakeEncryptionConfiguration" + }, + "lifecycleConfiguration": { + "$ref": "#/types/aws-native:securitylake:DataLakeLifecycleConfiguration" + }, + "replicationConfiguration": { + "$ref": "#/types/aws-native:securitylake:DataLakeReplicationConfiguration" + }, + "s3BucketArn": { + "type": "string", + "description": "The ARN for the Amazon Security Lake Amazon S3 bucket." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + } + } + } + }, + "aws-native:securitylake:getSubscriber": { + "description": "Resource Type definition for AWS::SecurityLake::Subscriber", + "inputs": { + "properties": { + "subscriberArn": { + "type": "string" + } + }, + "required": [ + "subscriberArn" + ] + }, + "outputs": { + "properties": { + "accessTypes": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:securitylake:SubscriberAccessTypesItem" + } + }, + "resourceShareArn": { + "type": "string" + }, + "resourceShareName": { + "type": "string" + }, + "s3BucketArn": { + "type": "string" + }, + "sources": { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/types/aws-native:securitylake:SubscriberSource0Properties" + }, + { + "$ref": "#/types/aws-native:securitylake:SubscriberSource1Properties" + } + ] + }, + "description": "The supported AWS services from which logs and events are collected." + }, + "subscriberArn": { + "type": "string" + }, + "subscriberDescription": { + "type": "string", + "description": "The description for your subscriber account in Security Lake." + }, + "subscriberIdentity": { + "$ref": "#/types/aws-native:securitylake:SubscriberIdentityProperties", + "description": "The AWS identity used to access your data." + }, + "subscriberName": { + "type": "string", + "description": "The name of your Security Lake subscriber account." + }, + "subscriberRoleArn": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string." + } + } + } + }, "aws-native:servicecatalog:getCloudFormationProvisionedProduct": { "description": "Resource Schema for AWS::ServiceCatalog::CloudFormationProvisionedProduct", "inputs": { diff --git a/reports/missedAutonaming.json b/reports/missedAutonaming.json index 0eaf95142f..4b0b305907 100644 --- a/reports/missedAutonaming.json +++ b/reports/missedAutonaming.json @@ -864,7 +864,8 @@ "description": "The maximum number of resolver request inputs that will be sent to a single LAMlong function in a ``BatchInvoke`` operation." }, "metricsConfig": { - "$ref": "#/types/aws-native:appsync:ResolverMetricsConfig" + "$ref": "#/types/aws-native:appsync:ResolverMetricsConfig", + "description": "Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value." }, "pipelineConfig": { "$ref": "#/types/aws-native:appsync:ResolverPipelineConfig", @@ -921,6 +922,31 @@ } } }, + "aws-native:aps:Scraper": { + "cfTypeName": "AWS::APS::Scraper", + "properties": { + "alias": { + "type": "string", + "description": "Scraper alias." + }, + "destination": { + "$ref": "#/types/aws-native:aps:ScraperDestination" + }, + "scrapeConfiguration": { + "$ref": "#/types/aws-native:aps:ScraperScrapeConfiguration" + }, + "source": { + "$ref": "#/types/aws-native:aps:ScraperSource" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to this resource." + } + } + }, "aws-native:aps:Workspace": { "cfTypeName": "AWS::APS::Workspace", "properties": { @@ -1494,6 +1520,42 @@ } } }, + "aws-native:codeartifact:PackageGroup": { + "cfTypeName": "AWS::CodeArtifact::PackageGroup", + "properties": { + "contactInfo": { + "type": "string", + "description": "The contact info of the package group." + }, + "description": { + "type": "string", + "description": "The text description of the package group." + }, + "domainName": { + "type": "string", + "description": "The name of the domain that contains the package group." + }, + "domainOwner": { + "type": "string", + "description": "The 12-digit account ID of the AWS account that owns the domain." + }, + "originConfiguration": { + "$ref": "#/types/aws-native:codeartifact:PackageGroupOriginConfiguration", + "description": "The package origin configuration of the package group." + }, + "pattern": { + "type": "string", + "description": "The package group pattern that is used to gather packages." + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + }, + "description": "An array of key-value pairs to apply to the package group." + } + } + }, "aws-native:codepipeline:CustomActionType": { "cfTypeName": "AWS::CodePipeline::CustomActionType", "properties": { @@ -1576,6 +1638,10 @@ "type": "string", "description": "The source provider repository path of the sync configuration file of the respective SyncType." }, + "publishDeploymentStatus": { + "$ref": "#/types/aws-native:codestarconnections:SyncConfigurationPublishDeploymentStatus", + "description": "Whether to enable or disable publishing of deployment status to source providers." + }, "repositoryLinkId": { "type": "string", "description": "A UUID that uniquely identifies the RepositoryLink that the SyncConfig is associated with." @@ -1591,6 +1657,10 @@ "syncType": { "type": "string", "description": "The type of resource synchronization service that is to be configured, for example, CFN_STACK_SYNC." + }, + "triggerResourceUpdateOn": { + "$ref": "#/types/aws-native:codestarconnections:SyncConfigurationTriggerResourceUpdateOn", + "description": "When to trigger Git sync to begin the stack update." } } }, @@ -4103,6 +4173,10 @@ "type": "boolean", "description": "Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. For more information, see [DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) in the *User Guide*." }, + "enableLniAtDeviceIndex": { + "type": "integer", + "description": "Indicates the device position for local network interfaces in this subnet. For example, ``1`` indicates local network interfaces in this subnet are the secondary network interface (eth1)." + }, "ipv4IpamPoolId": { "type": "string", "description": "An IPv4 IPAM pool ID for the subnet." @@ -4136,7 +4210,7 @@ }, "mapPublicIpOnLaunch": { "type": "boolean", - "description": "Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``.\n AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/)." + "description": "Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``.\n AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/)." }, "outpostArn": { "type": "string", @@ -4144,7 +4218,7 @@ }, "privateDnsNameOptionsOnLaunch": { "$ref": "#/types/aws-native:ec2:PrivateDnsNameOptionsOnLaunchProperties", - "description": "The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*.\n Available options:\n + EnableResourceNameDnsAAAARecord (true | false)\n + EnableResourceNameDnsARecord (true | false)\n + HostnameType (ip-name | resource-name)" + "description": "The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*.\n Available options:\n + EnableResourceNameDnsAAAARecord (true | false)\n + EnableResourceNameDnsARecord (true | false)\n + HostnameType (ip-name | resource-name)" }, "tags": { "type": "array", @@ -4419,10 +4493,12 @@ "cfTypeName": "AWS::EC2::TransitGatewayRouteTableAssociation", "properties": { "transitGatewayAttachmentId": { - "type": "string" + "type": "string", + "description": "The ID of transit gateway attachment." }, "transitGatewayRouteTableId": { - "type": "string" + "type": "string", + "description": "The ID of transit gateway route table." } } }, @@ -9782,6 +9858,30 @@ } } }, + "aws-native:securitylake:DataLake": { + "cfTypeName": "AWS::SecurityLake::DataLake", + "properties": { + "encryptionConfiguration": { + "$ref": "#/types/aws-native:securitylake:DataLakeEncryptionConfiguration" + }, + "lifecycleConfiguration": { + "$ref": "#/types/aws-native:securitylake:DataLakeLifecycleConfiguration" + }, + "metaStoreManagerRoleArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) used to index AWS Glue table partitions that are generated by the ingestion and normalization of AWS log sources and custom sources." + }, + "replicationConfiguration": { + "$ref": "#/types/aws-native:securitylake:DataLakeReplicationConfiguration" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/types/aws-native:index:Tag" + } + } + } + }, "aws-native:servicecatalog:CloudFormationProvisionedProduct": { "cfTypeName": "AWS::ServiceCatalog::CloudFormationProvisionedProduct", "properties": { diff --git a/sdk/dotnet/AppIntegrations/Application.cs b/sdk/dotnet/AppIntegrations/Application.cs new file mode 100644 index 0000000000..0b46b357ad --- /dev/null +++ b/sdk/dotnet/AppIntegrations/Application.cs @@ -0,0 +1,146 @@ +// *** 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.AppIntegrations +{ + /// + /// Resource Type definition for AWS:AppIntegrations::Application + /// + [AwsNativeResourceType("aws-native:appintegrations:Application")] + public partial class Application : global::Pulumi.CustomResource + { + /// + /// The Amazon Resource Name (ARN) of the application. + /// + [Output("applicationArn")] + public Output ApplicationArn { get; private set; } = null!; + + /// + /// Application source config + /// + [Output("applicationSourceConfig")] + public Output ApplicationSourceConfig { get; private set; } = null!; + + /// + /// The id of the application. + /// + [Output("awsId")] + public Output AwsId { get; private set; } = null!; + + /// + /// The application description. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// The name of the application. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The namespace of the application. + /// + [Output("namespace")] + public Output Namespace { get; private set; } = null!; + + /// + /// The tags (keys and values) associated with the application. + /// + [Output("tags")] + public Output> Tags { get; private set; } = null!; + + + /// + /// Create a Application resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public Application(string name, ApplicationArgs args, CustomResourceOptions? options = null) + : base("aws-native:appintegrations:Application", name, args ?? new ApplicationArgs(), MakeResourceOptions(options, "")) + { + } + + private Application(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:appintegrations:Application", 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 Application resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static Application Get(string name, Input id, CustomResourceOptions? options = null) + { + return new Application(name, id, options); + } + } + + public sealed class ApplicationArgs : global::Pulumi.ResourceArgs + { + /// + /// Application source config + /// + [Input("applicationSourceConfig", required: true)] + public Input ApplicationSourceConfig { get; set; } = null!; + + /// + /// The application description. + /// + [Input("description", required: true)] + public Input Description { get; set; } = null!; + + /// + /// The name of the application. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The namespace of the application. + /// + [Input("namespace")] + public Input? Namespace { get; set; } + + [Input("tags")] + private InputList? _tags; + + /// + /// The tags (keys and values) associated with the application. + /// + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + + public ApplicationArgs() + { + } + public static new ApplicationArgs Empty => new ApplicationArgs(); + } +} diff --git a/sdk/dotnet/AppIntegrations/GetApplication.cs b/sdk/dotnet/AppIntegrations/GetApplication.cs new file mode 100644 index 0000000000..2b2c01d71a --- /dev/null +++ b/sdk/dotnet/AppIntegrations/GetApplication.cs @@ -0,0 +1,114 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.AwsNative.AppIntegrations +{ + public static class GetApplication + { + /// + /// Resource Type definition for AWS:AppIntegrations::Application + /// + public static Task InvokeAsync(GetApplicationArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:appintegrations:getApplication", args ?? new GetApplicationArgs(), options.WithDefaults()); + + /// + /// Resource Type definition for AWS:AppIntegrations::Application + /// + public static Output Invoke(GetApplicationInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:appintegrations:getApplication", args ?? new GetApplicationInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetApplicationArgs : global::Pulumi.InvokeArgs + { + /// + /// The Amazon Resource Name (ARN) of the application. + /// + [Input("applicationArn", required: true)] + public string ApplicationArn { get; set; } = null!; + + public GetApplicationArgs() + { + } + public static new GetApplicationArgs Empty => new GetApplicationArgs(); + } + + public sealed class GetApplicationInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The Amazon Resource Name (ARN) of the application. + /// + [Input("applicationArn", required: true)] + public Input ApplicationArn { get; set; } = null!; + + public GetApplicationInvokeArgs() + { + } + public static new GetApplicationInvokeArgs Empty => new GetApplicationInvokeArgs(); + } + + + [OutputType] + public sealed class GetApplicationResult + { + /// + /// The Amazon Resource Name (ARN) of the application. + /// + public readonly string? ApplicationArn; + /// + /// Application source config + /// + public readonly Outputs.ApplicationSourceConfigProperties? ApplicationSourceConfig; + /// + /// The application description. + /// + public readonly string? Description; + /// + /// The id of the application. + /// + public readonly string? Id; + /// + /// The name of the application. + /// + public readonly string? Name; + /// + /// The namespace of the application. + /// + public readonly string? Namespace; + /// + /// The tags (keys and values) associated with the application. + /// + public readonly ImmutableArray Tags; + + [OutputConstructor] + private GetApplicationResult( + string? applicationArn, + + Outputs.ApplicationSourceConfigProperties? applicationSourceConfig, + + string? description, + + string? id, + + string? name, + + string? @namespace, + + ImmutableArray tags) + { + ApplicationArn = applicationArn; + ApplicationSourceConfig = applicationSourceConfig; + Description = description; + Id = id; + Name = name; + Namespace = @namespace; + Tags = tags; + } + } +} diff --git a/sdk/dotnet/AppIntegrations/Inputs/ApplicationExternalUrlConfigArgs.cs b/sdk/dotnet/AppIntegrations/Inputs/ApplicationExternalUrlConfigArgs.cs new file mode 100644 index 0000000000..9bb902c772 --- /dev/null +++ b/sdk/dotnet/AppIntegrations/Inputs/ApplicationExternalUrlConfigArgs.cs @@ -0,0 +1,31 @@ +// *** 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.AppIntegrations.Inputs +{ + + public sealed class ApplicationExternalUrlConfigArgs : global::Pulumi.ResourceArgs + { + [Input("accessUrl", required: true)] + public Input AccessUrl { get; set; } = null!; + + [Input("approvedOrigins", required: true)] + private InputList? _approvedOrigins; + public InputList ApprovedOrigins + { + get => _approvedOrigins ?? (_approvedOrigins = new InputList()); + set => _approvedOrigins = value; + } + + public ApplicationExternalUrlConfigArgs() + { + } + public static new ApplicationExternalUrlConfigArgs Empty => new ApplicationExternalUrlConfigArgs(); + } +} diff --git a/sdk/dotnet/AppIntegrations/Inputs/ApplicationSourceConfigPropertiesArgs.cs b/sdk/dotnet/AppIntegrations/Inputs/ApplicationSourceConfigPropertiesArgs.cs new file mode 100644 index 0000000000..6bd8bed3fc --- /dev/null +++ b/sdk/dotnet/AppIntegrations/Inputs/ApplicationSourceConfigPropertiesArgs.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.AppIntegrations.Inputs +{ + + /// + /// Application source config + /// + public sealed class ApplicationSourceConfigPropertiesArgs : global::Pulumi.ResourceArgs + { + [Input("externalUrlConfig", required: true)] + public Input ExternalUrlConfig { get; set; } = null!; + + public ApplicationSourceConfigPropertiesArgs() + { + } + public static new ApplicationSourceConfigPropertiesArgs Empty => new ApplicationSourceConfigPropertiesArgs(); + } +} diff --git a/sdk/dotnet/AppIntegrations/Outputs/ApplicationExternalUrlConfig.cs b/sdk/dotnet/AppIntegrations/Outputs/ApplicationExternalUrlConfig.cs new file mode 100644 index 0000000000..b1c5c7e900 --- /dev/null +++ b/sdk/dotnet/AppIntegrations/Outputs/ApplicationExternalUrlConfig.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.AppIntegrations.Outputs +{ + + [OutputType] + public sealed class ApplicationExternalUrlConfig + { + public readonly string AccessUrl; + public readonly ImmutableArray ApprovedOrigins; + + [OutputConstructor] + private ApplicationExternalUrlConfig( + string accessUrl, + + ImmutableArray approvedOrigins) + { + AccessUrl = accessUrl; + ApprovedOrigins = approvedOrigins; + } + } +} diff --git a/sdk/dotnet/AppIntegrations/Outputs/ApplicationSourceConfigProperties.cs b/sdk/dotnet/AppIntegrations/Outputs/ApplicationSourceConfigProperties.cs new file mode 100644 index 0000000000..8a53e3e6f0 --- /dev/null +++ b/sdk/dotnet/AppIntegrations/Outputs/ApplicationSourceConfigProperties.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.AppIntegrations.Outputs +{ + + /// + /// Application source config + /// + [OutputType] + public sealed class ApplicationSourceConfigProperties + { + public readonly Outputs.ApplicationExternalUrlConfig ExternalUrlConfig; + + [OutputConstructor] + private ApplicationSourceConfigProperties(Outputs.ApplicationExternalUrlConfig externalUrlConfig) + { + ExternalUrlConfig = externalUrlConfig; + } + } +} diff --git a/sdk/dotnet/AppSync/Enums.cs b/sdk/dotnet/AppSync/Enums.cs index d240ffbbe9..8debb843a0 100644 --- a/sdk/dotnet/AppSync/Enums.cs +++ b/sdk/dotnet/AppSync/Enums.cs @@ -7,6 +7,9 @@ namespace Pulumi.AwsNative.AppSync { + /// + /// Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value. + /// [EnumType] public readonly struct ResolverMetricsConfig : IEquatable { diff --git a/sdk/dotnet/AppSync/GetResolver.cs b/sdk/dotnet/AppSync/GetResolver.cs index 5dbedd4760..7ca99b4336 100644 --- a/sdk/dotnet/AppSync/GetResolver.cs +++ b/sdk/dotnet/AppSync/GetResolver.cs @@ -77,6 +77,9 @@ public sealed class GetResolverResult /// The maximum number of resolver request inputs that will be sent to a single LAMlong function in a ``BatchInvoke`` operation. /// public readonly int? MaxBatchSize; + /// + /// Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value. + /// public readonly Pulumi.AwsNative.AppSync.ResolverMetricsConfig? MetricsConfig; /// /// Functions linked with the pipeline resolver. diff --git a/sdk/dotnet/AppSync/Resolver.cs b/sdk/dotnet/AppSync/Resolver.cs index 83e23e9298..8284bb4d6a 100644 --- a/sdk/dotnet/AppSync/Resolver.cs +++ b/sdk/dotnet/AppSync/Resolver.cs @@ -99,6 +99,9 @@ public partial class Resolver : global::Pulumi.CustomResource [Output("maxBatchSize")] public Output MaxBatchSize { get; private set; } = null!; + /// + /// Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value. + /// [Output("metricsConfig")] public Output MetricsConfig { get; private set; } = null!; @@ -255,6 +258,9 @@ public sealed class ResolverArgs : global::Pulumi.ResourceArgs [Input("maxBatchSize")] public Input? MaxBatchSize { get; set; } + /// + /// Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value. + /// [Input("metricsConfig")] public Input? MetricsConfig { get; set; } diff --git a/sdk/dotnet/Aps/GetScraper.cs b/sdk/dotnet/Aps/GetScraper.cs new file mode 100644 index 0000000000..28a08bd288 --- /dev/null +++ b/sdk/dotnet/Aps/GetScraper.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.Aps +{ + public static class GetScraper + { + /// + /// Resource Type definition for AWS::APS::Scraper + /// + public static Task InvokeAsync(GetScraperArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:aps:getScraper", args ?? new GetScraperArgs(), options.WithDefaults()); + + /// + /// Resource Type definition for AWS::APS::Scraper + /// + public static Output Invoke(GetScraperInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:aps:getScraper", args ?? new GetScraperInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetScraperArgs : global::Pulumi.InvokeArgs + { + /// + /// Scraper ARN. + /// + [Input("arn", required: true)] + public string Arn { get; set; } = null!; + + public GetScraperArgs() + { + } + public static new GetScraperArgs Empty => new GetScraperArgs(); + } + + public sealed class GetScraperInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Scraper ARN. + /// + [Input("arn", required: true)] + public Input Arn { get; set; } = null!; + + public GetScraperInvokeArgs() + { + } + public static new GetScraperInvokeArgs Empty => new GetScraperInvokeArgs(); + } + + + [OutputType] + public sealed class GetScraperResult + { + /// + /// Scraper ARN. + /// + public readonly string? Arn; + /// + /// IAM role ARN for the scraper. + /// + public readonly string? RoleArn; + /// + /// Required to identify a specific scraper. + /// + public readonly string? ScraperId; + /// + /// An array of key-value pairs to apply to this resource. + /// + public readonly ImmutableArray Tags; + + [OutputConstructor] + private GetScraperResult( + string? arn, + + string? roleArn, + + string? scraperId, + + ImmutableArray tags) + { + Arn = arn; + RoleArn = roleArn; + ScraperId = scraperId; + Tags = tags; + } + } +} diff --git a/sdk/dotnet/Aps/Inputs/ScraperDestinationAmpConfigurationPropertiesArgs.cs b/sdk/dotnet/Aps/Inputs/ScraperDestinationAmpConfigurationPropertiesArgs.cs new file mode 100644 index 0000000000..8463146d53 --- /dev/null +++ b/sdk/dotnet/Aps/Inputs/ScraperDestinationAmpConfigurationPropertiesArgs.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.Aps.Inputs +{ + + /// + /// Configuration for Amazon Managed Prometheus metrics destination + /// + public sealed class ScraperDestinationAmpConfigurationPropertiesArgs : global::Pulumi.ResourceArgs + { + /// + /// ARN of an Amazon Managed Prometheus workspace + /// + [Input("workspaceArn", required: true)] + public Input WorkspaceArn { get; set; } = null!; + + public ScraperDestinationAmpConfigurationPropertiesArgs() + { + } + public static new ScraperDestinationAmpConfigurationPropertiesArgs Empty => new ScraperDestinationAmpConfigurationPropertiesArgs(); + } +} diff --git a/sdk/dotnet/Aps/Inputs/ScraperDestinationArgs.cs b/sdk/dotnet/Aps/Inputs/ScraperDestinationArgs.cs new file mode 100644 index 0000000000..d608d8d6d9 --- /dev/null +++ b/sdk/dotnet/Aps/Inputs/ScraperDestinationArgs.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.Aps.Inputs +{ + + /// + /// Scraper metrics destination + /// + public sealed class ScraperDestinationArgs : global::Pulumi.ResourceArgs + { + /// + /// Configuration for Amazon Managed Prometheus metrics destination + /// + [Input("ampConfiguration")] + public Input? AmpConfiguration { get; set; } + + public ScraperDestinationArgs() + { + } + public static new ScraperDestinationArgs Empty => new ScraperDestinationArgs(); + } +} diff --git a/sdk/dotnet/Aps/Inputs/ScraperScrapeConfigurationArgs.cs b/sdk/dotnet/Aps/Inputs/ScraperScrapeConfigurationArgs.cs new file mode 100644 index 0000000000..333e1c56d3 --- /dev/null +++ b/sdk/dotnet/Aps/Inputs/ScraperScrapeConfigurationArgs.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.Aps.Inputs +{ + + /// + /// Scraper configuration + /// + public sealed class ScraperScrapeConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// Prometheus compatible scrape configuration in base64 encoded blob format + /// + [Input("configurationBlob")] + public Input? ConfigurationBlob { get; set; } + + public ScraperScrapeConfigurationArgs() + { + } + public static new ScraperScrapeConfigurationArgs Empty => new ScraperScrapeConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Aps/Inputs/ScraperSourceArgs.cs b/sdk/dotnet/Aps/Inputs/ScraperSourceArgs.cs new file mode 100644 index 0000000000..4ba4fc7974 --- /dev/null +++ b/sdk/dotnet/Aps/Inputs/ScraperSourceArgs.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.Aps.Inputs +{ + + /// + /// Scraper metrics source + /// + public sealed class ScraperSourceArgs : global::Pulumi.ResourceArgs + { + /// + /// Configuration for EKS metrics source + /// + [Input("eksConfiguration")] + public Input? EksConfiguration { get; set; } + + public ScraperSourceArgs() + { + } + public static new ScraperSourceArgs Empty => new ScraperSourceArgs(); + } +} diff --git a/sdk/dotnet/Aps/Inputs/ScraperSourceEksConfigurationPropertiesArgs.cs b/sdk/dotnet/Aps/Inputs/ScraperSourceEksConfigurationPropertiesArgs.cs new file mode 100644 index 0000000000..219dd47875 --- /dev/null +++ b/sdk/dotnet/Aps/Inputs/ScraperSourceEksConfigurationPropertiesArgs.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.Aps.Inputs +{ + + /// + /// Configuration for EKS metrics source + /// + public sealed class ScraperSourceEksConfigurationPropertiesArgs : global::Pulumi.ResourceArgs + { + /// + /// ARN of an EKS cluster + /// + [Input("clusterArn", required: true)] + public Input ClusterArn { get; set; } = null!; + + [Input("securityGroupIds")] + private InputList? _securityGroupIds; + + /// + /// List of security group IDs + /// + public InputList SecurityGroupIds + { + get => _securityGroupIds ?? (_securityGroupIds = new InputList()); + set => _securityGroupIds = value; + } + + [Input("subnetIds", required: true)] + private InputList? _subnetIds; + + /// + /// List of subnet IDs + /// + public InputList SubnetIds + { + get => _subnetIds ?? (_subnetIds = new InputList()); + set => _subnetIds = value; + } + + public ScraperSourceEksConfigurationPropertiesArgs() + { + } + public static new ScraperSourceEksConfigurationPropertiesArgs Empty => new ScraperSourceEksConfigurationPropertiesArgs(); + } +} diff --git a/sdk/dotnet/Aps/Outputs/ScraperDestination.cs b/sdk/dotnet/Aps/Outputs/ScraperDestination.cs new file mode 100644 index 0000000000..93ed54a6e8 --- /dev/null +++ b/sdk/dotnet/Aps/Outputs/ScraperDestination.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.Aps.Outputs +{ + + /// + /// Scraper metrics destination + /// + [OutputType] + public sealed class ScraperDestination + { + /// + /// Configuration for Amazon Managed Prometheus metrics destination + /// + public readonly Outputs.ScraperDestinationAmpConfigurationProperties? AmpConfiguration; + + [OutputConstructor] + private ScraperDestination(Outputs.ScraperDestinationAmpConfigurationProperties? ampConfiguration) + { + AmpConfiguration = ampConfiguration; + } + } +} diff --git a/sdk/dotnet/Aps/Outputs/ScraperDestinationAmpConfigurationProperties.cs b/sdk/dotnet/Aps/Outputs/ScraperDestinationAmpConfigurationProperties.cs new file mode 100644 index 0000000000..ae09969ac9 --- /dev/null +++ b/sdk/dotnet/Aps/Outputs/ScraperDestinationAmpConfigurationProperties.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.Aps.Outputs +{ + + /// + /// Configuration for Amazon Managed Prometheus metrics destination + /// + [OutputType] + public sealed class ScraperDestinationAmpConfigurationProperties + { + /// + /// ARN of an Amazon Managed Prometheus workspace + /// + public readonly string WorkspaceArn; + + [OutputConstructor] + private ScraperDestinationAmpConfigurationProperties(string workspaceArn) + { + WorkspaceArn = workspaceArn; + } + } +} diff --git a/sdk/dotnet/Aps/Outputs/ScraperScrapeConfiguration.cs b/sdk/dotnet/Aps/Outputs/ScraperScrapeConfiguration.cs new file mode 100644 index 0000000000..ce966a2efa --- /dev/null +++ b/sdk/dotnet/Aps/Outputs/ScraperScrapeConfiguration.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.Aps.Outputs +{ + + /// + /// Scraper configuration + /// + [OutputType] + public sealed class ScraperScrapeConfiguration + { + /// + /// Prometheus compatible scrape configuration in base64 encoded blob format + /// + public readonly string? ConfigurationBlob; + + [OutputConstructor] + private ScraperScrapeConfiguration(string? configurationBlob) + { + ConfigurationBlob = configurationBlob; + } + } +} diff --git a/sdk/dotnet/Aps/Outputs/ScraperSource.cs b/sdk/dotnet/Aps/Outputs/ScraperSource.cs new file mode 100644 index 0000000000..2682eca626 --- /dev/null +++ b/sdk/dotnet/Aps/Outputs/ScraperSource.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.Aps.Outputs +{ + + /// + /// Scraper metrics source + /// + [OutputType] + public sealed class ScraperSource + { + /// + /// Configuration for EKS metrics source + /// + public readonly Outputs.ScraperSourceEksConfigurationProperties? EksConfiguration; + + [OutputConstructor] + private ScraperSource(Outputs.ScraperSourceEksConfigurationProperties? eksConfiguration) + { + EksConfiguration = eksConfiguration; + } + } +} diff --git a/sdk/dotnet/Aps/Outputs/ScraperSourceEksConfigurationProperties.cs b/sdk/dotnet/Aps/Outputs/ScraperSourceEksConfigurationProperties.cs new file mode 100644 index 0000000000..c731aea832 --- /dev/null +++ b/sdk/dotnet/Aps/Outputs/ScraperSourceEksConfigurationProperties.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.Aps.Outputs +{ + + /// + /// Configuration for EKS metrics source + /// + [OutputType] + public sealed class ScraperSourceEksConfigurationProperties + { + /// + /// ARN of an EKS cluster + /// + public readonly string ClusterArn; + /// + /// List of security group IDs + /// + public readonly ImmutableArray SecurityGroupIds; + /// + /// List of subnet IDs + /// + public readonly ImmutableArray SubnetIds; + + [OutputConstructor] + private ScraperSourceEksConfigurationProperties( + string clusterArn, + + ImmutableArray securityGroupIds, + + ImmutableArray subnetIds) + { + ClusterArn = clusterArn; + SecurityGroupIds = securityGroupIds; + SubnetIds = subnetIds; + } + } +} diff --git a/sdk/dotnet/Aps/Scraper.cs b/sdk/dotnet/Aps/Scraper.cs new file mode 100644 index 0000000000..cd7ce6e0ac --- /dev/null +++ b/sdk/dotnet/Aps/Scraper.cs @@ -0,0 +1,141 @@ +// *** 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.Aps +{ + /// + /// Resource Type definition for AWS::APS::Scraper + /// + [AwsNativeResourceType("aws-native:aps:Scraper")] + public partial class Scraper : global::Pulumi.CustomResource + { + /// + /// Scraper alias. + /// + [Output("alias")] + public Output Alias { get; private set; } = null!; + + /// + /// Scraper ARN. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + [Output("destination")] + public Output Destination { get; private set; } = null!; + + /// + /// IAM role ARN for the scraper. + /// + [Output("roleArn")] + public Output RoleArn { get; private set; } = null!; + + [Output("scrapeConfiguration")] + public Output ScrapeConfiguration { get; private set; } = null!; + + /// + /// Required to identify a specific scraper. + /// + [Output("scraperId")] + public Output ScraperId { get; private set; } = null!; + + [Output("source")] + public Output Source { get; private set; } = null!; + + /// + /// An array of key-value pairs to apply to this resource. + /// + [Output("tags")] + public Output> Tags { get; private set; } = null!; + + + /// + /// Create a Scraper 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 Scraper(string name, ScraperArgs args, CustomResourceOptions? options = null) + : base("aws-native:aps:Scraper", name, args ?? new ScraperArgs(), MakeResourceOptions(options, "")) + { + } + + private Scraper(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:aps:Scraper", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "alias", + "destination", + "scrapeConfiguration", + "source", + }, + }; + 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 Scraper 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 Scraper Get(string name, Input id, CustomResourceOptions? options = null) + { + return new Scraper(name, id, options); + } + } + + public sealed class ScraperArgs : global::Pulumi.ResourceArgs + { + /// + /// Scraper alias. + /// + [Input("alias")] + public Input? Alias { get; set; } + + [Input("destination", required: true)] + public Input Destination { get; set; } = null!; + + [Input("scrapeConfiguration", required: true)] + public Input ScrapeConfiguration { get; set; } = null!; + + [Input("source", required: true)] + public Input Source { get; set; } = null!; + + [Input("tags")] + private InputList? _tags; + + /// + /// An array of key-value pairs to apply to this resource. + /// + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + + public ScraperArgs() + { + } + public static new ScraperArgs Empty => new ScraperArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Agent.cs b/sdk/dotnet/Bedrock/Agent.cs new file mode 100644 index 0000000000..be40a0f47a --- /dev/null +++ b/sdk/dotnet/Bedrock/Agent.cs @@ -0,0 +1,280 @@ +// *** 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.Bedrock +{ + /// + /// Definition of AWS::Bedrock::Agent Resource Type + /// + [AwsNativeResourceType("aws-native:bedrock:Agent")] + public partial class Agent : global::Pulumi.CustomResource + { + /// + /// List of ActionGroups + /// + [Output("actionGroups")] + public Output> ActionGroups { get; private set; } = null!; + + /// + /// Arn representation of the Agent. + /// + [Output("agentArn")] + public Output AgentArn { get; private set; } = null!; + + /// + /// Identifier for a resource. + /// + [Output("agentId")] + public Output AgentId { get; private set; } = null!; + + /// + /// Name for a resource. + /// + [Output("agentName")] + public Output AgentName { get; private set; } = null!; + + /// + /// ARN of a IAM role. + /// + [Output("agentResourceRoleArn")] + public Output AgentResourceRoleArn { get; private set; } = null!; + + [Output("agentStatus")] + public Output AgentStatus { get; private set; } = null!; + + /// + /// Draft Agent Version. + /// + [Output("agentVersion")] + public Output AgentVersion { get; private set; } = null!; + + /// + /// Specifies whether to automatically prepare after creating or updating the agent. + /// + [Output("autoPrepare")] + public Output AutoPrepare { get; private set; } = null!; + + /// + /// Time Stamp. + /// + [Output("createdAt")] + public Output CreatedAt { get; private set; } = null!; + + /// + /// A KMS key ARN + /// + [Output("customerEncryptionKeyArn")] + public Output CustomerEncryptionKeyArn { get; private set; } = null!; + + /// + /// Description of the Resource. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// Failure Reasons for Error. + /// + [Output("failureReasons")] + public Output> FailureReasons { get; private set; } = null!; + + /// + /// ARN or name of a Bedrock model. + /// + [Output("foundationModel")] + public Output FoundationModel { get; private set; } = null!; + + /// + /// Max Session Time. + /// + [Output("idleSessionTtlInSeconds")] + public Output IdleSessionTtlInSeconds { get; private set; } = null!; + + /// + /// Instruction for the agent. + /// + [Output("instruction")] + public Output Instruction { get; private set; } = null!; + + /// + /// List of Agent Knowledge Bases + /// + [Output("knowledgeBases")] + public Output> KnowledgeBases { get; private set; } = null!; + + /// + /// Time Stamp. + /// + [Output("preparedAt")] + public Output PreparedAt { get; private set; } = null!; + + [Output("promptOverrideConfiguration")] + public Output PromptOverrideConfiguration { get; private set; } = null!; + + /// + /// The recommended actions users can take to resolve an error in failureReasons. + /// + [Output("recommendedActions")] + public Output> RecommendedActions { get; private set; } = null!; + + /// + /// Specifies whether to allow deleting agent while it is in use. + /// + [Output("skipResourceInUseCheckOnDelete")] + public Output SkipResourceInUseCheckOnDelete { get; private set; } = null!; + + [Output("tags")] + public Output?> Tags { get; private set; } = null!; + + /// + /// Time Stamp. + /// + [Output("updatedAt")] + public Output UpdatedAt { get; private set; } = null!; + + + /// + /// Create a Agent 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 Agent(string name, AgentArgs? args = null, CustomResourceOptions? options = null) + : base("aws-native:bedrock:Agent", name, args ?? new AgentArgs(), MakeResourceOptions(options, "")) + { + } + + private Agent(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:bedrock:Agent", 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 Agent 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 Agent Get(string name, Input id, CustomResourceOptions? options = null) + { + return new Agent(name, id, options); + } + } + + public sealed class AgentArgs : global::Pulumi.ResourceArgs + { + [Input("actionGroups")] + private InputList? _actionGroups; + + /// + /// List of ActionGroups + /// + public InputList ActionGroups + { + get => _actionGroups ?? (_actionGroups = new InputList()); + set => _actionGroups = value; + } + + /// + /// Name for a resource. + /// + [Input("agentName")] + public Input? AgentName { get; set; } + + /// + /// ARN of a IAM role. + /// + [Input("agentResourceRoleArn")] + public Input? AgentResourceRoleArn { get; set; } + + /// + /// Specifies whether to automatically prepare after creating or updating the agent. + /// + [Input("autoPrepare")] + public Input? AutoPrepare { get; set; } + + /// + /// A KMS key ARN + /// + [Input("customerEncryptionKeyArn")] + public Input? CustomerEncryptionKeyArn { get; set; } + + /// + /// Description of the Resource. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// ARN or name of a Bedrock model. + /// + [Input("foundationModel")] + public Input? FoundationModel { get; set; } + + /// + /// Max Session Time. + /// + [Input("idleSessionTtlInSeconds")] + public Input? IdleSessionTtlInSeconds { get; set; } + + /// + /// Instruction for the agent. + /// + [Input("instruction")] + public Input? Instruction { get; set; } + + [Input("knowledgeBases")] + private InputList? _knowledgeBases; + + /// + /// List of Agent Knowledge Bases + /// + public InputList KnowledgeBases + { + get => _knowledgeBases ?? (_knowledgeBases = new InputList()); + set => _knowledgeBases = value; + } + + [Input("promptOverrideConfiguration")] + public Input? PromptOverrideConfiguration { get; set; } + + /// + /// Specifies whether to allow deleting agent while it is in use. + /// + [Input("skipResourceInUseCheckOnDelete")] + public Input? SkipResourceInUseCheckOnDelete { get; set; } + + [Input("tags")] + private InputMap? _tags; + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + public AgentArgs() + { + } + public static new AgentArgs Empty => new AgentArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/AgentAlias.cs b/sdk/dotnet/Bedrock/AgentAlias.cs new file mode 100644 index 0000000000..6baa3b76ae --- /dev/null +++ b/sdk/dotnet/Bedrock/AgentAlias.cs @@ -0,0 +1,170 @@ +// *** 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.Bedrock +{ + /// + /// Definition of AWS::Bedrock::AgentAlias Resource Type + /// + [AwsNativeResourceType("aws-native:bedrock:AgentAlias")] + public partial class AgentAlias : global::Pulumi.CustomResource + { + /// + /// Arn representation of the Agent Alias. + /// + [Output("agentAliasArn")] + public Output AgentAliasArn { get; private set; } = null!; + + /// + /// The list of history events for an alias for an Agent. + /// + [Output("agentAliasHistoryEvents")] + public Output> AgentAliasHistoryEvents { get; private set; } = null!; + + /// + /// Id for an Agent Alias generated at the server side. + /// + [Output("agentAliasId")] + public Output AgentAliasId { get; private set; } = null!; + + /// + /// Name for a resource. + /// + [Output("agentAliasName")] + public Output AgentAliasName { get; private set; } = null!; + + [Output("agentAliasStatus")] + public Output AgentAliasStatus { get; private set; } = null!; + + /// + /// Identifier for a resource. + /// + [Output("agentId")] + public Output AgentId { get; private set; } = null!; + + /// + /// Time Stamp. + /// + [Output("createdAt")] + public Output CreatedAt { get; private set; } = null!; + + /// + /// Description of the Resource. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// Routing configuration for an Agent alias. + /// + [Output("routingConfiguration")] + public Output> RoutingConfiguration { get; private set; } = null!; + + [Output("tags")] + public Output?> Tags { get; private set; } = null!; + + /// + /// Time Stamp. + /// + [Output("updatedAt")] + public Output UpdatedAt { get; private set; } = null!; + + + /// + /// Create a AgentAlias 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 AgentAlias(string name, AgentAliasArgs args, CustomResourceOptions? options = null) + : base("aws-native:bedrock:AgentAlias", name, args ?? new AgentAliasArgs(), MakeResourceOptions(options, "")) + { + } + + private AgentAlias(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:bedrock:AgentAlias", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "agentId", + }, + }; + 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 AgentAlias 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 AgentAlias Get(string name, Input id, CustomResourceOptions? options = null) + { + return new AgentAlias(name, id, options); + } + } + + public sealed class AgentAliasArgs : global::Pulumi.ResourceArgs + { + /// + /// Name for a resource. + /// + [Input("agentAliasName")] + public Input? AgentAliasName { get; set; } + + /// + /// Identifier for a resource. + /// + [Input("agentId", required: true)] + public Input AgentId { get; set; } = null!; + + /// + /// Description of the Resource. + /// + [Input("description")] + public Input? Description { get; set; } + + [Input("routingConfiguration")] + private InputList? _routingConfiguration; + + /// + /// Routing configuration for an Agent alias. + /// + public InputList RoutingConfiguration + { + get => _routingConfiguration ?? (_routingConfiguration = new InputList()); + set => _routingConfiguration = value; + } + + [Input("tags")] + private InputMap? _tags; + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + public AgentAliasArgs() + { + } + public static new AgentAliasArgs Empty => new AgentAliasArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Enums.cs b/sdk/dotnet/Bedrock/Enums.cs new file mode 100644 index 0000000000..12f744bfed --- /dev/null +++ b/sdk/dotnet/Bedrock/Enums.cs @@ -0,0 +1,267 @@ +// *** 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.Bedrock +{ + /// + /// Action Group Signature for a BuiltIn Action + /// + [EnumType] + public readonly struct AgentActionGroupSignature : IEquatable + { + private readonly string _value; + + private AgentActionGroupSignature(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static AgentActionGroupSignature AmazonUserInput { get; } = new AgentActionGroupSignature("AMAZON.UserInput"); + + public static bool operator ==(AgentActionGroupSignature left, AgentActionGroupSignature right) => left.Equals(right); + public static bool operator !=(AgentActionGroupSignature left, AgentActionGroupSignature right) => !left.Equals(right); + + public static explicit operator string(AgentActionGroupSignature value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is AgentActionGroupSignature other && Equals(other); + public bool Equals(AgentActionGroupSignature other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + + /// + /// State of the action group + /// + [EnumType] + public readonly struct AgentActionGroupState : IEquatable + { + private readonly string _value; + + private AgentActionGroupState(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static AgentActionGroupState Enabled { get; } = new AgentActionGroupState("ENABLED"); + public static AgentActionGroupState Disabled { get; } = new AgentActionGroupState("DISABLED"); + + public static bool operator ==(AgentActionGroupState left, AgentActionGroupState right) => left.Equals(right); + public static bool operator !=(AgentActionGroupState left, AgentActionGroupState right) => !left.Equals(right); + + public static explicit operator string(AgentActionGroupState value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is AgentActionGroupState other && Equals(other); + public bool Equals(AgentActionGroupState other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + + /// + /// The statuses an Agent Alias can be in. + /// + [EnumType] + public readonly struct AgentAliasStatus : IEquatable + { + private readonly string _value; + + private AgentAliasStatus(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static AgentAliasStatus Creating { get; } = new AgentAliasStatus("CREATING"); + public static AgentAliasStatus Prepared { get; } = new AgentAliasStatus("PREPARED"); + public static AgentAliasStatus Failed { get; } = new AgentAliasStatus("FAILED"); + public static AgentAliasStatus Updating { get; } = new AgentAliasStatus("UPDATING"); + public static AgentAliasStatus Deleting { get; } = new AgentAliasStatus("DELETING"); + + public static bool operator ==(AgentAliasStatus left, AgentAliasStatus right) => left.Equals(right); + public static bool operator !=(AgentAliasStatus left, AgentAliasStatus right) => !left.Equals(right); + + public static explicit operator string(AgentAliasStatus value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is AgentAliasStatus other && Equals(other); + public bool Equals(AgentAliasStatus other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + + /// + /// Creation Mode for Prompt Configuration. + /// + [EnumType] + public readonly struct AgentCreationMode : IEquatable + { + private readonly string _value; + + private AgentCreationMode(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static AgentCreationMode Default { get; } = new AgentCreationMode("DEFAULT"); + public static AgentCreationMode Overridden { get; } = new AgentCreationMode("OVERRIDDEN"); + + public static bool operator ==(AgentCreationMode left, AgentCreationMode right) => left.Equals(right); + public static bool operator !=(AgentCreationMode left, AgentCreationMode right) => !left.Equals(right); + + public static explicit operator string(AgentCreationMode value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is AgentCreationMode other && Equals(other); + public bool Equals(AgentCreationMode other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + + /// + /// State of the knowledge base; whether it is enabled or disabled + /// + [EnumType] + public readonly struct AgentKnowledgeBaseState : IEquatable + { + private readonly string _value; + + private AgentKnowledgeBaseState(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static AgentKnowledgeBaseState Enabled { get; } = new AgentKnowledgeBaseState("ENABLED"); + public static AgentKnowledgeBaseState Disabled { get; } = new AgentKnowledgeBaseState("DISABLED"); + + public static bool operator ==(AgentKnowledgeBaseState left, AgentKnowledgeBaseState right) => left.Equals(right); + public static bool operator !=(AgentKnowledgeBaseState left, AgentKnowledgeBaseState right) => !left.Equals(right); + + public static explicit operator string(AgentKnowledgeBaseState value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is AgentKnowledgeBaseState other && Equals(other); + public bool Equals(AgentKnowledgeBaseState other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + + /// + /// Prompt State. + /// + [EnumType] + public readonly struct AgentPromptState : IEquatable + { + private readonly string _value; + + private AgentPromptState(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static AgentPromptState Enabled { get; } = new AgentPromptState("ENABLED"); + public static AgentPromptState Disabled { get; } = new AgentPromptState("DISABLED"); + + public static bool operator ==(AgentPromptState left, AgentPromptState right) => left.Equals(right); + public static bool operator !=(AgentPromptState left, AgentPromptState right) => !left.Equals(right); + + public static explicit operator string(AgentPromptState value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is AgentPromptState other && Equals(other); + public bool Equals(AgentPromptState other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + + /// + /// Prompt Type. + /// + [EnumType] + public readonly struct AgentPromptType : IEquatable + { + private readonly string _value; + + private AgentPromptType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static AgentPromptType PreProcessing { get; } = new AgentPromptType("PRE_PROCESSING"); + public static AgentPromptType Orchestration { get; } = new AgentPromptType("ORCHESTRATION"); + public static AgentPromptType PostProcessing { get; } = new AgentPromptType("POST_PROCESSING"); + public static AgentPromptType KnowledgeBaseResponseGeneration { get; } = new AgentPromptType("KNOWLEDGE_BASE_RESPONSE_GENERATION"); + + public static bool operator ==(AgentPromptType left, AgentPromptType right) => left.Equals(right); + public static bool operator !=(AgentPromptType left, AgentPromptType right) => !left.Equals(right); + + public static explicit operator string(AgentPromptType value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is AgentPromptType other && Equals(other); + public bool Equals(AgentPromptType other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + + /// + /// Schema Type for Action APIs. + /// + [EnumType] + public readonly struct AgentStatus : IEquatable + { + private readonly string _value; + + private AgentStatus(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static AgentStatus Creating { get; } = new AgentStatus("CREATING"); + public static AgentStatus Preparing { get; } = new AgentStatus("PREPARING"); + public static AgentStatus Prepared { get; } = new AgentStatus("PREPARED"); + public static AgentStatus NotPrepared { get; } = new AgentStatus("NOT_PREPARED"); + public static AgentStatus Deleting { get; } = new AgentStatus("DELETING"); + public static AgentStatus Failed { get; } = new AgentStatus("FAILED"); + public static AgentStatus Versioning { get; } = new AgentStatus("VERSIONING"); + public static AgentStatus Updating { get; } = new AgentStatus("UPDATING"); + + public static bool operator ==(AgentStatus left, AgentStatus right) => left.Equals(right); + public static bool operator !=(AgentStatus left, AgentStatus right) => !left.Equals(right); + + public static explicit operator string(AgentStatus value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is AgentStatus other && Equals(other); + public bool Equals(AgentStatus 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/Bedrock/GetAgent.cs b/sdk/dotnet/Bedrock/GetAgent.cs new file mode 100644 index 0000000000..b6d378eab7 --- /dev/null +++ b/sdk/dotnet/Bedrock/GetAgent.cs @@ -0,0 +1,196 @@ +// *** 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.Bedrock +{ + public static class GetAgent + { + /// + /// Definition of AWS::Bedrock::Agent Resource Type + /// + public static Task InvokeAsync(GetAgentArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:bedrock:getAgent", args ?? new GetAgentArgs(), options.WithDefaults()); + + /// + /// Definition of AWS::Bedrock::Agent Resource Type + /// + public static Output Invoke(GetAgentInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:bedrock:getAgent", args ?? new GetAgentInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetAgentArgs : global::Pulumi.InvokeArgs + { + /// + /// Identifier for a resource. + /// + [Input("agentId", required: true)] + public string AgentId { get; set; } = null!; + + public GetAgentArgs() + { + } + public static new GetAgentArgs Empty => new GetAgentArgs(); + } + + public sealed class GetAgentInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Identifier for a resource. + /// + [Input("agentId", required: true)] + public Input AgentId { get; set; } = null!; + + public GetAgentInvokeArgs() + { + } + public static new GetAgentInvokeArgs Empty => new GetAgentInvokeArgs(); + } + + + [OutputType] + public sealed class GetAgentResult + { + /// + /// List of ActionGroups + /// + public readonly ImmutableArray ActionGroups; + /// + /// Arn representation of the Agent. + /// + public readonly string? AgentArn; + /// + /// Identifier for a resource. + /// + public readonly string? AgentId; + /// + /// Name for a resource. + /// + public readonly string? AgentName; + /// + /// ARN of a IAM role. + /// + public readonly string? AgentResourceRoleArn; + public readonly Pulumi.AwsNative.Bedrock.AgentStatus? AgentStatus; + /// + /// Draft Agent Version. + /// + public readonly string? AgentVersion; + /// + /// Time Stamp. + /// + public readonly string? CreatedAt; + /// + /// A KMS key ARN + /// + public readonly string? CustomerEncryptionKeyArn; + /// + /// Description of the Resource. + /// + public readonly string? Description; + /// + /// Failure Reasons for Error. + /// + public readonly ImmutableArray FailureReasons; + /// + /// ARN or name of a Bedrock model. + /// + public readonly string? FoundationModel; + /// + /// Max Session Time. + /// + public readonly double? IdleSessionTtlInSeconds; + /// + /// Instruction for the agent. + /// + public readonly string? Instruction; + /// + /// List of Agent Knowledge Bases + /// + public readonly ImmutableArray KnowledgeBases; + /// + /// Time Stamp. + /// + public readonly string? PreparedAt; + public readonly Outputs.AgentPromptOverrideConfiguration? PromptOverrideConfiguration; + /// + /// The recommended actions users can take to resolve an error in failureReasons. + /// + public readonly ImmutableArray RecommendedActions; + public readonly ImmutableDictionary? Tags; + /// + /// Time Stamp. + /// + public readonly string? UpdatedAt; + + [OutputConstructor] + private GetAgentResult( + ImmutableArray actionGroups, + + string? agentArn, + + string? agentId, + + string? agentName, + + string? agentResourceRoleArn, + + Pulumi.AwsNative.Bedrock.AgentStatus? agentStatus, + + string? agentVersion, + + string? createdAt, + + string? customerEncryptionKeyArn, + + string? description, + + ImmutableArray failureReasons, + + string? foundationModel, + + double? idleSessionTtlInSeconds, + + string? instruction, + + ImmutableArray knowledgeBases, + + string? preparedAt, + + Outputs.AgentPromptOverrideConfiguration? promptOverrideConfiguration, + + ImmutableArray recommendedActions, + + ImmutableDictionary? tags, + + string? updatedAt) + { + ActionGroups = actionGroups; + AgentArn = agentArn; + AgentId = agentId; + AgentName = agentName; + AgentResourceRoleArn = agentResourceRoleArn; + AgentStatus = agentStatus; + AgentVersion = agentVersion; + CreatedAt = createdAt; + CustomerEncryptionKeyArn = customerEncryptionKeyArn; + Description = description; + FailureReasons = failureReasons; + FoundationModel = foundationModel; + IdleSessionTtlInSeconds = idleSessionTtlInSeconds; + Instruction = instruction; + KnowledgeBases = knowledgeBases; + PreparedAt = preparedAt; + PromptOverrideConfiguration = promptOverrideConfiguration; + RecommendedActions = recommendedActions; + Tags = tags; + UpdatedAt = updatedAt; + } + } +} diff --git a/sdk/dotnet/Bedrock/GetAgentAlias.cs b/sdk/dotnet/Bedrock/GetAgentAlias.cs new file mode 100644 index 0000000000..c1a2177d48 --- /dev/null +++ b/sdk/dotnet/Bedrock/GetAgentAlias.cs @@ -0,0 +1,141 @@ +// *** 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.Bedrock +{ + public static class GetAgentAlias + { + /// + /// Definition of AWS::Bedrock::AgentAlias Resource Type + /// + public static Task InvokeAsync(GetAgentAliasArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:bedrock:getAgentAlias", args ?? new GetAgentAliasArgs(), options.WithDefaults()); + + /// + /// Definition of AWS::Bedrock::AgentAlias Resource Type + /// + public static Output Invoke(GetAgentAliasInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:bedrock:getAgentAlias", args ?? new GetAgentAliasInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetAgentAliasArgs : global::Pulumi.InvokeArgs + { + /// + /// Id for an Agent Alias generated at the server side. + /// + [Input("agentAliasId", required: true)] + public string AgentAliasId { get; set; } = null!; + + /// + /// Identifier for a resource. + /// + [Input("agentId", required: true)] + public string AgentId { get; set; } = null!; + + public GetAgentAliasArgs() + { + } + public static new GetAgentAliasArgs Empty => new GetAgentAliasArgs(); + } + + public sealed class GetAgentAliasInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Id for an Agent Alias generated at the server side. + /// + [Input("agentAliasId", required: true)] + public Input AgentAliasId { get; set; } = null!; + + /// + /// Identifier for a resource. + /// + [Input("agentId", required: true)] + public Input AgentId { get; set; } = null!; + + public GetAgentAliasInvokeArgs() + { + } + public static new GetAgentAliasInvokeArgs Empty => new GetAgentAliasInvokeArgs(); + } + + + [OutputType] + public sealed class GetAgentAliasResult + { + /// + /// Arn representation of the Agent Alias. + /// + public readonly string? AgentAliasArn; + /// + /// The list of history events for an alias for an Agent. + /// + public readonly ImmutableArray AgentAliasHistoryEvents; + /// + /// Id for an Agent Alias generated at the server side. + /// + public readonly string? AgentAliasId; + /// + /// Name for a resource. + /// + public readonly string? AgentAliasName; + public readonly Pulumi.AwsNative.Bedrock.AgentAliasStatus? AgentAliasStatus; + /// + /// Time Stamp. + /// + public readonly string? CreatedAt; + /// + /// Description of the Resource. + /// + public readonly string? Description; + /// + /// Routing configuration for an Agent alias. + /// + public readonly ImmutableArray RoutingConfiguration; + public readonly ImmutableDictionary? Tags; + /// + /// Time Stamp. + /// + public readonly string? UpdatedAt; + + [OutputConstructor] + private GetAgentAliasResult( + string? agentAliasArn, + + ImmutableArray agentAliasHistoryEvents, + + string? agentAliasId, + + string? agentAliasName, + + Pulumi.AwsNative.Bedrock.AgentAliasStatus? agentAliasStatus, + + string? createdAt, + + string? description, + + ImmutableArray routingConfiguration, + + ImmutableDictionary? tags, + + string? updatedAt) + { + AgentAliasArn = agentAliasArn; + AgentAliasHistoryEvents = agentAliasHistoryEvents; + AgentAliasId = agentAliasId; + AgentAliasName = agentAliasName; + AgentAliasStatus = agentAliasStatus; + CreatedAt = createdAt; + Description = description; + RoutingConfiguration = routingConfiguration; + Tags = tags; + UpdatedAt = updatedAt; + } + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentActionGroupArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentActionGroupArgs.cs new file mode 100644 index 0000000000..f1988d951a --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentActionGroupArgs.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.Bedrock.Inputs +{ + + /// + /// Contains the information of an Agent Action Group + /// + public sealed class AgentActionGroupArgs : global::Pulumi.ResourceArgs + { + [Input("actionGroupExecutor")] + public Input? ActionGroupExecutor { get; set; } + + /// + /// Name of the action group + /// + [Input("actionGroupName", required: true)] + public Input ActionGroupName { get; set; } = null!; + + [Input("actionGroupState")] + public Input? ActionGroupState { get; set; } + + [Input("apiSchema")] + public InputUnion? ApiSchema { get; set; } + + /// + /// Description of action group + /// + [Input("description")] + public Input? Description { get; set; } + + [Input("parentActionGroupSignature")] + public Input? ParentActionGroupSignature { get; set; } + + /// + /// Specifies whether to allow deleting action group while it is in use. + /// + [Input("skipResourceInUseCheckOnDelete")] + public Input? SkipResourceInUseCheckOnDelete { get; set; } + + public AgentActionGroupArgs() + { + } + public static new AgentActionGroupArgs Empty => new AgentActionGroupArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentActionGroupExecutorArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentActionGroupExecutorArgs.cs new file mode 100644 index 0000000000..a279e5d9a7 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentActionGroupExecutorArgs.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.Bedrock.Inputs +{ + + public sealed class AgentActionGroupExecutorArgs : global::Pulumi.ResourceArgs + { + /// + /// ARN of a Lambda. + /// + [Input("lambda", required: true)] + public Input Lambda { get; set; } = null!; + + public AgentActionGroupExecutorArgs() + { + } + public static new AgentActionGroupExecutorArgs Empty => new AgentActionGroupExecutorArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentAliasRoutingConfigurationListItemArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentAliasRoutingConfigurationListItemArgs.cs new file mode 100644 index 0000000000..3761b12221 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentAliasRoutingConfigurationListItemArgs.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.Bedrock.Inputs +{ + + /// + /// Details about the routing configuration for an Agent alias. + /// + public sealed class AgentAliasRoutingConfigurationListItemArgs : global::Pulumi.ResourceArgs + { + /// + /// Agent Version. + /// + [Input("agentVersion", required: true)] + public Input AgentVersion { get; set; } = null!; + + public AgentAliasRoutingConfigurationListItemArgs() + { + } + public static new AgentAliasRoutingConfigurationListItemArgs Empty => new AgentAliasRoutingConfigurationListItemArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentApiSchema0PropertiesArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentApiSchema0PropertiesArgs.cs new file mode 100644 index 0000000000..8c69ebaf38 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentApiSchema0PropertiesArgs.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.Bedrock.Inputs +{ + + /// + /// Contains information about the API Schema for the Action Group + /// + public sealed class AgentApiSchema0PropertiesArgs : global::Pulumi.ResourceArgs + { + [Input("s3", required: true)] + public Input S3 { get; set; } = null!; + + public AgentApiSchema0PropertiesArgs() + { + } + public static new AgentApiSchema0PropertiesArgs Empty => new AgentApiSchema0PropertiesArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentApiSchema1PropertiesArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentApiSchema1PropertiesArgs.cs new file mode 100644 index 0000000000..1fd880bd15 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentApiSchema1PropertiesArgs.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.Bedrock.Inputs +{ + + /// + /// Contains information about the API Schema for the Action Group + /// + public sealed class AgentApiSchema1PropertiesArgs : global::Pulumi.ResourceArgs + { + /// + /// String OpenAPI Payload + /// + [Input("payload", required: true)] + public Input Payload { get; set; } = null!; + + public AgentApiSchema1PropertiesArgs() + { + } + public static new AgentApiSchema1PropertiesArgs Empty => new AgentApiSchema1PropertiesArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentInferenceConfigurationArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentInferenceConfigurationArgs.cs new file mode 100644 index 0000000000..7397159f93 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentInferenceConfigurationArgs.cs @@ -0,0 +1,59 @@ +// *** 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.Bedrock.Inputs +{ + + /// + /// Configuration for inference in prompt configuration + /// + public sealed class AgentInferenceConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// Maximum length of output + /// + [Input("maximumLength")] + public Input? MaximumLength { get; set; } + + [Input("stopSequences")] + private InputList? _stopSequences; + + /// + /// List of stop sequences + /// + public InputList StopSequences + { + get => _stopSequences ?? (_stopSequences = new InputList()); + set => _stopSequences = value; + } + + /// + /// Controls randomness, higher values increase diversity + /// + [Input("temperature")] + public Input? Temperature { get; set; } + + /// + /// Sample from the k most likely next tokens + /// + [Input("topK")] + public Input? TopK { get; set; } + + /// + /// Cumulative probability cutoff for token selection + /// + [Input("topP")] + public Input? TopP { get; set; } + + public AgentInferenceConfigurationArgs() + { + } + public static new AgentInferenceConfigurationArgs Empty => new AgentInferenceConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentKnowledgeBaseArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentKnowledgeBaseArgs.cs new file mode 100644 index 0000000000..e056af26c6 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentKnowledgeBaseArgs.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.Bedrock.Inputs +{ + + /// + /// Agent Knowledge Base + /// + public sealed class AgentKnowledgeBaseArgs : global::Pulumi.ResourceArgs + { + /// + /// Description of the Resource. + /// + [Input("description", required: true)] + public Input Description { get; set; } = null!; + + /// + /// Identifier for a resource. + /// + [Input("knowledgeBaseId", required: true)] + public Input KnowledgeBaseId { get; set; } = null!; + + [Input("knowledgeBaseState")] + public Input? KnowledgeBaseState { get; set; } + + public AgentKnowledgeBaseArgs() + { + } + public static new AgentKnowledgeBaseArgs Empty => new AgentKnowledgeBaseArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentPromptConfigurationArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentPromptConfigurationArgs.cs new file mode 100644 index 0000000000..27ddfbb086 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentPromptConfigurationArgs.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.Bedrock.Inputs +{ + + /// + /// BasePromptConfiguration per Prompt Type. + /// + public sealed class AgentPromptConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// Base Prompt Template. + /// + [Input("basePromptTemplate")] + public Input? BasePromptTemplate { get; set; } + + [Input("inferenceConfiguration")] + public Input? InferenceConfiguration { get; set; } + + [Input("parserMode")] + public Input? ParserMode { get; set; } + + [Input("promptCreationMode")] + public Input? PromptCreationMode { get; set; } + + [Input("promptState")] + public Input? PromptState { get; set; } + + [Input("promptType")] + public Input? PromptType { get; set; } + + public AgentPromptConfigurationArgs() + { + } + public static new AgentPromptConfigurationArgs Empty => new AgentPromptConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentPromptOverrideConfigurationArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentPromptOverrideConfigurationArgs.cs new file mode 100644 index 0000000000..a942089fd3 --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentPromptOverrideConfigurationArgs.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.Bedrock.Inputs +{ + + /// + /// Configuration for prompt override. + /// + public sealed class AgentPromptOverrideConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// ARN of a Lambda. + /// + [Input("overrideLambda")] + public Input? OverrideLambda { get; set; } + + [Input("promptConfigurations", required: true)] + private InputList? _promptConfigurations; + + /// + /// List of BasePromptConfiguration + /// + public InputList PromptConfigurations + { + get => _promptConfigurations ?? (_promptConfigurations = new InputList()); + set => _promptConfigurations = value; + } + + public AgentPromptOverrideConfigurationArgs() + { + } + public static new AgentPromptOverrideConfigurationArgs Empty => new AgentPromptOverrideConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Inputs/AgentS3IdentifierArgs.cs b/sdk/dotnet/Bedrock/Inputs/AgentS3IdentifierArgs.cs new file mode 100644 index 0000000000..3b213e65bb --- /dev/null +++ b/sdk/dotnet/Bedrock/Inputs/AgentS3IdentifierArgs.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.Bedrock.Inputs +{ + + /// + /// The identifier for the S3 resource. + /// + public sealed class AgentS3IdentifierArgs : global::Pulumi.ResourceArgs + { + /// + /// A bucket in S3. + /// + [Input("s3BucketName")] + public Input? S3BucketName { get; set; } + + /// + /// A object key in S3. + /// + [Input("s3ObjectKey")] + public Input? S3ObjectKey { get; set; } + + public AgentS3IdentifierArgs() + { + } + public static new AgentS3IdentifierArgs Empty => new AgentS3IdentifierArgs(); + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentActionGroup.cs b/sdk/dotnet/Bedrock/Outputs/AgentActionGroup.cs new file mode 100644 index 0000000000..2f4e75da1a --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentActionGroup.cs @@ -0,0 +1,61 @@ +// *** 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.Bedrock.Outputs +{ + + /// + /// Contains the information of an Agent Action Group + /// + [OutputType] + public sealed class AgentActionGroup + { + public readonly Outputs.AgentActionGroupExecutor? ActionGroupExecutor; + /// + /// Name of the action group + /// + public readonly string ActionGroupName; + public readonly Pulumi.AwsNative.Bedrock.AgentActionGroupState? ActionGroupState; + public readonly Union? ApiSchema; + /// + /// Description of action group + /// + public readonly string? Description; + public readonly Pulumi.AwsNative.Bedrock.AgentActionGroupSignature? ParentActionGroupSignature; + /// + /// Specifies whether to allow deleting action group while it is in use. + /// + public readonly bool? SkipResourceInUseCheckOnDelete; + + [OutputConstructor] + private AgentActionGroup( + Outputs.AgentActionGroupExecutor? actionGroupExecutor, + + string actionGroupName, + + Pulumi.AwsNative.Bedrock.AgentActionGroupState? actionGroupState, + + Union? apiSchema, + + string? description, + + Pulumi.AwsNative.Bedrock.AgentActionGroupSignature? parentActionGroupSignature, + + bool? skipResourceInUseCheckOnDelete) + { + ActionGroupExecutor = actionGroupExecutor; + ActionGroupName = actionGroupName; + ActionGroupState = actionGroupState; + ApiSchema = apiSchema; + Description = description; + ParentActionGroupSignature = parentActionGroupSignature; + SkipResourceInUseCheckOnDelete = skipResourceInUseCheckOnDelete; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentActionGroupExecutor.cs b/sdk/dotnet/Bedrock/Outputs/AgentActionGroupExecutor.cs new file mode 100644 index 0000000000..3a5b3fab6a --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentActionGroupExecutor.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.Bedrock.Outputs +{ + + [OutputType] + public sealed class AgentActionGroupExecutor + { + /// + /// ARN of a Lambda. + /// + public readonly string Lambda; + + [OutputConstructor] + private AgentActionGroupExecutor(string lambda) + { + Lambda = lambda; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentAliasHistoryEvent.cs b/sdk/dotnet/Bedrock/Outputs/AgentAliasHistoryEvent.cs new file mode 100644 index 0000000000..ec174e6d0f --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentAliasHistoryEvent.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.Bedrock.Outputs +{ + + /// + /// History event for an alias for an Agent. + /// + [OutputType] + public sealed class AgentAliasHistoryEvent + { + /// + /// Time Stamp. + /// + public readonly string? EndDate; + /// + /// Routing configuration for an Agent alias. + /// + public readonly ImmutableArray RoutingConfiguration; + /// + /// Time Stamp. + /// + public readonly string? StartDate; + + [OutputConstructor] + private AgentAliasHistoryEvent( + string? endDate, + + ImmutableArray routingConfiguration, + + string? startDate) + { + EndDate = endDate; + RoutingConfiguration = routingConfiguration; + StartDate = startDate; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentAliasRoutingConfigurationListItem.cs b/sdk/dotnet/Bedrock/Outputs/AgentAliasRoutingConfigurationListItem.cs new file mode 100644 index 0000000000..bf27e01467 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentAliasRoutingConfigurationListItem.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.Bedrock.Outputs +{ + + /// + /// Details about the routing configuration for an Agent alias. + /// + [OutputType] + public sealed class AgentAliasRoutingConfigurationListItem + { + /// + /// Agent Version. + /// + public readonly string AgentVersion; + + [OutputConstructor] + private AgentAliasRoutingConfigurationListItem(string agentVersion) + { + AgentVersion = agentVersion; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentApiSchema0Properties.cs b/sdk/dotnet/Bedrock/Outputs/AgentApiSchema0Properties.cs new file mode 100644 index 0000000000..c532713f79 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentApiSchema0Properties.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.Bedrock.Outputs +{ + + /// + /// Contains information about the API Schema for the Action Group + /// + [OutputType] + public sealed class AgentApiSchema0Properties + { + public readonly Outputs.AgentS3Identifier S3; + + [OutputConstructor] + private AgentApiSchema0Properties(Outputs.AgentS3Identifier s3) + { + S3 = s3; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentApiSchema1Properties.cs b/sdk/dotnet/Bedrock/Outputs/AgentApiSchema1Properties.cs new file mode 100644 index 0000000000..ca278065d0 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentApiSchema1Properties.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.Bedrock.Outputs +{ + + /// + /// Contains information about the API Schema for the Action Group + /// + [OutputType] + public sealed class AgentApiSchema1Properties + { + /// + /// String OpenAPI Payload + /// + public readonly string Payload; + + [OutputConstructor] + private AgentApiSchema1Properties(string payload) + { + Payload = payload; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentInferenceConfiguration.cs b/sdk/dotnet/Bedrock/Outputs/AgentInferenceConfiguration.cs new file mode 100644 index 0000000000..26b56b7e30 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentInferenceConfiguration.cs @@ -0,0 +1,59 @@ +// *** 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.Bedrock.Outputs +{ + + /// + /// Configuration for inference in prompt configuration + /// + [OutputType] + public sealed class AgentInferenceConfiguration + { + /// + /// Maximum length of output + /// + public readonly double? MaximumLength; + /// + /// List of stop sequences + /// + public readonly ImmutableArray StopSequences; + /// + /// Controls randomness, higher values increase diversity + /// + public readonly double? Temperature; + /// + /// Sample from the k most likely next tokens + /// + public readonly double? TopK; + /// + /// Cumulative probability cutoff for token selection + /// + public readonly double? TopP; + + [OutputConstructor] + private AgentInferenceConfiguration( + double? maximumLength, + + ImmutableArray stopSequences, + + double? temperature, + + double? topK, + + double? topP) + { + MaximumLength = maximumLength; + StopSequences = stopSequences; + Temperature = temperature; + TopK = topK; + TopP = topP; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentKnowledgeBase.cs b/sdk/dotnet/Bedrock/Outputs/AgentKnowledgeBase.cs new file mode 100644 index 0000000000..4bdeee3488 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentKnowledgeBase.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.Bedrock.Outputs +{ + + /// + /// Agent Knowledge Base + /// + [OutputType] + public sealed class AgentKnowledgeBase + { + /// + /// Description of the Resource. + /// + public readonly string Description; + /// + /// Identifier for a resource. + /// + public readonly string KnowledgeBaseId; + public readonly Pulumi.AwsNative.Bedrock.AgentKnowledgeBaseState? KnowledgeBaseState; + + [OutputConstructor] + private AgentKnowledgeBase( + string description, + + string knowledgeBaseId, + + Pulumi.AwsNative.Bedrock.AgentKnowledgeBaseState? knowledgeBaseState) + { + Description = description; + KnowledgeBaseId = knowledgeBaseId; + KnowledgeBaseState = knowledgeBaseState; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentPromptConfiguration.cs b/sdk/dotnet/Bedrock/Outputs/AgentPromptConfiguration.cs new file mode 100644 index 0000000000..158dd12c94 --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentPromptConfiguration.cs @@ -0,0 +1,51 @@ +// *** 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.Bedrock.Outputs +{ + + /// + /// BasePromptConfiguration per Prompt Type. + /// + [OutputType] + public sealed class AgentPromptConfiguration + { + /// + /// Base Prompt Template. + /// + public readonly string? BasePromptTemplate; + public readonly Outputs.AgentInferenceConfiguration? InferenceConfiguration; + public readonly Pulumi.AwsNative.Bedrock.AgentCreationMode? ParserMode; + public readonly Pulumi.AwsNative.Bedrock.AgentCreationMode? PromptCreationMode; + public readonly Pulumi.AwsNative.Bedrock.AgentPromptState? PromptState; + public readonly Pulumi.AwsNative.Bedrock.AgentPromptType? PromptType; + + [OutputConstructor] + private AgentPromptConfiguration( + string? basePromptTemplate, + + Outputs.AgentInferenceConfiguration? inferenceConfiguration, + + Pulumi.AwsNative.Bedrock.AgentCreationMode? parserMode, + + Pulumi.AwsNative.Bedrock.AgentCreationMode? promptCreationMode, + + Pulumi.AwsNative.Bedrock.AgentPromptState? promptState, + + Pulumi.AwsNative.Bedrock.AgentPromptType? promptType) + { + BasePromptTemplate = basePromptTemplate; + InferenceConfiguration = inferenceConfiguration; + ParserMode = parserMode; + PromptCreationMode = promptCreationMode; + PromptState = promptState; + PromptType = promptType; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentPromptOverrideConfiguration.cs b/sdk/dotnet/Bedrock/Outputs/AgentPromptOverrideConfiguration.cs new file mode 100644 index 0000000000..3f19753eca --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentPromptOverrideConfiguration.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.Bedrock.Outputs +{ + + /// + /// Configuration for prompt override. + /// + [OutputType] + public sealed class AgentPromptOverrideConfiguration + { + /// + /// ARN of a Lambda. + /// + public readonly string? OverrideLambda; + /// + /// List of BasePromptConfiguration + /// + public readonly ImmutableArray PromptConfigurations; + + [OutputConstructor] + private AgentPromptOverrideConfiguration( + string? overrideLambda, + + ImmutableArray promptConfigurations) + { + OverrideLambda = overrideLambda; + PromptConfigurations = promptConfigurations; + } + } +} diff --git a/sdk/dotnet/Bedrock/Outputs/AgentS3Identifier.cs b/sdk/dotnet/Bedrock/Outputs/AgentS3Identifier.cs new file mode 100644 index 0000000000..e4747881dd --- /dev/null +++ b/sdk/dotnet/Bedrock/Outputs/AgentS3Identifier.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.Bedrock.Outputs +{ + + /// + /// The identifier for the S3 resource. + /// + [OutputType] + public sealed class AgentS3Identifier + { + /// + /// A bucket in S3. + /// + public readonly string? S3BucketName; + /// + /// A object key in S3. + /// + public readonly string? S3ObjectKey; + + [OutputConstructor] + private AgentS3Identifier( + string? s3BucketName, + + string? s3ObjectKey) + { + S3BucketName = s3BucketName; + S3ObjectKey = s3ObjectKey; + } + } +} diff --git a/sdk/dotnet/Bedrock/README.md b/sdk/dotnet/Bedrock/README.md new file mode 100644 index 0000000000..77b2f47ec2 --- /dev/null +++ b/sdk/dotnet/Bedrock/README.md @@ -0,0 +1 @@ +A native Pulumi package for creating and managing Amazon Web Services (AWS) resources. diff --git a/sdk/dotnet/CleanRooms/Enums.cs b/sdk/dotnet/CleanRooms/Enums.cs index 30ee4f0fa3..4fbac1d6db 100644 --- a/sdk/dotnet/CleanRooms/Enums.cs +++ b/sdk/dotnet/CleanRooms/Enums.cs @@ -323,6 +323,17 @@ private ConfiguredTableScalarFunctions(string value) public static ConfiguredTableScalarFunctions Rtrim { get; } = new ConfiguredTableScalarFunctions("RTRIM"); public static ConfiguredTableScalarFunctions Upper { get; } = new ConfiguredTableScalarFunctions("UPPER"); public static ConfiguredTableScalarFunctions Coalesce { get; } = new ConfiguredTableScalarFunctions("COALESCE"); + public static ConfiguredTableScalarFunctions Convert { get; } = new ConfiguredTableScalarFunctions("CONVERT"); + public static ConfiguredTableScalarFunctions CurrentDate { get; } = new ConfiguredTableScalarFunctions("CURRENT_DATE"); + public static ConfiguredTableScalarFunctions Dateadd { get; } = new ConfiguredTableScalarFunctions("DATEADD"); + public static ConfiguredTableScalarFunctions Extract { get; } = new ConfiguredTableScalarFunctions("EXTRACT"); + public static ConfiguredTableScalarFunctions Getdate { get; } = new ConfiguredTableScalarFunctions("GETDATE"); + public static ConfiguredTableScalarFunctions Substring { get; } = new ConfiguredTableScalarFunctions("SUBSTRING"); + public static ConfiguredTableScalarFunctions ToChar { get; } = new ConfiguredTableScalarFunctions("TO_CHAR"); + public static ConfiguredTableScalarFunctions ToDate { get; } = new ConfiguredTableScalarFunctions("TO_DATE"); + public static ConfiguredTableScalarFunctions ToNumber { get; } = new ConfiguredTableScalarFunctions("TO_NUMBER"); + public static ConfiguredTableScalarFunctions ToTimestamp { get; } = new ConfiguredTableScalarFunctions("TO_TIMESTAMP"); + public static ConfiguredTableScalarFunctions Trim { get; } = new ConfiguredTableScalarFunctions("TRIM"); public static bool operator ==(ConfiguredTableScalarFunctions left, ConfiguredTableScalarFunctions right) => left.Equals(right); public static bool operator !=(ConfiguredTableScalarFunctions left, ConfiguredTableScalarFunctions right) => !left.Equals(right); diff --git a/sdk/dotnet/CleanRooms/Inputs/ConfiguredTableAnalysisRuleCustomArgs.cs b/sdk/dotnet/CleanRooms/Inputs/ConfiguredTableAnalysisRuleCustomArgs.cs index 929926faff..f21276a9c9 100644 --- a/sdk/dotnet/CleanRooms/Inputs/ConfiguredTableAnalysisRuleCustomArgs.cs +++ b/sdk/dotnet/CleanRooms/Inputs/ConfiguredTableAnalysisRuleCustomArgs.cs @@ -28,6 +28,9 @@ public InputList AllowedAnalysisProviders set => _allowedAnalysisProviders = value; } + [Input("differentialPrivacy")] + public Input? DifferentialPrivacy { get; set; } + public ConfiguredTableAnalysisRuleCustomArgs() { } diff --git a/sdk/dotnet/CleanRooms/Inputs/ConfiguredTableDifferentialPrivacyArgs.cs b/sdk/dotnet/CleanRooms/Inputs/ConfiguredTableDifferentialPrivacyArgs.cs new file mode 100644 index 0000000000..020b2e51af --- /dev/null +++ b/sdk/dotnet/CleanRooms/Inputs/ConfiguredTableDifferentialPrivacyArgs.cs @@ -0,0 +1,28 @@ +// *** 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.CleanRooms.Inputs +{ + + public sealed class ConfiguredTableDifferentialPrivacyArgs : global::Pulumi.ResourceArgs + { + [Input("columns", required: true)] + private InputList? _columns; + public InputList Columns + { + get => _columns ?? (_columns = new InputList()); + set => _columns = value; + } + + public ConfiguredTableDifferentialPrivacyArgs() + { + } + public static new ConfiguredTableDifferentialPrivacyArgs Empty => new ConfiguredTableDifferentialPrivacyArgs(); + } +} diff --git a/sdk/dotnet/CleanRooms/Inputs/ConfiguredTableDifferentialPrivacyColumnArgs.cs b/sdk/dotnet/CleanRooms/Inputs/ConfiguredTableDifferentialPrivacyColumnArgs.cs new file mode 100644 index 0000000000..fdab65ae34 --- /dev/null +++ b/sdk/dotnet/CleanRooms/Inputs/ConfiguredTableDifferentialPrivacyColumnArgs.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.CleanRooms.Inputs +{ + + public sealed class ConfiguredTableDifferentialPrivacyColumnArgs : global::Pulumi.ResourceArgs + { + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + public ConfiguredTableDifferentialPrivacyColumnArgs() + { + } + public static new ConfiguredTableDifferentialPrivacyColumnArgs Empty => new ConfiguredTableDifferentialPrivacyColumnArgs(); + } +} diff --git a/sdk/dotnet/CleanRooms/Outputs/ConfiguredTableAnalysisRuleCustom.cs b/sdk/dotnet/CleanRooms/Outputs/ConfiguredTableAnalysisRuleCustom.cs index d1df087455..a3ebae15b9 100644 --- a/sdk/dotnet/CleanRooms/Outputs/ConfiguredTableAnalysisRuleCustom.cs +++ b/sdk/dotnet/CleanRooms/Outputs/ConfiguredTableAnalysisRuleCustom.cs @@ -15,15 +15,19 @@ public sealed class ConfiguredTableAnalysisRuleCustom { public readonly ImmutableArray AllowedAnalyses; public readonly ImmutableArray AllowedAnalysisProviders; + public readonly Outputs.ConfiguredTableDifferentialPrivacy? DifferentialPrivacy; [OutputConstructor] private ConfiguredTableAnalysisRuleCustom( ImmutableArray allowedAnalyses, - ImmutableArray allowedAnalysisProviders) + ImmutableArray allowedAnalysisProviders, + + Outputs.ConfiguredTableDifferentialPrivacy? differentialPrivacy) { AllowedAnalyses = allowedAnalyses; AllowedAnalysisProviders = allowedAnalysisProviders; + DifferentialPrivacy = differentialPrivacy; } } } diff --git a/sdk/dotnet/CleanRooms/Outputs/ConfiguredTableDifferentialPrivacy.cs b/sdk/dotnet/CleanRooms/Outputs/ConfiguredTableDifferentialPrivacy.cs new file mode 100644 index 0000000000..1daa1c9507 --- /dev/null +++ b/sdk/dotnet/CleanRooms/Outputs/ConfiguredTableDifferentialPrivacy.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.CleanRooms.Outputs +{ + + [OutputType] + public sealed class ConfiguredTableDifferentialPrivacy + { + public readonly ImmutableArray Columns; + + [OutputConstructor] + private ConfiguredTableDifferentialPrivacy(ImmutableArray columns) + { + Columns = columns; + } + } +} diff --git a/sdk/dotnet/CleanRooms/Outputs/ConfiguredTableDifferentialPrivacyColumn.cs b/sdk/dotnet/CleanRooms/Outputs/ConfiguredTableDifferentialPrivacyColumn.cs new file mode 100644 index 0000000000..bcd1bb2f2c --- /dev/null +++ b/sdk/dotnet/CleanRooms/Outputs/ConfiguredTableDifferentialPrivacyColumn.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.CleanRooms.Outputs +{ + + [OutputType] + public sealed class ConfiguredTableDifferentialPrivacyColumn + { + public readonly string Name; + + [OutputConstructor] + private ConfiguredTableDifferentialPrivacyColumn(string name) + { + Name = name; + } + } +} diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionCacheBehaviorArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionCacheBehaviorArgs.cs index 89e7e96648..3a1b9df87a 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionCacheBehaviorArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionCacheBehaviorArgs.cs @@ -15,7 +15,9 @@ namespace Pulumi.AwsNative.CloudFront.Inputs /// You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to serve objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin is never used. /// For the current quota (formerly known as limit) on the number of cache behaviors that you can add to a distribution, see [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) in the *Amazon CloudFront Developer Guide*. /// If you don't want to specify any cache behaviors, include only an empty ``CacheBehaviors`` element. Don't include an empty ``CacheBehavior`` element because this is invalid. - /// To delete all cache behaviors in an exist + /// To delete all cache behaviors in an existing distribution, update the distribution configuration and include only an empty ``CacheBehaviors`` element. + /// To add, change, or remove one or more cache behaviors, update the distribution configuration and specify all of the cache behaviors that you want to include in the updated distribution. + /// For more information about cache behaviors, see [Cache Behavior Settings](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesCacheBehavior) in the *Amazon CloudFront Developer Guide*. /// public sealed class DistributionCacheBehaviorArgs : global::Pulumi.ResourceArgs { @@ -67,7 +69,7 @@ public InputList CachedMethods /// /// This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - /// The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide + /// The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. /// [Input("defaultTtl")] public Input? DefaultTtl { get; set; } @@ -81,7 +83,9 @@ public InputList CachedMethods /// /// This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. /// If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - /// If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r + /// If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. + /// A ``CacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. + /// A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. /// [Input("forwardedValues")] public Input? ForwardedValues { get; set; } @@ -112,7 +116,7 @@ public InputList LambdaFunctio /// /// This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - /// The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. + /// The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. /// [Input("maxTtl")] public Input? MaxTtl { get; set; } @@ -120,7 +124,7 @@ public InputList LambdaFunctio /// /// This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. /// The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. - /// You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He + /// You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). /// [Input("minTtl")] public Input? MinTtl { get; set; } @@ -198,7 +202,7 @@ public InputList TrustedSigners /// + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). /// /// For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. - /// The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol + /// The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. /// [Input("viewerProtocolPolicy", required: true)] public Input ViewerProtocolPolicy { get; set; } = null!; diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionConfigArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionConfigArgs.cs index acd54ee181..2995e80c7e 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionConfigArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionConfigArgs.cs @@ -90,7 +90,7 @@ public InputList CustomErrorResponse /// If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element. /// To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element. /// To replace the default root object, update the distribution configuration and specify the new object. - /// For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/D + /// For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*. /// [Input("defaultRootObject")] public Input? DefaultRootObject { get; set; } @@ -111,7 +111,13 @@ public InputList CustomErrorResponse /// /// If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify ``true``. If you specify ``false``, CloudFront responds to IPv6 DNS requests with the DNS response code ``NOERROR`` and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution. - /// In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/Devel + /// In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html) in the *Amazon CloudFront Developer Guide*. + /// If you're using an R53AWSIntlong alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true: + /// + You enable IPv6 for the distribution + /// + You're using alternate domain names in the URLs for your objects + /// + /// For more information, see [Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html) in the *Developer Guide*. + /// If you created a CNAME resource record set, either with R53AWSIntlong or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request. /// [Input("ipv6Enabled")] public Input? Ipv6Enabled { get; set; } @@ -172,7 +178,7 @@ public InputList Origins /// /// A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example ``arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a``. To specify a web ACL created using WAF Classic, use the ACL ID, for example ``473e64fd-f30b-4765-81a0-62ad96dd167a``. - /// WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest + /// WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html). /// [Input("webAclId")] public Input? WebAclId { get; set; } diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionCookiesArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionCookiesArgs.cs index 6134310588..555afd3f62 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionCookiesArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionCookiesArgs.cs @@ -14,7 +14,7 @@ namespace Pulumi.AwsNative.CloudFront.Inputs /// This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. /// If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. /// If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - /// A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C + /// A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*. /// public sealed class DistributionCookiesArgs : global::Pulumi.ResourceArgs { @@ -23,7 +23,7 @@ public sealed class DistributionCookiesArgs : global::Pulumi.ResourceArgs /// If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. /// If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. /// Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the ``WhitelistedNames`` complex type. - /// Amazon S3 doesn't process cookies. When the cache behavior is forw + /// Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify none for the ``Forward`` element. /// [Input("forward", required: true)] public Input Forward { get; set; } = null!; @@ -35,7 +35,9 @@ public sealed class DistributionCookiesArgs : global::Pulumi.ResourceArgs /// This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. /// If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. /// If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - /// Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward se + /// Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward selected cookies, the names of those cookies. + /// If you specify ``all`` or ``none`` for the value of ``Forward``, omit ``WhitelistedNames``. If you change the value of ``Forward`` from ``whitelist`` to ``all`` or ``none`` and you don't delete the ``WhitelistedNames`` element and its child elements, CloudFront deletes them automatically. + /// For the current limit on the number of cookie names that you can whitelist for each cache behavior, see [CloudFront Limits](https://docs.aws.amazon.com/general/latest/gr/xrefaws_service_limits.html#limits_cloudfront) in the *General Reference*. /// public InputList WhitelistedNames { diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionCustomErrorResponseArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionCustomErrorResponseArgs.cs index c98531cd1c..bf41bc513e 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionCustomErrorResponseArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionCustomErrorResponseArgs.cs @@ -49,7 +49,7 @@ public sealed class DistributionCustomErrorResponseArgs : global::Pulumi.Resourc /// + The value of ``TargetOriginId`` specifies the value of the ``ID`` element for the origin that contains your custom error pages. /// /// If you specify a value for ``ResponsePagePath``, you must also specify a value for ``ResponseCode``. - /// We recommend + /// We recommend that you store custom error pages in an Amazon S3 bucket. If you store custom error pages on an HTTP server and the server starts to return 5xx errors, CloudFront can't get the files that you want to return to viewers because the origin server is unavailable. /// [Input("responsePagePath")] public Input? ResponsePagePath { get; set; } diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionDefaultCacheBehaviorArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionDefaultCacheBehaviorArgs.cs index 843d9d7836..5aaa9c90e1 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionDefaultCacheBehaviorArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionDefaultCacheBehaviorArgs.cs @@ -63,7 +63,7 @@ public InputList CachedMethods /// /// This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - /// The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide + /// The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. /// [Input("defaultTtl")] public Input? DefaultTtl { get; set; } @@ -77,7 +77,9 @@ public InputList CachedMethods /// /// This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. /// If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - /// If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r + /// If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. + /// A ``DefaultCacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. + /// A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. /// [Input("forwardedValues")] public Input? ForwardedValues { get; set; } @@ -108,7 +110,7 @@ public InputList LambdaFunctio /// /// This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - /// The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. + /// The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. /// [Input("maxTtl")] public Input? MaxTtl { get; set; } @@ -116,7 +118,7 @@ public InputList LambdaFunctio /// /// This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. /// The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. - /// You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He + /// You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). /// [Input("minTtl")] public Input? MinTtl { get; set; } @@ -185,7 +187,7 @@ public InputList TrustedSigners /// + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). /// /// For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. - /// The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol + /// The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. /// [Input("viewerProtocolPolicy", required: true)] public Input ViewerProtocolPolicy { get; set; } = null!; diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionForwardedValuesArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionForwardedValuesArgs.cs index 7de0ad20e6..8e32879b30 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionForwardedValuesArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionForwardedValuesArgs.cs @@ -22,7 +22,7 @@ public sealed class DistributionForwardedValuesArgs : global::Pulumi.ResourceArg /// This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. /// If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. /// If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - /// A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C + /// A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*. /// [Input("cookies")] public Input? Cookies { get; set; } @@ -34,7 +34,8 @@ public sealed class DistributionForwardedValuesArgs : global::Pulumi.ResourceArg /// This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. /// If you want to include headers in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. /// If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - /// A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versio + /// A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versions of a specified object that is based on the header values in viewer requests. + /// For more information, see [Caching Content Based on Request Headers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html) in the *Amazon CloudFront Developer Guide*. /// public InputList Headers { @@ -46,7 +47,11 @@ public InputList Headers /// This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. /// If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. /// If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - /// Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of + /// Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of ``QueryString`` and on the values that you specify for ``QueryStringCacheKeys``, if any: + /// If you specify true for ``QueryString`` and you don't specify any values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin and caches based on all query string parameters. Depending on how many query string parameters and values you have, this can adversely affect performance because CloudFront must forward more requests to the origin. + /// If you specify true for ``QueryString`` and you specify one or more values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin, but it only caches based on the query string parameters that you specify. + /// If you specify false for ``QueryString``, CloudFront doesn't forward any query string parameters to the origin, and doesn't cache based on query string parameters. + /// For more information, see [Configuring CloudFront to Cache Based on Query String Parameters](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html) in the *Amazon CloudFront Developer Guide*. /// [Input("queryString", required: true)] public Input QueryString { get; set; } = null!; diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionS3OriginConfigArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionS3OriginConfigArgs.cs index 86bf849ddc..258b90b48b 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionS3OriginConfigArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionS3OriginConfigArgs.cs @@ -22,7 +22,7 @@ public sealed class DistributionS3OriginConfigArgs : global::Pulumi.ResourceArgs /// If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element. /// To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element. /// To replace the origin access identity, update the distribution configuration and specify the new origin access identity. - /// For more information about the origin access identity, see [Serving Private Content through CloudFront](https://d + /// For more information about the origin access identity, see [Serving Private Content through CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*. /// [Input("originAccessIdentity")] public Input? OriginAccessIdentity { get; set; } diff --git a/sdk/dotnet/CloudFront/Inputs/DistributionViewerCertificateArgs.cs b/sdk/dotnet/CloudFront/Inputs/DistributionViewerCertificateArgs.cs index beacdf889a..4c59249f48 100644 --- a/sdk/dotnet/CloudFront/Inputs/DistributionViewerCertificateArgs.cs +++ b/sdk/dotnet/CloudFront/Inputs/DistributionViewerCertificateArgs.cs @@ -15,7 +15,17 @@ namespace Pulumi.AwsNative.CloudFront.Inputs /// If the distribution doesn't use ``Aliases`` (also known as alternate domain names or CNAMEs)—that is, if the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``—set ``CloudFrontDefaultCertificate`` to ``true`` and leave all other fields empty. /// If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), use the fields in this type to specify the following settings: /// + Which viewers the distribution accepts HTTPS connections from: only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication) (recommended), or all viewers including those that don't support SNI. - /// + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field n + /// + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + /// + To accept HTTPS connections from all viewers, including those that don't support SNI, set ``SSLSupportMethod`` to ``vip``. This is not recommended, and results in additional monthly charges from CloudFront. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + /// + /// + The minimum SSL/TLS protocol version that the distribution can use to communicate with viewers. To specify a minimum version, choose a value for ``MinimumProtocolVersion``. For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) in the *Amazon CloudFront Developer Guide*. + /// + The location of the SSL/TLS certificate, [(ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) (recommended) or [(IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html). You specify the location by setting a value in one of the following fields (not both): + /// + ``ACMCertificateArn`` (In CloudFormation, this field name is ``AcmCertificateArn``. Note the different capitalization.) + /// + ``IAMCertificateId`` (In CloudFormation, this field name is ``IamCertificateId``. Note the different capitalization.) + /// + /// + /// All distributions support HTTPS connections from viewers. To require viewers to use HTTPS only, or to redirect them from HTTP to HTTPS, use ``ViewerProtocolPolicy`` in the ``CacheBehavior`` or ``DefaultCacheBehavior``. To specify how CloudFront should use SSL/TLS to communicate with your custom origin, use ``CustomOriginConfig``. + /// For more information, see [Using HTTPS with CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html) and [Using Alternate Domain Names and HTTPS](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-alternate-domain-names.html) in the *Amazon CloudFront Developer Guide*. /// public sealed class DistributionViewerCertificateArgs : global::Pulumi.ResourceArgs { @@ -52,7 +62,8 @@ public sealed class DistributionViewerCertificateArgs : global::Pulumi.ResourceA /// /// For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*. /// On the CloudFront console, this setting is called *Security Policy*. - /// When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-onl + /// When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-only``), you must specify ``TLSv1`` or higher. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + /// If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` (you set ``CloudFrontDefaultCertificate`` to ``true``), CloudFront automatically sets the security policy to ``TLSv1`` regardless of the value that you set here. /// [Input("minimumProtocolVersion")] public Input? MinimumProtocolVersion { get; set; } @@ -63,6 +74,8 @@ public sealed class DistributionViewerCertificateArgs : global::Pulumi.ResourceA /// + ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication). This is recommended. Most browsers and clients support SNI. /// + ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront. /// + ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [Center](https://docs.aws.amazon.com/support/home). + /// + /// If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``, don't set a value for this field. /// [Input("sslSupportMethod")] public Input? SslSupportMethod { get; set; } diff --git a/sdk/dotnet/CloudFront/Outputs/DistributionCacheBehavior.cs b/sdk/dotnet/CloudFront/Outputs/DistributionCacheBehavior.cs index 53f0feb874..bcf199c863 100644 --- a/sdk/dotnet/CloudFront/Outputs/DistributionCacheBehavior.cs +++ b/sdk/dotnet/CloudFront/Outputs/DistributionCacheBehavior.cs @@ -15,7 +15,9 @@ namespace Pulumi.AwsNative.CloudFront.Outputs /// You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to serve objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin is never used. /// For the current quota (formerly known as limit) on the number of cache behaviors that you can add to a distribution, see [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) in the *Amazon CloudFront Developer Guide*. /// If you don't want to specify any cache behaviors, include only an empty ``CacheBehaviors`` element. Don't include an empty ``CacheBehavior`` element because this is invalid. - /// To delete all cache behaviors in an exist + /// To delete all cache behaviors in an existing distribution, update the distribution configuration and include only an empty ``CacheBehaviors`` element. + /// To add, change, or remove one or more cache behaviors, update the distribution configuration and specify all of the cache behaviors that you want to include in the updated distribution. + /// For more information about cache behaviors, see [Cache Behavior Settings](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesCacheBehavior) in the *Amazon CloudFront Developer Guide*. /// [OutputType] public sealed class DistributionCacheBehavior @@ -48,7 +50,7 @@ public sealed class DistributionCacheBehavior public readonly bool? Compress; /// /// This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - /// The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide + /// The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. /// public readonly double? DefaultTtl; /// @@ -58,7 +60,9 @@ public sealed class DistributionCacheBehavior /// /// This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. /// If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - /// If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r + /// If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. + /// A ``CacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. + /// A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. /// public readonly Outputs.DistributionForwardedValues? ForwardedValues; /// @@ -71,13 +75,13 @@ public sealed class DistributionCacheBehavior public readonly ImmutableArray LambdaFunctionAssociations; /// /// This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - /// The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. + /// The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. /// public readonly double? MaxTtl; /// /// This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. /// The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. - /// You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He + /// You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). /// public readonly double? MinTtl; /// @@ -125,7 +129,7 @@ public sealed class DistributionCacheBehavior /// + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). /// /// For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. - /// The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol + /// The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. /// public readonly string ViewerProtocolPolicy; diff --git a/sdk/dotnet/CloudFront/Outputs/DistributionConfig.cs b/sdk/dotnet/CloudFront/Outputs/DistributionConfig.cs index 7f0cf4f7f4..d80c009216 100644 --- a/sdk/dotnet/CloudFront/Outputs/DistributionConfig.cs +++ b/sdk/dotnet/CloudFront/Outputs/DistributionConfig.cs @@ -52,7 +52,7 @@ public sealed class DistributionConfig /// If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element. /// To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element. /// To replace the default root object, update the distribution configuration and specify the new object. - /// For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/D + /// For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*. /// public readonly string? DefaultRootObject; /// @@ -67,7 +67,13 @@ public sealed class DistributionConfig public readonly string? HttpVersion; /// /// If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify ``true``. If you specify ``false``, CloudFront responds to IPv6 DNS requests with the DNS response code ``NOERROR`` and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution. - /// In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/Devel + /// In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html) in the *Amazon CloudFront Developer Guide*. + /// If you're using an R53AWSIntlong alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true: + /// + You enable IPv6 for the distribution + /// + You're using alternate domain names in the URLs for your objects + /// + /// For more information, see [Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html) in the *Developer Guide*. + /// If you created a CNAME resource record set, either with R53AWSIntlong or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request. /// public readonly bool? Ipv6Enabled; /// @@ -104,7 +110,7 @@ public sealed class DistributionConfig public readonly Outputs.DistributionViewerCertificate? ViewerCertificate; /// /// A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example ``arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a``. To specify a web ACL created using WAF Classic, use the ACL ID, for example ``473e64fd-f30b-4765-81a0-62ad96dd167a``. - /// WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest + /// WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html). /// public readonly string? WebAclId; diff --git a/sdk/dotnet/CloudFront/Outputs/DistributionCookies.cs b/sdk/dotnet/CloudFront/Outputs/DistributionCookies.cs index 07778445cd..4749ecf87a 100644 --- a/sdk/dotnet/CloudFront/Outputs/DistributionCookies.cs +++ b/sdk/dotnet/CloudFront/Outputs/DistributionCookies.cs @@ -14,7 +14,7 @@ namespace Pulumi.AwsNative.CloudFront.Outputs /// This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. /// If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. /// If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - /// A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C + /// A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*. /// [OutputType] public sealed class DistributionCookies @@ -24,14 +24,16 @@ public sealed class DistributionCookies /// If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. /// If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. /// Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the ``WhitelistedNames`` complex type. - /// Amazon S3 doesn't process cookies. When the cache behavior is forw + /// Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify none for the ``Forward`` element. /// public readonly string Forward; /// /// This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. /// If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. /// If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - /// Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward se + /// Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward selected cookies, the names of those cookies. + /// If you specify ``all`` or ``none`` for the value of ``Forward``, omit ``WhitelistedNames``. If you change the value of ``Forward`` from ``whitelist`` to ``all`` or ``none`` and you don't delete the ``WhitelistedNames`` element and its child elements, CloudFront deletes them automatically. + /// For the current limit on the number of cookie names that you can whitelist for each cache behavior, see [CloudFront Limits](https://docs.aws.amazon.com/general/latest/gr/xrefaws_service_limits.html#limits_cloudfront) in the *General Reference*. /// public readonly ImmutableArray WhitelistedNames; diff --git a/sdk/dotnet/CloudFront/Outputs/DistributionCustomErrorResponse.cs b/sdk/dotnet/CloudFront/Outputs/DistributionCustomErrorResponse.cs index 26874ab42a..32a2bc2917 100644 --- a/sdk/dotnet/CloudFront/Outputs/DistributionCustomErrorResponse.cs +++ b/sdk/dotnet/CloudFront/Outputs/DistributionCustomErrorResponse.cs @@ -44,7 +44,7 @@ public sealed class DistributionCustomErrorResponse /// + The value of ``TargetOriginId`` specifies the value of the ``ID`` element for the origin that contains your custom error pages. /// /// If you specify a value for ``ResponsePagePath``, you must also specify a value for ``ResponseCode``. - /// We recommend + /// We recommend that you store custom error pages in an Amazon S3 bucket. If you store custom error pages on an HTTP server and the server starts to return 5xx errors, CloudFront can't get the files that you want to return to viewers because the origin server is unavailable. /// public readonly string? ResponsePagePath; diff --git a/sdk/dotnet/CloudFront/Outputs/DistributionDefaultCacheBehavior.cs b/sdk/dotnet/CloudFront/Outputs/DistributionDefaultCacheBehavior.cs index e8c051ea4b..4c38964420 100644 --- a/sdk/dotnet/CloudFront/Outputs/DistributionDefaultCacheBehavior.cs +++ b/sdk/dotnet/CloudFront/Outputs/DistributionDefaultCacheBehavior.cs @@ -44,7 +44,7 @@ public sealed class DistributionDefaultCacheBehavior public readonly bool? Compress; /// /// This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - /// The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide + /// The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. /// public readonly double? DefaultTtl; /// @@ -54,7 +54,9 @@ public sealed class DistributionDefaultCacheBehavior /// /// This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. /// If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - /// If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r + /// If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. + /// A ``DefaultCacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. + /// A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. /// public readonly Outputs.DistributionForwardedValues? ForwardedValues; /// @@ -67,13 +69,13 @@ public sealed class DistributionDefaultCacheBehavior public readonly ImmutableArray LambdaFunctionAssociations; /// /// This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - /// The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. + /// The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. /// public readonly double? MaxTtl; /// /// This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. /// The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. - /// You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He + /// You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). /// public readonly double? MinTtl; /// @@ -114,7 +116,7 @@ public sealed class DistributionDefaultCacheBehavior /// + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). /// /// For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. - /// The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol + /// The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. /// public readonly string ViewerProtocolPolicy; diff --git a/sdk/dotnet/CloudFront/Outputs/DistributionForwardedValues.cs b/sdk/dotnet/CloudFront/Outputs/DistributionForwardedValues.cs index 058f9b09cb..15185750ae 100644 --- a/sdk/dotnet/CloudFront/Outputs/DistributionForwardedValues.cs +++ b/sdk/dotnet/CloudFront/Outputs/DistributionForwardedValues.cs @@ -23,21 +23,26 @@ public sealed class DistributionForwardedValues /// This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. /// If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. /// If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - /// A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C + /// A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*. /// public readonly Outputs.DistributionCookies? Cookies; /// /// This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. /// If you want to include headers in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. /// If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - /// A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versio + /// A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versions of a specified object that is based on the header values in viewer requests. + /// For more information, see [Caching Content Based on Request Headers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html) in the *Amazon CloudFront Developer Guide*. /// public readonly ImmutableArray Headers; /// /// This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. /// If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. /// If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - /// Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of + /// Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of ``QueryString`` and on the values that you specify for ``QueryStringCacheKeys``, if any: + /// If you specify true for ``QueryString`` and you don't specify any values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin and caches based on all query string parameters. Depending on how many query string parameters and values you have, this can adversely affect performance because CloudFront must forward more requests to the origin. + /// If you specify true for ``QueryString`` and you specify one or more values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin, but it only caches based on the query string parameters that you specify. + /// If you specify false for ``QueryString``, CloudFront doesn't forward any query string parameters to the origin, and doesn't cache based on query string parameters. + /// For more information, see [Configuring CloudFront to Cache Based on Query String Parameters](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html) in the *Amazon CloudFront Developer Guide*. /// public readonly bool QueryString; /// diff --git a/sdk/dotnet/CloudFront/Outputs/DistributionS3OriginConfig.cs b/sdk/dotnet/CloudFront/Outputs/DistributionS3OriginConfig.cs index e427267558..cd7bb82c07 100644 --- a/sdk/dotnet/CloudFront/Outputs/DistributionS3OriginConfig.cs +++ b/sdk/dotnet/CloudFront/Outputs/DistributionS3OriginConfig.cs @@ -23,7 +23,7 @@ public sealed class DistributionS3OriginConfig /// If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element. /// To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element. /// To replace the origin access identity, update the distribution configuration and specify the new origin access identity. - /// For more information about the origin access identity, see [Serving Private Content through CloudFront](https://d + /// For more information about the origin access identity, see [Serving Private Content through CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*. /// public readonly string? OriginAccessIdentity; diff --git a/sdk/dotnet/CloudFront/Outputs/DistributionViewerCertificate.cs b/sdk/dotnet/CloudFront/Outputs/DistributionViewerCertificate.cs index 998fb09653..b1fae8b9c9 100644 --- a/sdk/dotnet/CloudFront/Outputs/DistributionViewerCertificate.cs +++ b/sdk/dotnet/CloudFront/Outputs/DistributionViewerCertificate.cs @@ -15,7 +15,17 @@ namespace Pulumi.AwsNative.CloudFront.Outputs /// If the distribution doesn't use ``Aliases`` (also known as alternate domain names or CNAMEs)—that is, if the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``—set ``CloudFrontDefaultCertificate`` to ``true`` and leave all other fields empty. /// If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), use the fields in this type to specify the following settings: /// + Which viewers the distribution accepts HTTPS connections from: only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication) (recommended), or all viewers including those that don't support SNI. - /// + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field n + /// + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + /// + To accept HTTPS connections from all viewers, including those that don't support SNI, set ``SSLSupportMethod`` to ``vip``. This is not recommended, and results in additional monthly charges from CloudFront. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + /// + /// + The minimum SSL/TLS protocol version that the distribution can use to communicate with viewers. To specify a minimum version, choose a value for ``MinimumProtocolVersion``. For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) in the *Amazon CloudFront Developer Guide*. + /// + The location of the SSL/TLS certificate, [(ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) (recommended) or [(IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html). You specify the location by setting a value in one of the following fields (not both): + /// + ``ACMCertificateArn`` (In CloudFormation, this field name is ``AcmCertificateArn``. Note the different capitalization.) + /// + ``IAMCertificateId`` (In CloudFormation, this field name is ``IamCertificateId``. Note the different capitalization.) + /// + /// + /// All distributions support HTTPS connections from viewers. To require viewers to use HTTPS only, or to redirect them from HTTP to HTTPS, use ``ViewerProtocolPolicy`` in the ``CacheBehavior`` or ``DefaultCacheBehavior``. To specify how CloudFront should use SSL/TLS to communicate with your custom origin, use ``CustomOriginConfig``. + /// For more information, see [Using HTTPS with CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html) and [Using Alternate Domain Names and HTTPS](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-alternate-domain-names.html) in the *Amazon CloudFront Developer Guide*. /// [OutputType] public sealed class DistributionViewerCertificate @@ -47,7 +57,8 @@ public sealed class DistributionViewerCertificate /// /// For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*. /// On the CloudFront console, this setting is called *Security Policy*. - /// When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-onl + /// When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-only``), you must specify ``TLSv1`` or higher. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + /// If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` (you set ``CloudFrontDefaultCertificate`` to ``true``), CloudFront automatically sets the security policy to ``TLSv1`` regardless of the value that you set here. /// public readonly string? MinimumProtocolVersion; /// @@ -56,6 +67,8 @@ public sealed class DistributionViewerCertificate /// + ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication). This is recommended. Most browsers and clients support SNI. /// + ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront. /// + ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [Center](https://docs.aws.amazon.com/support/home). + /// + /// If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``, don't set a value for this field. /// public readonly string? SslSupportMethod; diff --git a/sdk/dotnet/CodeArtifact/Enums.cs b/sdk/dotnet/CodeArtifact/Enums.cs new file mode 100644 index 0000000000..14a3c5e5da --- /dev/null +++ b/sdk/dotnet/CodeArtifact/Enums.cs @@ -0,0 +1,39 @@ +// *** 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.CodeArtifact +{ + [EnumType] + public readonly struct PackageGroupRestrictionTypeRestrictionMode : IEquatable + { + private readonly string _value; + + private PackageGroupRestrictionTypeRestrictionMode(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static PackageGroupRestrictionTypeRestrictionMode Allow { get; } = new PackageGroupRestrictionTypeRestrictionMode("ALLOW"); + public static PackageGroupRestrictionTypeRestrictionMode Block { get; } = new PackageGroupRestrictionTypeRestrictionMode("BLOCK"); + public static PackageGroupRestrictionTypeRestrictionMode AllowSpecificRepositories { get; } = new PackageGroupRestrictionTypeRestrictionMode("ALLOW_SPECIFIC_REPOSITORIES"); + public static PackageGroupRestrictionTypeRestrictionMode Inherit { get; } = new PackageGroupRestrictionTypeRestrictionMode("INHERIT"); + + public static bool operator ==(PackageGroupRestrictionTypeRestrictionMode left, PackageGroupRestrictionTypeRestrictionMode right) => left.Equals(right); + public static bool operator !=(PackageGroupRestrictionTypeRestrictionMode left, PackageGroupRestrictionTypeRestrictionMode right) => !left.Equals(right); + + public static explicit operator string(PackageGroupRestrictionTypeRestrictionMode value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is PackageGroupRestrictionTypeRestrictionMode other && Equals(other); + public bool Equals(PackageGroupRestrictionTypeRestrictionMode 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/CodeArtifact/GetPackageGroup.cs b/sdk/dotnet/CodeArtifact/GetPackageGroup.cs new file mode 100644 index 0000000000..adc795311b --- /dev/null +++ b/sdk/dotnet/CodeArtifact/GetPackageGroup.cs @@ -0,0 +1,107 @@ +// *** 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.CodeArtifact +{ + public static class GetPackageGroup + { + /// + /// The resource schema to create a CodeArtifact package group. + /// + public static Task InvokeAsync(GetPackageGroupArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:codeartifact:getPackageGroup", args ?? new GetPackageGroupArgs(), options.WithDefaults()); + + /// + /// The resource schema to create a CodeArtifact package group. + /// + public static Output Invoke(GetPackageGroupInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:codeartifact:getPackageGroup", args ?? new GetPackageGroupInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetPackageGroupArgs : global::Pulumi.InvokeArgs + { + /// + /// The ARN of the package group. + /// + [Input("arn", required: true)] + public string Arn { get; set; } = null!; + + public GetPackageGroupArgs() + { + } + public static new GetPackageGroupArgs Empty => new GetPackageGroupArgs(); + } + + public sealed class GetPackageGroupInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The ARN of the package group. + /// + [Input("arn", required: true)] + public Input Arn { get; set; } = null!; + + public GetPackageGroupInvokeArgs() + { + } + public static new GetPackageGroupInvokeArgs Empty => new GetPackageGroupInvokeArgs(); + } + + + [OutputType] + public sealed class GetPackageGroupResult + { + /// + /// The ARN of the package group. + /// + public readonly string? Arn; + /// + /// The contact info of the package group. + /// + public readonly string? ContactInfo; + /// + /// The text description of the package group. + /// + public readonly string? Description; + /// + /// The 12-digit account ID of the AWS account that owns the domain. + /// + public readonly string? DomainOwner; + /// + /// The package origin configuration of the package group. + /// + public readonly Outputs.PackageGroupOriginConfiguration? OriginConfiguration; + /// + /// An array of key-value pairs to apply to the package group. + /// + public readonly ImmutableArray Tags; + + [OutputConstructor] + private GetPackageGroupResult( + string? arn, + + string? contactInfo, + + string? description, + + string? domainOwner, + + Outputs.PackageGroupOriginConfiguration? originConfiguration, + + ImmutableArray tags) + { + Arn = arn; + ContactInfo = contactInfo; + Description = description; + DomainOwner = domainOwner; + OriginConfiguration = originConfiguration; + Tags = tags; + } + } +} diff --git a/sdk/dotnet/CodeArtifact/Inputs/PackageGroupOriginConfigurationArgs.cs b/sdk/dotnet/CodeArtifact/Inputs/PackageGroupOriginConfigurationArgs.cs new file mode 100644 index 0000000000..475a545428 --- /dev/null +++ b/sdk/dotnet/CodeArtifact/Inputs/PackageGroupOriginConfigurationArgs.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.CodeArtifact.Inputs +{ + + public sealed class PackageGroupOriginConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The origin configuration that is applied to the package group. + /// + [Input("restrictions", required: true)] + public Input Restrictions { get; set; } = null!; + + public PackageGroupOriginConfigurationArgs() + { + } + public static new PackageGroupOriginConfigurationArgs Empty => new PackageGroupOriginConfigurationArgs(); + } +} diff --git a/sdk/dotnet/CodeArtifact/Inputs/PackageGroupRestrictionTypeArgs.cs b/sdk/dotnet/CodeArtifact/Inputs/PackageGroupRestrictionTypeArgs.cs new file mode 100644 index 0000000000..68f5cdfd2c --- /dev/null +++ b/sdk/dotnet/CodeArtifact/Inputs/PackageGroupRestrictionTypeArgs.cs @@ -0,0 +1,31 @@ +// *** 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.CodeArtifact.Inputs +{ + + public sealed class PackageGroupRestrictionTypeArgs : global::Pulumi.ResourceArgs + { + [Input("repositories")] + private InputList? _repositories; + public InputList Repositories + { + get => _repositories ?? (_repositories = new InputList()); + set => _repositories = value; + } + + [Input("restrictionMode", required: true)] + public Input RestrictionMode { get; set; } = null!; + + public PackageGroupRestrictionTypeArgs() + { + } + public static new PackageGroupRestrictionTypeArgs Empty => new PackageGroupRestrictionTypeArgs(); + } +} diff --git a/sdk/dotnet/CodeArtifact/Inputs/PackageGroupRestrictionsArgs.cs b/sdk/dotnet/CodeArtifact/Inputs/PackageGroupRestrictionsArgs.cs new file mode 100644 index 0000000000..e0bdf0a318 --- /dev/null +++ b/sdk/dotnet/CodeArtifact/Inputs/PackageGroupRestrictionsArgs.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.CodeArtifact.Inputs +{ + + public sealed class PackageGroupRestrictionsArgs : global::Pulumi.ResourceArgs + { + /// + /// The external upstream restriction determines if new package versions can be ingested or retained from external connections. + /// + [Input("externalUpstream")] + public Input? ExternalUpstream { get; set; } + + /// + /// The internal upstream restriction determines if new package versions can be ingested or retained from upstream repositories. + /// + [Input("internalUpstream")] + public Input? InternalUpstream { get; set; } + + /// + /// The publish restriction determines if new package versions can be published. + /// + [Input("publish")] + public Input? Publish { get; set; } + + public PackageGroupRestrictionsArgs() + { + } + public static new PackageGroupRestrictionsArgs Empty => new PackageGroupRestrictionsArgs(); + } +} diff --git a/sdk/dotnet/CodeArtifact/Outputs/PackageGroupOriginConfiguration.cs b/sdk/dotnet/CodeArtifact/Outputs/PackageGroupOriginConfiguration.cs new file mode 100644 index 0000000000..7ff16a981e --- /dev/null +++ b/sdk/dotnet/CodeArtifact/Outputs/PackageGroupOriginConfiguration.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.CodeArtifact.Outputs +{ + + [OutputType] + public sealed class PackageGroupOriginConfiguration + { + /// + /// The origin configuration that is applied to the package group. + /// + public readonly Outputs.PackageGroupRestrictions Restrictions; + + [OutputConstructor] + private PackageGroupOriginConfiguration(Outputs.PackageGroupRestrictions restrictions) + { + Restrictions = restrictions; + } + } +} diff --git a/sdk/dotnet/CodeArtifact/Outputs/PackageGroupRestrictionType.cs b/sdk/dotnet/CodeArtifact/Outputs/PackageGroupRestrictionType.cs new file mode 100644 index 0000000000..d5c5d4b873 --- /dev/null +++ b/sdk/dotnet/CodeArtifact/Outputs/PackageGroupRestrictionType.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.CodeArtifact.Outputs +{ + + [OutputType] + public sealed class PackageGroupRestrictionType + { + public readonly ImmutableArray Repositories; + public readonly Pulumi.AwsNative.CodeArtifact.PackageGroupRestrictionTypeRestrictionMode RestrictionMode; + + [OutputConstructor] + private PackageGroupRestrictionType( + ImmutableArray repositories, + + Pulumi.AwsNative.CodeArtifact.PackageGroupRestrictionTypeRestrictionMode restrictionMode) + { + Repositories = repositories; + RestrictionMode = restrictionMode; + } + } +} diff --git a/sdk/dotnet/CodeArtifact/Outputs/PackageGroupRestrictions.cs b/sdk/dotnet/CodeArtifact/Outputs/PackageGroupRestrictions.cs new file mode 100644 index 0000000000..72e57cdab3 --- /dev/null +++ b/sdk/dotnet/CodeArtifact/Outputs/PackageGroupRestrictions.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.CodeArtifact.Outputs +{ + + [OutputType] + public sealed class PackageGroupRestrictions + { + /// + /// The external upstream restriction determines if new package versions can be ingested or retained from external connections. + /// + public readonly Outputs.PackageGroupRestrictionType? ExternalUpstream; + /// + /// The internal upstream restriction determines if new package versions can be ingested or retained from upstream repositories. + /// + public readonly Outputs.PackageGroupRestrictionType? InternalUpstream; + /// + /// The publish restriction determines if new package versions can be published. + /// + public readonly Outputs.PackageGroupRestrictionType? Publish; + + [OutputConstructor] + private PackageGroupRestrictions( + Outputs.PackageGroupRestrictionType? externalUpstream, + + Outputs.PackageGroupRestrictionType? internalUpstream, + + Outputs.PackageGroupRestrictionType? publish) + { + ExternalUpstream = externalUpstream; + InternalUpstream = internalUpstream; + Publish = publish; + } + } +} diff --git a/sdk/dotnet/CodeArtifact/PackageGroup.cs b/sdk/dotnet/CodeArtifact/PackageGroup.cs new file mode 100644 index 0000000000..99f0889647 --- /dev/null +++ b/sdk/dotnet/CodeArtifact/PackageGroup.cs @@ -0,0 +1,169 @@ +// *** 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.CodeArtifact +{ + /// + /// The resource schema to create a CodeArtifact package group. + /// + [AwsNativeResourceType("aws-native:codeartifact:PackageGroup")] + public partial class PackageGroup : global::Pulumi.CustomResource + { + /// + /// The ARN of the package group. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// The contact info of the package group. + /// + [Output("contactInfo")] + public Output ContactInfo { get; private set; } = null!; + + /// + /// The text description of the package group. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// The name of the domain that contains the package group. + /// + [Output("domainName")] + public Output DomainName { get; private set; } = null!; + + /// + /// The 12-digit account ID of the AWS account that owns the domain. + /// + [Output("domainOwner")] + public Output DomainOwner { get; private set; } = null!; + + /// + /// The package origin configuration of the package group. + /// + [Output("originConfiguration")] + public Output OriginConfiguration { get; private set; } = null!; + + /// + /// The package group pattern that is used to gather packages. + /// + [Output("pattern")] + public Output Pattern { get; private set; } = null!; + + /// + /// An array of key-value pairs to apply to the package group. + /// + [Output("tags")] + public Output> Tags { get; private set; } = null!; + + + /// + /// Create a PackageGroup 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 PackageGroup(string name, PackageGroupArgs args, CustomResourceOptions? options = null) + : base("aws-native:codeartifact:PackageGroup", name, args ?? new PackageGroupArgs(), MakeResourceOptions(options, "")) + { + } + + private PackageGroup(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:codeartifact:PackageGroup", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "domainName", + "pattern", + }, + }; + 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 PackageGroup 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 PackageGroup Get(string name, Input id, CustomResourceOptions? options = null) + { + return new PackageGroup(name, id, options); + } + } + + public sealed class PackageGroupArgs : global::Pulumi.ResourceArgs + { + /// + /// The contact info of the package group. + /// + [Input("contactInfo")] + public Input? ContactInfo { get; set; } + + /// + /// The text description of the package group. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The name of the domain that contains the package group. + /// + [Input("domainName", required: true)] + public Input DomainName { get; set; } = null!; + + /// + /// The 12-digit account ID of the AWS account that owns the domain. + /// + [Input("domainOwner")] + public Input? DomainOwner { get; set; } + + /// + /// The package origin configuration of the package group. + /// + [Input("originConfiguration")] + public Input? OriginConfiguration { get; set; } + + /// + /// The package group pattern that is used to gather packages. + /// + [Input("pattern", required: true)] + public Input Pattern { get; set; } = null!; + + [Input("tags")] + private InputList? _tags; + + /// + /// An array of key-value pairs to apply to the package group. + /// + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + + public PackageGroupArgs() + { + } + public static new PackageGroupArgs Empty => new PackageGroupArgs(); + } +} diff --git a/sdk/dotnet/CodeConnections/Connection.cs b/sdk/dotnet/CodeConnections/Connection.cs new file mode 100644 index 0000000000..4dbcf71346 --- /dev/null +++ b/sdk/dotnet/CodeConnections/Connection.cs @@ -0,0 +1,146 @@ +// *** 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.CodeConnections +{ + /// + /// Schema for AWS::CodeConnections::Connection resource which can be used to connect external source providers with other AWS services (i.e. AWS CodePipeline) + /// + [AwsNativeResourceType("aws-native:codeconnections:Connection")] + public partial class Connection : global::Pulumi.CustomResource + { + /// + /// The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services. + /// + [Output("connectionArn")] + public Output ConnectionArn { get; private set; } = null!; + + /// + /// The name of the connection. Connection names must be unique in an AWS user account. + /// + [Output("connectionName")] + public Output ConnectionName { get; private set; } = null!; + + /// + /// The current status of the connection. + /// + [Output("connectionStatus")] + public Output ConnectionStatus { get; private set; } = null!; + + /// + /// The host arn configured to represent the infrastructure where your third-party provider is installed. You must specify either a ProviderType or a HostArn. + /// + [Output("hostArn")] + public Output HostArn { get; private set; } = null!; + + /// + /// The name of the external provider where your third-party code repository is configured. For Bitbucket, this is the account ID of the owner of the Bitbucket repository. + /// + [Output("ownerAccountId")] + public Output OwnerAccountId { get; private set; } = null!; + + /// + /// The name of the external provider where your third-party code repository is configured. You must specify either a ProviderType or a HostArn. + /// + [Output("providerType")] + public Output ProviderType { get; private set; } = null!; + + /// + /// Specifies the tags applied to a connection. + /// + [Output("tags")] + public Output> Tags { get; private set; } = null!; + + + /// + /// Create a Connection 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 Connection(string name, ConnectionArgs? args = null, CustomResourceOptions? options = null) + : base("aws-native:codeconnections:Connection", name, args ?? new ConnectionArgs(), MakeResourceOptions(options, "")) + { + } + + private Connection(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:codeconnections:Connection", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "connectionName", + "hostArn", + "providerType", + }, + }; + 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 Connection 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 Connection Get(string name, Input id, CustomResourceOptions? options = null) + { + return new Connection(name, id, options); + } + } + + public sealed class ConnectionArgs : global::Pulumi.ResourceArgs + { + /// + /// The name of the connection. Connection names must be unique in an AWS user account. + /// + [Input("connectionName")] + public Input? ConnectionName { get; set; } + + /// + /// The host arn configured to represent the infrastructure where your third-party provider is installed. You must specify either a ProviderType or a HostArn. + /// + [Input("hostArn")] + public Input? HostArn { get; set; } + + /// + /// The name of the external provider where your third-party code repository is configured. You must specify either a ProviderType or a HostArn. + /// + [Input("providerType")] + public Input? ProviderType { get; set; } + + [Input("tags")] + private InputList? _tags; + + /// + /// Specifies the tags applied to a connection. + /// + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + + public ConnectionArgs() + { + } + public static new ConnectionArgs Empty => new ConnectionArgs(); + } +} diff --git a/sdk/dotnet/CodeConnections/GetConnection.cs b/sdk/dotnet/CodeConnections/GetConnection.cs new file mode 100644 index 0000000000..286bde091c --- /dev/null +++ b/sdk/dotnet/CodeConnections/GetConnection.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.CodeConnections +{ + public static class GetConnection + { + /// + /// Schema for AWS::CodeConnections::Connection resource which can be used to connect external source providers with other AWS services (i.e. AWS CodePipeline) + /// + public static Task InvokeAsync(GetConnectionArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:codeconnections:getConnection", args ?? new GetConnectionArgs(), options.WithDefaults()); + + /// + /// Schema for AWS::CodeConnections::Connection resource which can be used to connect external source providers with other AWS services (i.e. AWS CodePipeline) + /// + public static Output Invoke(GetConnectionInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:codeconnections:getConnection", args ?? new GetConnectionInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetConnectionArgs : global::Pulumi.InvokeArgs + { + /// + /// The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services. + /// + [Input("connectionArn", required: true)] + public string ConnectionArn { get; set; } = null!; + + public GetConnectionArgs() + { + } + public static new GetConnectionArgs Empty => new GetConnectionArgs(); + } + + public sealed class GetConnectionInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services. + /// + [Input("connectionArn", required: true)] + public Input ConnectionArn { get; set; } = null!; + + public GetConnectionInvokeArgs() + { + } + public static new GetConnectionInvokeArgs Empty => new GetConnectionInvokeArgs(); + } + + + [OutputType] + public sealed class GetConnectionResult + { + /// + /// The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services. + /// + public readonly string? ConnectionArn; + /// + /// The current status of the connection. + /// + public readonly string? ConnectionStatus; + /// + /// The name of the external provider where your third-party code repository is configured. For Bitbucket, this is the account ID of the owner of the Bitbucket repository. + /// + public readonly string? OwnerAccountId; + /// + /// Specifies the tags applied to a connection. + /// + public readonly ImmutableArray Tags; + + [OutputConstructor] + private GetConnectionResult( + string? connectionArn, + + string? connectionStatus, + + string? ownerAccountId, + + ImmutableArray tags) + { + ConnectionArn = connectionArn; + ConnectionStatus = connectionStatus; + OwnerAccountId = ownerAccountId; + Tags = tags; + } + } +} diff --git a/sdk/dotnet/CodeConnections/README.md b/sdk/dotnet/CodeConnections/README.md new file mode 100644 index 0000000000..77b2f47ec2 --- /dev/null +++ b/sdk/dotnet/CodeConnections/README.md @@ -0,0 +1 @@ +A native Pulumi package for creating and managing Amazon Web Services (AWS) resources. diff --git a/sdk/dotnet/CodeStarConnections/Enums.cs b/sdk/dotnet/CodeStarConnections/Enums.cs new file mode 100644 index 0000000000..9471abbbc3 --- /dev/null +++ b/sdk/dotnet/CodeStarConnections/Enums.cs @@ -0,0 +1,139 @@ +// *** 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.CodeStarConnections +{ + /// + /// The name of the external provider where your third-party code repository is configured. + /// + [EnumType] + public readonly struct RepositoryLinkProviderType : IEquatable + { + private readonly string _value; + + private RepositoryLinkProviderType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static RepositoryLinkProviderType GitHub { get; } = new RepositoryLinkProviderType("GitHub"); + public static RepositoryLinkProviderType Bitbucket { get; } = new RepositoryLinkProviderType("Bitbucket"); + public static RepositoryLinkProviderType GitHubEnterprise { get; } = new RepositoryLinkProviderType("GitHubEnterprise"); + public static RepositoryLinkProviderType GitLab { get; } = new RepositoryLinkProviderType("GitLab"); + public static RepositoryLinkProviderType GitLabSelfManaged { get; } = new RepositoryLinkProviderType("GitLabSelfManaged"); + + public static bool operator ==(RepositoryLinkProviderType left, RepositoryLinkProviderType right) => left.Equals(right); + public static bool operator !=(RepositoryLinkProviderType left, RepositoryLinkProviderType right) => !left.Equals(right); + + public static explicit operator string(RepositoryLinkProviderType value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is RepositoryLinkProviderType other && Equals(other); + public bool Equals(RepositoryLinkProviderType other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + + /// + /// The name of the external provider where your third-party code repository is configured. + /// + [EnumType] + public readonly struct SyncConfigurationProviderType : IEquatable + { + private readonly string _value; + + private SyncConfigurationProviderType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static SyncConfigurationProviderType GitHub { get; } = new SyncConfigurationProviderType("GitHub"); + public static SyncConfigurationProviderType Bitbucket { get; } = new SyncConfigurationProviderType("Bitbucket"); + public static SyncConfigurationProviderType GitHubEnterprise { get; } = new SyncConfigurationProviderType("GitHubEnterprise"); + public static SyncConfigurationProviderType GitLab { get; } = new SyncConfigurationProviderType("GitLab"); + public static SyncConfigurationProviderType GitLabSelfManaged { get; } = new SyncConfigurationProviderType("GitLabSelfManaged"); + + public static bool operator ==(SyncConfigurationProviderType left, SyncConfigurationProviderType right) => left.Equals(right); + public static bool operator !=(SyncConfigurationProviderType left, SyncConfigurationProviderType right) => !left.Equals(right); + + public static explicit operator string(SyncConfigurationProviderType value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is SyncConfigurationProviderType other && Equals(other); + public bool Equals(SyncConfigurationProviderType other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + + /// + /// Whether to enable or disable publishing of deployment status to source providers. + /// + [EnumType] + public readonly struct SyncConfigurationPublishDeploymentStatus : IEquatable + { + private readonly string _value; + + private SyncConfigurationPublishDeploymentStatus(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static SyncConfigurationPublishDeploymentStatus Enabled { get; } = new SyncConfigurationPublishDeploymentStatus("ENABLED"); + public static SyncConfigurationPublishDeploymentStatus Disabled { get; } = new SyncConfigurationPublishDeploymentStatus("DISABLED"); + + public static bool operator ==(SyncConfigurationPublishDeploymentStatus left, SyncConfigurationPublishDeploymentStatus right) => left.Equals(right); + public static bool operator !=(SyncConfigurationPublishDeploymentStatus left, SyncConfigurationPublishDeploymentStatus right) => !left.Equals(right); + + public static explicit operator string(SyncConfigurationPublishDeploymentStatus value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is SyncConfigurationPublishDeploymentStatus other && Equals(other); + public bool Equals(SyncConfigurationPublishDeploymentStatus other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + + /// + /// When to trigger Git sync to begin the stack update. + /// + [EnumType] + public readonly struct SyncConfigurationTriggerResourceUpdateOn : IEquatable + { + private readonly string _value; + + private SyncConfigurationTriggerResourceUpdateOn(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static SyncConfigurationTriggerResourceUpdateOn AnyChange { get; } = new SyncConfigurationTriggerResourceUpdateOn("ANY_CHANGE"); + public static SyncConfigurationTriggerResourceUpdateOn FileChange { get; } = new SyncConfigurationTriggerResourceUpdateOn("FILE_CHANGE"); + + public static bool operator ==(SyncConfigurationTriggerResourceUpdateOn left, SyncConfigurationTriggerResourceUpdateOn right) => left.Equals(right); + public static bool operator !=(SyncConfigurationTriggerResourceUpdateOn left, SyncConfigurationTriggerResourceUpdateOn right) => !left.Equals(right); + + public static explicit operator string(SyncConfigurationTriggerResourceUpdateOn value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is SyncConfigurationTriggerResourceUpdateOn other && Equals(other); + public bool Equals(SyncConfigurationTriggerResourceUpdateOn 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/CodeStarConnections/GetRepositoryLink.cs b/sdk/dotnet/CodeStarConnections/GetRepositoryLink.cs index 655aa4c3d9..16417ab291 100644 --- a/sdk/dotnet/CodeStarConnections/GetRepositoryLink.cs +++ b/sdk/dotnet/CodeStarConnections/GetRepositoryLink.cs @@ -68,7 +68,7 @@ public sealed class GetRepositoryLinkResult /// /// The name of the external provider where your third-party code repository is configured. /// - public readonly string? ProviderType; + public readonly Pulumi.AwsNative.CodeStarConnections.RepositoryLinkProviderType? ProviderType; /// /// A unique Amazon Resource Name (ARN) to designate the repository link. /// @@ -88,7 +88,7 @@ private GetRepositoryLinkResult( string? encryptionKeyArn, - string? providerType, + Pulumi.AwsNative.CodeStarConnections.RepositoryLinkProviderType? providerType, string? repositoryLinkArn, diff --git a/sdk/dotnet/CodeStarConnections/GetSyncConfiguration.cs b/sdk/dotnet/CodeStarConnections/GetSyncConfiguration.cs index de790b1505..a239a9e473 100644 --- a/sdk/dotnet/CodeStarConnections/GetSyncConfiguration.cs +++ b/sdk/dotnet/CodeStarConnections/GetSyncConfiguration.cs @@ -84,7 +84,11 @@ public sealed class GetSyncConfigurationResult /// /// The name of the external provider where your third-party code repository is configured. /// - public readonly string? ProviderType; + public readonly Pulumi.AwsNative.CodeStarConnections.SyncConfigurationProviderType? ProviderType; + /// + /// Whether to enable or disable publishing of deployment status to source providers. + /// + public readonly Pulumi.AwsNative.CodeStarConnections.SyncConfigurationPublishDeploymentStatus? PublishDeploymentStatus; /// /// A UUID that uniquely identifies the RepositoryLink that the SyncConfig is associated with. /// @@ -97,6 +101,10 @@ public sealed class GetSyncConfigurationResult /// The IAM Role that allows AWS to update CloudFormation stacks based on content in the specified repository. /// public readonly string? RoleArn; + /// + /// When to trigger Git sync to begin the stack update. + /// + public readonly Pulumi.AwsNative.CodeStarConnections.SyncConfigurationTriggerResourceUpdateOn? TriggerResourceUpdateOn; [OutputConstructor] private GetSyncConfigurationResult( @@ -106,21 +114,27 @@ private GetSyncConfigurationResult( string? ownerId, - string? providerType, + Pulumi.AwsNative.CodeStarConnections.SyncConfigurationProviderType? providerType, + + Pulumi.AwsNative.CodeStarConnections.SyncConfigurationPublishDeploymentStatus? publishDeploymentStatus, string? repositoryLinkId, string? repositoryName, - string? roleArn) + string? roleArn, + + Pulumi.AwsNative.CodeStarConnections.SyncConfigurationTriggerResourceUpdateOn? triggerResourceUpdateOn) { Branch = branch; ConfigFile = configFile; OwnerId = ownerId; ProviderType = providerType; + PublishDeploymentStatus = publishDeploymentStatus; RepositoryLinkId = repositoryLinkId; RepositoryName = repositoryName; RoleArn = roleArn; + TriggerResourceUpdateOn = triggerResourceUpdateOn; } } } diff --git a/sdk/dotnet/CodeStarConnections/RepositoryLink.cs b/sdk/dotnet/CodeStarConnections/RepositoryLink.cs index 213b2e388f..fbf267f8a8 100644 --- a/sdk/dotnet/CodeStarConnections/RepositoryLink.cs +++ b/sdk/dotnet/CodeStarConnections/RepositoryLink.cs @@ -37,7 +37,7 @@ public partial class RepositoryLink : global::Pulumi.CustomResource /// The name of the external provider where your third-party code repository is configured. /// [Output("providerType")] - public Output ProviderType { get; private set; } = null!; + public Output ProviderType { get; private set; } = null!; /// /// A unique Amazon Resource Name (ARN) to designate the repository link. diff --git a/sdk/dotnet/CodeStarConnections/SyncConfiguration.cs b/sdk/dotnet/CodeStarConnections/SyncConfiguration.cs index e3133783f3..63191dbf99 100644 --- a/sdk/dotnet/CodeStarConnections/SyncConfiguration.cs +++ b/sdk/dotnet/CodeStarConnections/SyncConfiguration.cs @@ -37,7 +37,13 @@ public partial class SyncConfiguration : global::Pulumi.CustomResource /// The name of the external provider where your third-party code repository is configured. /// [Output("providerType")] - public Output ProviderType { get; private set; } = null!; + public Output ProviderType { get; private set; } = null!; + + /// + /// Whether to enable or disable publishing of deployment status to source providers. + /// + [Output("publishDeploymentStatus")] + public Output PublishDeploymentStatus { get; private set; } = null!; /// /// A UUID that uniquely identifies the RepositoryLink that the SyncConfig is associated with. @@ -69,6 +75,12 @@ public partial class SyncConfiguration : global::Pulumi.CustomResource [Output("syncType")] public Output SyncType { get; private set; } = null!; + /// + /// When to trigger Git sync to begin the stack update. + /// + [Output("triggerResourceUpdateOn")] + public Output TriggerResourceUpdateOn { get; private set; } = null!; + /// /// Create a SyncConfiguration resource with the given unique name, arguments, and options. @@ -131,6 +143,12 @@ public sealed class SyncConfigurationArgs : global::Pulumi.ResourceArgs [Input("configFile", required: true)] public Input ConfigFile { get; set; } = null!; + /// + /// Whether to enable or disable publishing of deployment status to source providers. + /// + [Input("publishDeploymentStatus")] + public Input? PublishDeploymentStatus { get; set; } + /// /// A UUID that uniquely identifies the RepositoryLink that the SyncConfig is associated with. /// @@ -155,6 +173,12 @@ public sealed class SyncConfigurationArgs : global::Pulumi.ResourceArgs [Input("syncType", required: true)] public Input SyncType { get; set; } = null!; + /// + /// When to trigger Git sync to begin the stack update. + /// + [Input("triggerResourceUpdateOn")] + public Input? TriggerResourceUpdateOn { get; set; } + public SyncConfigurationArgs() { } diff --git a/sdk/dotnet/Connect/GetPredefinedAttribute.cs b/sdk/dotnet/Connect/GetPredefinedAttribute.cs index 9eb6f70715..49fa42118f 100644 --- a/sdk/dotnet/Connect/GetPredefinedAttribute.cs +++ b/sdk/dotnet/Connect/GetPredefinedAttribute.cs @@ -69,14 +69,29 @@ public GetPredefinedAttributeInvokeArgs() [OutputType] public sealed class GetPredefinedAttributeResult { + /// + /// Last modified region. + /// + public readonly string? LastModifiedRegion; + /// + /// Last modified time. + /// + public readonly double? LastModifiedTime; /// /// The values of a predefined attribute. /// public readonly Outputs.ValuesProperties? Values; [OutputConstructor] - private GetPredefinedAttributeResult(Outputs.ValuesProperties? values) + private GetPredefinedAttributeResult( + string? lastModifiedRegion, + + double? lastModifiedTime, + + Outputs.ValuesProperties? values) { + LastModifiedRegion = lastModifiedRegion; + LastModifiedTime = lastModifiedTime; Values = values; } } diff --git a/sdk/dotnet/Connect/GetSecurityProfile.cs b/sdk/dotnet/Connect/GetSecurityProfile.cs index 5eacdd1c39..7473b4f826 100644 --- a/sdk/dotnet/Connect/GetSecurityProfile.cs +++ b/sdk/dotnet/Connect/GetSecurityProfile.cs @@ -57,15 +57,35 @@ public GetSecurityProfileInvokeArgs() [OutputType] public sealed class GetSecurityProfileResult { + /// + /// The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect. + /// + public readonly string? AllowedAccessControlHierarchyGroupId; /// /// The list of tags that a security profile uses to restrict access to resources in Amazon Connect. /// public readonly ImmutableArray AllowedAccessControlTags; /// + /// A list of third-party applications that the security profile will give access to. + /// + public readonly ImmutableArray Applications; + /// /// The description of the security profile. /// public readonly string? Description; /// + /// The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. + /// + public readonly ImmutableArray HierarchyRestrictedResources; + /// + /// The AWS Region where this resource was last modified. + /// + public readonly string? LastModifiedRegion; + /// + /// The timestamp when this resource was last modified. + /// + public readonly double? LastModifiedTime; + /// /// Permissions assigned to the security profile. /// public readonly ImmutableArray Permissions; @@ -84,10 +104,20 @@ public sealed class GetSecurityProfileResult [OutputConstructor] private GetSecurityProfileResult( + string? allowedAccessControlHierarchyGroupId, + ImmutableArray allowedAccessControlTags, + ImmutableArray applications, + string? description, + ImmutableArray hierarchyRestrictedResources, + + string? lastModifiedRegion, + + double? lastModifiedTime, + ImmutableArray permissions, string? securityProfileArn, @@ -96,8 +126,13 @@ private GetSecurityProfileResult( ImmutableArray tags) { + AllowedAccessControlHierarchyGroupId = allowedAccessControlHierarchyGroupId; AllowedAccessControlTags = allowedAccessControlTags; + Applications = applications; Description = description; + HierarchyRestrictedResources = hierarchyRestrictedResources; + LastModifiedRegion = lastModifiedRegion; + LastModifiedTime = lastModifiedTime; Permissions = permissions; SecurityProfileArn = securityProfileArn; TagRestrictedResources = tagRestrictedResources; diff --git a/sdk/dotnet/Connect/Inputs/SecurityProfileApplicationArgs.cs b/sdk/dotnet/Connect/Inputs/SecurityProfileApplicationArgs.cs new file mode 100644 index 0000000000..ac50479fe0 --- /dev/null +++ b/sdk/dotnet/Connect/Inputs/SecurityProfileApplicationArgs.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.Connect.Inputs +{ + + /// + /// A third-party application's metadata. + /// + public sealed class SecurityProfileApplicationArgs : global::Pulumi.ResourceArgs + { + [Input("applicationPermissions", required: true)] + private InputList? _applicationPermissions; + + /// + /// The permissions that the agent is granted on the application + /// + public InputList ApplicationPermissions + { + get => _applicationPermissions ?? (_applicationPermissions = new InputList()); + set => _applicationPermissions = value; + } + + /// + /// Namespace of the application that you want to give access to. + /// + [Input("namespace", required: true)] + public Input Namespace { get; set; } = null!; + + public SecurityProfileApplicationArgs() + { + } + public static new SecurityProfileApplicationArgs Empty => new SecurityProfileApplicationArgs(); + } +} diff --git a/sdk/dotnet/Connect/Outputs/SecurityProfileApplication.cs b/sdk/dotnet/Connect/Outputs/SecurityProfileApplication.cs new file mode 100644 index 0000000000..8237085665 --- /dev/null +++ b/sdk/dotnet/Connect/Outputs/SecurityProfileApplication.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.Connect.Outputs +{ + + /// + /// A third-party application's metadata. + /// + [OutputType] + public sealed class SecurityProfileApplication + { + /// + /// The permissions that the agent is granted on the application + /// + public readonly ImmutableArray ApplicationPermissions; + /// + /// Namespace of the application that you want to give access to. + /// + public readonly string Namespace; + + [OutputConstructor] + private SecurityProfileApplication( + ImmutableArray applicationPermissions, + + string @namespace) + { + ApplicationPermissions = applicationPermissions; + Namespace = @namespace; + } + } +} diff --git a/sdk/dotnet/Connect/PredefinedAttribute.cs b/sdk/dotnet/Connect/PredefinedAttribute.cs index a4cf60ec6f..b06c50259b 100644 --- a/sdk/dotnet/Connect/PredefinedAttribute.cs +++ b/sdk/dotnet/Connect/PredefinedAttribute.cs @@ -21,6 +21,18 @@ public partial class PredefinedAttribute : global::Pulumi.CustomResource [Output("instanceArn")] public Output InstanceArn { get; private set; } = null!; + /// + /// Last modified region. + /// + [Output("lastModifiedRegion")] + public Output LastModifiedRegion { get; private set; } = null!; + + /// + /// Last modified time. + /// + [Output("lastModifiedTime")] + public Output LastModifiedTime { get; private set; } = null!; + /// /// The name of the predefined attribute. /// diff --git a/sdk/dotnet/Connect/SecurityProfile.cs b/sdk/dotnet/Connect/SecurityProfile.cs index 87a99dec71..8f4b0d329a 100644 --- a/sdk/dotnet/Connect/SecurityProfile.cs +++ b/sdk/dotnet/Connect/SecurityProfile.cs @@ -15,24 +15,54 @@ namespace Pulumi.AwsNative.Connect [AwsNativeResourceType("aws-native:connect:SecurityProfile")] public partial class SecurityProfile : global::Pulumi.CustomResource { + /// + /// The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect. + /// + [Output("allowedAccessControlHierarchyGroupId")] + public Output AllowedAccessControlHierarchyGroupId { get; private set; } = null!; + /// /// The list of tags that a security profile uses to restrict access to resources in Amazon Connect. /// [Output("allowedAccessControlTags")] public Output> AllowedAccessControlTags { get; private set; } = null!; + /// + /// A list of third-party applications that the security profile will give access to. + /// + [Output("applications")] + public Output> Applications { get; private set; } = null!; + /// /// The description of the security profile. /// [Output("description")] public Output Description { get; private set; } = null!; + /// + /// The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. + /// + [Output("hierarchyRestrictedResources")] + public Output> HierarchyRestrictedResources { get; private set; } = null!; + /// /// The identifier of the Amazon Connect instance. /// [Output("instanceArn")] public Output InstanceArn { get; private set; } = null!; + /// + /// The AWS Region where this resource was last modified. + /// + [Output("lastModifiedRegion")] + public Output LastModifiedRegion { get; private set; } = null!; + + /// + /// The timestamp when this resource was last modified. + /// + [Output("lastModifiedTime")] + public Output LastModifiedTime { get; private set; } = null!; + /// /// Permissions assigned to the security profile. /// @@ -113,6 +143,12 @@ public static SecurityProfile Get(string name, Input id, CustomResourceO public sealed class SecurityProfileArgs : global::Pulumi.ResourceArgs { + /// + /// The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect. + /// + [Input("allowedAccessControlHierarchyGroupId")] + public Input? AllowedAccessControlHierarchyGroupId { get; set; } + [Input("allowedAccessControlTags")] private InputList? _allowedAccessControlTags; @@ -125,12 +161,36 @@ public InputList AllowedAccessControlTags set => _allowedAccessControlTags = value; } + [Input("applications")] + private InputList? _applications; + + /// + /// A list of third-party applications that the security profile will give access to. + /// + public InputList Applications + { + get => _applications ?? (_applications = new InputList()); + set => _applications = value; + } + /// /// The description of the security profile. /// [Input("description")] public Input? Description { get; set; } + [Input("hierarchyRestrictedResources")] + private InputList? _hierarchyRestrictedResources; + + /// + /// The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. + /// + public InputList HierarchyRestrictedResources + { + get => _hierarchyRestrictedResources ?? (_hierarchyRestrictedResources = new InputList()); + set => _hierarchyRestrictedResources = value; + } + /// /// The identifier of the Amazon Connect instance. /// diff --git a/sdk/dotnet/DocDbElastic/Cluster.cs b/sdk/dotnet/DocDbElastic/Cluster.cs index 9b8aa393da..7fde85f207 100644 --- a/sdk/dotnet/DocDbElastic/Cluster.cs +++ b/sdk/dotnet/DocDbElastic/Cluster.cs @@ -24,6 +24,9 @@ public partial class Cluster : global::Pulumi.CustomResource [Output("authType")] public Output AuthType { get; private set; } = null!; + [Output("backupRetentionPeriod")] + public Output BackupRetentionPeriod { get; private set; } = null!; + [Output("clusterArn")] public Output ClusterArn { get; private set; } = null!; @@ -36,6 +39,9 @@ public partial class Cluster : global::Pulumi.CustomResource [Output("kmsKeyId")] public Output KmsKeyId { get; private set; } = null!; + [Output("preferredBackupWindow")] + public Output PreferredBackupWindow { get; private set; } = null!; + [Output("preferredMaintenanceWindow")] public Output PreferredMaintenanceWindow { get; private set; } = null!; @@ -45,6 +51,9 @@ public partial class Cluster : global::Pulumi.CustomResource [Output("shardCount")] public Output ShardCount { get; private set; } = null!; + [Output("shardInstanceCount")] + public Output ShardInstanceCount { get; private set; } = null!; + [Output("subnetIds")] public Output> SubnetIds { get; private set; } = null!; @@ -115,12 +124,18 @@ public sealed class ClusterArgs : global::Pulumi.ResourceArgs [Input("authType", required: true)] public Input AuthType { get; set; } = null!; + [Input("backupRetentionPeriod")] + public Input? BackupRetentionPeriod { get; set; } + [Input("clusterName")] public Input? ClusterName { get; set; } [Input("kmsKeyId")] public Input? KmsKeyId { get; set; } + [Input("preferredBackupWindow")] + public Input? PreferredBackupWindow { get; set; } + [Input("preferredMaintenanceWindow")] public Input? PreferredMaintenanceWindow { get; set; } @@ -130,6 +145,9 @@ public sealed class ClusterArgs : global::Pulumi.ResourceArgs [Input("shardCount", required: true)] public Input ShardCount { get; set; } = null!; + [Input("shardInstanceCount")] + public Input? ShardInstanceCount { get; set; } + [Input("subnetIds")] private InputList? _subnetIds; public InputList SubnetIds diff --git a/sdk/dotnet/DocDbElastic/GetCluster.cs b/sdk/dotnet/DocDbElastic/GetCluster.cs index b68df973cc..0bdd5216d2 100644 --- a/sdk/dotnet/DocDbElastic/GetCluster.cs +++ b/sdk/dotnet/DocDbElastic/GetCluster.cs @@ -51,38 +51,50 @@ public GetClusterInvokeArgs() [OutputType] public sealed class GetClusterResult { + public readonly int? BackupRetentionPeriod; public readonly string? ClusterArn; public readonly string? ClusterEndpoint; + public readonly string? PreferredBackupWindow; public readonly string? PreferredMaintenanceWindow; public readonly int? ShardCapacity; public readonly int? ShardCount; + public readonly int? ShardInstanceCount; public readonly ImmutableArray SubnetIds; public readonly ImmutableArray Tags; public readonly ImmutableArray VpcSecurityGroupIds; [OutputConstructor] private GetClusterResult( + int? backupRetentionPeriod, + string? clusterArn, string? clusterEndpoint, + string? preferredBackupWindow, + string? preferredMaintenanceWindow, int? shardCapacity, int? shardCount, + int? shardInstanceCount, + ImmutableArray subnetIds, ImmutableArray tags, ImmutableArray vpcSecurityGroupIds) { + BackupRetentionPeriod = backupRetentionPeriod; ClusterArn = clusterArn; ClusterEndpoint = clusterEndpoint; + PreferredBackupWindow = preferredBackupWindow; PreferredMaintenanceWindow = preferredMaintenanceWindow; ShardCapacity = shardCapacity; ShardCount = shardCount; + ShardInstanceCount = shardInstanceCount; SubnetIds = subnetIds; Tags = tags; VpcSecurityGroupIds = vpcSecurityGroupIds; diff --git a/sdk/dotnet/DynamoDb/GetTable.cs b/sdk/dotnet/DynamoDb/GetTable.cs index d610c8fe09..52532dba9c 100644 --- a/sdk/dotnet/DynamoDb/GetTable.cs +++ b/sdk/dotnet/DynamoDb/GetTable.cs @@ -121,6 +121,7 @@ public sealed class GetTableResult /// If you set ``BillingMode`` as ``PROVISIONED``, you must specify this property. If you set ``BillingMode`` as ``PAY_PER_REQUEST``, you cannot specify this property. /// public readonly Outputs.TableProvisionedThroughput? ProvisionedThroughput; + public readonly Outputs.TableResourcePolicy? ResourcePolicy; /// /// Specifies the settings to enable server-side encryption. /// @@ -169,6 +170,8 @@ private GetTableResult( Outputs.TableProvisionedThroughput? provisionedThroughput, + Outputs.TableResourcePolicy? resourcePolicy, + Outputs.TableSseSpecification? sseSpecification, string? streamArn, @@ -192,6 +195,7 @@ private GetTableResult( LocalSecondaryIndexes = localSecondaryIndexes; PointInTimeRecoverySpecification = pointInTimeRecoverySpecification; ProvisionedThroughput = provisionedThroughput; + ResourcePolicy = resourcePolicy; SseSpecification = sseSpecification; StreamArn = streamArn; StreamSpecification = streamSpecification; diff --git a/sdk/dotnet/DynamoDb/Inputs/GlobalTableReplicaSpecificationArgs.cs b/sdk/dotnet/DynamoDb/Inputs/GlobalTableReplicaSpecificationArgs.cs index 0bba32933a..6277eeebe5 100644 --- a/sdk/dotnet/DynamoDb/Inputs/GlobalTableReplicaSpecificationArgs.cs +++ b/sdk/dotnet/DynamoDb/Inputs/GlobalTableReplicaSpecificationArgs.cs @@ -38,6 +38,12 @@ public InputList [Input("region", required: true)] public Input Region { get; set; } = null!; + [Input("replicaStreamSpecification")] + public Input? ReplicaStreamSpecification { get; set; } + + [Input("resourcePolicy")] + public Input? ResourcePolicy { get; set; } + [Input("sseSpecification")] public Input? SseSpecification { get; set; } diff --git a/sdk/dotnet/DynamoDb/Inputs/GlobalTableReplicaStreamSpecificationArgs.cs b/sdk/dotnet/DynamoDb/Inputs/GlobalTableReplicaStreamSpecificationArgs.cs new file mode 100644 index 0000000000..ebce2c1ec8 --- /dev/null +++ b/sdk/dotnet/DynamoDb/Inputs/GlobalTableReplicaStreamSpecificationArgs.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.DynamoDb.Inputs +{ + + public sealed class GlobalTableReplicaStreamSpecificationArgs : global::Pulumi.ResourceArgs + { + [Input("resourcePolicy", required: true)] + public Input ResourcePolicy { get; set; } = null!; + + public GlobalTableReplicaStreamSpecificationArgs() + { + } + public static new GlobalTableReplicaStreamSpecificationArgs Empty => new GlobalTableReplicaStreamSpecificationArgs(); + } +} diff --git a/sdk/dotnet/DynamoDb/Inputs/GlobalTableResourcePolicyArgs.cs b/sdk/dotnet/DynamoDb/Inputs/GlobalTableResourcePolicyArgs.cs new file mode 100644 index 0000000000..e5fe16a3cb --- /dev/null +++ b/sdk/dotnet/DynamoDb/Inputs/GlobalTableResourcePolicyArgs.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.DynamoDb.Inputs +{ + + public sealed class GlobalTableResourcePolicyArgs : global::Pulumi.ResourceArgs + { + [Input("policyDocument", required: true)] + public Input PolicyDocument { get; set; } = null!; + + public GlobalTableResourcePolicyArgs() + { + } + public static new GlobalTableResourcePolicyArgs Empty => new GlobalTableResourcePolicyArgs(); + } +} diff --git a/sdk/dotnet/DynamoDb/Inputs/TableResourcePolicyArgs.cs b/sdk/dotnet/DynamoDb/Inputs/TableResourcePolicyArgs.cs new file mode 100644 index 0000000000..4b7f020191 --- /dev/null +++ b/sdk/dotnet/DynamoDb/Inputs/TableResourcePolicyArgs.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.DynamoDb.Inputs +{ + + public sealed class TableResourcePolicyArgs : global::Pulumi.ResourceArgs + { + [Input("policyDocument", required: true)] + public Input PolicyDocument { get; set; } = null!; + + public TableResourcePolicyArgs() + { + } + public static new TableResourcePolicyArgs Empty => new TableResourcePolicyArgs(); + } +} diff --git a/sdk/dotnet/DynamoDb/Inputs/TableStreamSpecificationArgs.cs b/sdk/dotnet/DynamoDb/Inputs/TableStreamSpecificationArgs.cs index bf417d01af..e153d44f75 100644 --- a/sdk/dotnet/DynamoDb/Inputs/TableStreamSpecificationArgs.cs +++ b/sdk/dotnet/DynamoDb/Inputs/TableStreamSpecificationArgs.cs @@ -15,6 +15,9 @@ namespace Pulumi.AwsNative.DynamoDb.Inputs /// public sealed class TableStreamSpecificationArgs : global::Pulumi.ResourceArgs { + [Input("resourcePolicy")] + public Input? ResourcePolicy { get; set; } + /// /// When an item in the table is modified, ``StreamViewType`` determines what information is written to the stream for this table. Valid values for ``StreamViewType`` are: /// + ``KEYS_ONLY`` - Only the key attributes of the modified item are written to the stream. diff --git a/sdk/dotnet/DynamoDb/Outputs/GlobalTableReplicaSpecification.cs b/sdk/dotnet/DynamoDb/Outputs/GlobalTableReplicaSpecification.cs index 8c67c453aa..1468bb218b 100644 --- a/sdk/dotnet/DynamoDb/Outputs/GlobalTableReplicaSpecification.cs +++ b/sdk/dotnet/DynamoDb/Outputs/GlobalTableReplicaSpecification.cs @@ -20,6 +20,8 @@ public sealed class GlobalTableReplicaSpecification public readonly Outputs.GlobalTablePointInTimeRecoverySpecification? PointInTimeRecoverySpecification; public readonly Outputs.GlobalTableReadProvisionedThroughputSettings? ReadProvisionedThroughputSettings; public readonly string Region; + public readonly Outputs.GlobalTableReplicaStreamSpecification? ReplicaStreamSpecification; + public readonly Outputs.GlobalTableResourcePolicy? ResourcePolicy; public readonly Outputs.GlobalTableReplicaSseSpecification? SseSpecification; public readonly string? TableClass; public readonly ImmutableArray Tags; @@ -40,6 +42,10 @@ private GlobalTableReplicaSpecification( string region, + Outputs.GlobalTableReplicaStreamSpecification? replicaStreamSpecification, + + Outputs.GlobalTableResourcePolicy? resourcePolicy, + Outputs.GlobalTableReplicaSseSpecification? sseSpecification, string? tableClass, @@ -53,6 +59,8 @@ private GlobalTableReplicaSpecification( PointInTimeRecoverySpecification = pointInTimeRecoverySpecification; ReadProvisionedThroughputSettings = readProvisionedThroughputSettings; Region = region; + ReplicaStreamSpecification = replicaStreamSpecification; + ResourcePolicy = resourcePolicy; SseSpecification = sseSpecification; TableClass = tableClass; Tags = tags; diff --git a/sdk/dotnet/DynamoDb/Outputs/GlobalTableReplicaStreamSpecification.cs b/sdk/dotnet/DynamoDb/Outputs/GlobalTableReplicaStreamSpecification.cs new file mode 100644 index 0000000000..b35e5ce2d5 --- /dev/null +++ b/sdk/dotnet/DynamoDb/Outputs/GlobalTableReplicaStreamSpecification.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.DynamoDb.Outputs +{ + + [OutputType] + public sealed class GlobalTableReplicaStreamSpecification + { + public readonly Outputs.GlobalTableResourcePolicy ResourcePolicy; + + [OutputConstructor] + private GlobalTableReplicaStreamSpecification(Outputs.GlobalTableResourcePolicy resourcePolicy) + { + ResourcePolicy = resourcePolicy; + } + } +} diff --git a/sdk/dotnet/DynamoDb/Outputs/GlobalTableResourcePolicy.cs b/sdk/dotnet/DynamoDb/Outputs/GlobalTableResourcePolicy.cs new file mode 100644 index 0000000000..1f50ff8bde --- /dev/null +++ b/sdk/dotnet/DynamoDb/Outputs/GlobalTableResourcePolicy.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.DynamoDb.Outputs +{ + + [OutputType] + public sealed class GlobalTableResourcePolicy + { + public readonly object PolicyDocument; + + [OutputConstructor] + private GlobalTableResourcePolicy(object policyDocument) + { + PolicyDocument = policyDocument; + } + } +} diff --git a/sdk/dotnet/DynamoDb/Outputs/TableResourcePolicy.cs b/sdk/dotnet/DynamoDb/Outputs/TableResourcePolicy.cs new file mode 100644 index 0000000000..f3f920621e --- /dev/null +++ b/sdk/dotnet/DynamoDb/Outputs/TableResourcePolicy.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.DynamoDb.Outputs +{ + + [OutputType] + public sealed class TableResourcePolicy + { + public readonly object PolicyDocument; + + [OutputConstructor] + private TableResourcePolicy(object policyDocument) + { + PolicyDocument = policyDocument; + } + } +} diff --git a/sdk/dotnet/DynamoDb/Outputs/TableStreamSpecification.cs b/sdk/dotnet/DynamoDb/Outputs/TableStreamSpecification.cs index bb18cf2269..0629dc0170 100644 --- a/sdk/dotnet/DynamoDb/Outputs/TableStreamSpecification.cs +++ b/sdk/dotnet/DynamoDb/Outputs/TableStreamSpecification.cs @@ -16,6 +16,7 @@ namespace Pulumi.AwsNative.DynamoDb.Outputs [OutputType] public sealed class TableStreamSpecification { + public readonly Outputs.TableResourcePolicy? ResourcePolicy; /// /// When an item in the table is modified, ``StreamViewType`` determines what information is written to the stream for this table. Valid values for ``StreamViewType`` are: /// + ``KEYS_ONLY`` - Only the key attributes of the modified item are written to the stream. @@ -26,8 +27,12 @@ public sealed class TableStreamSpecification public readonly string StreamViewType; [OutputConstructor] - private TableStreamSpecification(string streamViewType) + private TableStreamSpecification( + Outputs.TableResourcePolicy? resourcePolicy, + + string streamViewType) { + ResourcePolicy = resourcePolicy; StreamViewType = streamViewType; } } diff --git a/sdk/dotnet/DynamoDb/Table.cs b/sdk/dotnet/DynamoDb/Table.cs index f198a5de66..70d6e7d60f 100644 --- a/sdk/dotnet/DynamoDb/Table.cs +++ b/sdk/dotnet/DynamoDb/Table.cs @@ -410,6 +410,9 @@ public partial class Table : global::Pulumi.CustomResource [Output("provisionedThroughput")] public Output ProvisionedThroughput { get; private set; } = null!; + [Output("resourcePolicy")] + public Output ResourcePolicy { get; private set; } = null!; + /// /// Specifies the settings to enable server-side encryption. /// @@ -600,6 +603,9 @@ public InputList LocalSecondaryIndexes [Input("provisionedThroughput")] public Input? ProvisionedThroughput { get; set; } + [Input("resourcePolicy")] + public Input? ResourcePolicy { get; set; } + /// /// Specifies the settings to enable server-side encryption. /// diff --git a/sdk/dotnet/Ec2/GetInternetGateway.cs b/sdk/dotnet/Ec2/GetInternetGateway.cs index ea5badaca1..4fb5427416 100644 --- a/sdk/dotnet/Ec2/GetInternetGateway.cs +++ b/sdk/dotnet/Ec2/GetInternetGateway.cs @@ -12,13 +12,13 @@ namespace Pulumi.AwsNative.Ec2 public static class GetInternetGateway { /// - /// Resource Type definition for AWS::EC2::InternetGateway + /// Allocates an internet gateway for use with a VPC. After creating the Internet gateway, you then attach it to a VPC. /// public static Task InvokeAsync(GetInternetGatewayArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:ec2:getInternetGateway", args ?? new GetInternetGatewayArgs(), options.WithDefaults()); /// - /// Resource Type definition for AWS::EC2::InternetGateway + /// Allocates an internet gateway for use with a VPC. After creating the Internet gateway, you then attach it to a VPC. /// public static Output Invoke(GetInternetGatewayInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("aws-native:ec2:getInternetGateway", args ?? new GetInternetGatewayInvokeArgs(), options.WithDefaults()); @@ -27,9 +27,6 @@ public static Output Invoke(GetInternetGatewayInvokeAr public sealed class GetInternetGatewayArgs : global::Pulumi.InvokeArgs { - /// - /// ID of internet gateway. - /// [Input("internetGatewayId", required: true)] public string InternetGatewayId { get; set; } = null!; @@ -41,9 +38,6 @@ public GetInternetGatewayArgs() public sealed class GetInternetGatewayInvokeArgs : global::Pulumi.InvokeArgs { - /// - /// ID of internet gateway. - /// [Input("internetGatewayId", required: true)] public Input InternetGatewayId { get; set; } = null!; @@ -57,9 +51,6 @@ public GetInternetGatewayInvokeArgs() [OutputType] public sealed class GetInternetGatewayResult { - /// - /// ID of internet gateway. - /// public readonly string? InternetGatewayId; /// /// Any tags to assign to the internet gateway. diff --git a/sdk/dotnet/Ec2/GetSubnet.cs b/sdk/dotnet/Ec2/GetSubnet.cs index 4fa2d74876..b743e30ad9 100644 --- a/sdk/dotnet/Ec2/GetSubnet.cs +++ b/sdk/dotnet/Ec2/GetSubnet.cs @@ -75,16 +75,16 @@ public sealed class GetSubnetResult public readonly ImmutableArray Ipv6CidrBlocks; /// /// Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``. - /// AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). + /// AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). /// public readonly bool? MapPublicIpOnLaunch; public readonly string? NetworkAclAssociationId; /// /// The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. /// Available options: - /// + EnableResourceNameDnsAAAARecord (true | false) - /// + EnableResourceNameDnsARecord (true | false) - /// + HostnameType (ip-name | resource-name) + /// + EnableResourceNameDnsAAAARecord (true | false) + /// + EnableResourceNameDnsARecord (true | false) + /// + HostnameType (ip-name | resource-name) /// public readonly Outputs.PrivateDnsNameOptionsOnLaunchProperties? PrivateDnsNameOptionsOnLaunch; public readonly string? SubnetId; diff --git a/sdk/dotnet/Ec2/GetTransitGatewayRouteTableAssociation.cs b/sdk/dotnet/Ec2/GetTransitGatewayRouteTableAssociation.cs deleted file mode 100644 index 3ce18032f2..0000000000 --- a/sdk/dotnet/Ec2/GetTransitGatewayRouteTableAssociation.cs +++ /dev/null @@ -1,62 +0,0 @@ -// *** 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.Ec2 -{ - public static class GetTransitGatewayRouteTableAssociation - { - /// - /// Resource Type definition for AWS::EC2::TransitGatewayRouteTableAssociation - /// - public static Task InvokeAsync(GetTransitGatewayRouteTableAssociationArgs args, InvokeOptions? options = null) - => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:ec2:getTransitGatewayRouteTableAssociation", args ?? new GetTransitGatewayRouteTableAssociationArgs(), options.WithDefaults()); - - /// - /// Resource Type definition for AWS::EC2::TransitGatewayRouteTableAssociation - /// - public static Output Invoke(GetTransitGatewayRouteTableAssociationInvokeArgs args, InvokeOptions? options = null) - => global::Pulumi.Deployment.Instance.Invoke("aws-native:ec2:getTransitGatewayRouteTableAssociation", args ?? new GetTransitGatewayRouteTableAssociationInvokeArgs(), options.WithDefaults()); - } - - - public sealed class GetTransitGatewayRouteTableAssociationArgs : global::Pulumi.InvokeArgs - { - [Input("id", required: true)] - public string Id { get; set; } = null!; - - public GetTransitGatewayRouteTableAssociationArgs() - { - } - public static new GetTransitGatewayRouteTableAssociationArgs Empty => new GetTransitGatewayRouteTableAssociationArgs(); - } - - public sealed class GetTransitGatewayRouteTableAssociationInvokeArgs : global::Pulumi.InvokeArgs - { - [Input("id", required: true)] - public Input Id { get; set; } = null!; - - public GetTransitGatewayRouteTableAssociationInvokeArgs() - { - } - public static new GetTransitGatewayRouteTableAssociationInvokeArgs Empty => new GetTransitGatewayRouteTableAssociationInvokeArgs(); - } - - - [OutputType] - public sealed class GetTransitGatewayRouteTableAssociationResult - { - public readonly string? Id; - - [OutputConstructor] - private GetTransitGatewayRouteTableAssociationResult(string? id) - { - Id = id; - } - } -} diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateDataArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateDataArgs.cs index 2e546ad25f..b70cdac952 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateDataArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateDataArgs.cs @@ -144,7 +144,9 @@ public InputList ElasticIn /// + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. /// + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. /// - /// If you specify ``InstanceReq + /// If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. + /// Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. + /// For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. /// [Input("instanceRequirements")] public Input? InstanceRequirements { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateEbsArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateEbsArgs.cs index 217e12351a..0c2790b37d 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateEbsArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateEbsArgs.cs @@ -72,7 +72,7 @@ public sealed class LaunchTemplateEbsArgs : global::Pulumi.ResourceArgs public Input? VolumeSize { get; set; } /// - /// The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*. + /// The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon EBS User Guide*. /// [Input("volumeType")] public Input? VolumeType { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateElasticGpuSpecificationArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateElasticGpuSpecificationArgs.cs index 1fb9d78c2f..9e429b143d 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateElasticGpuSpecificationArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateElasticGpuSpecificationArgs.cs @@ -11,7 +11,8 @@ namespace Pulumi.AwsNative.Ec2.Inputs { /// - /// Specifies a specification for an Elastic GPU for an Amazon EC2 launch template. + /// Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. + /// Specifies a specification for an Elastic GPU for an Amazon EC2 launch template. /// ``ElasticGpuSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html). /// public sealed class LaunchTemplateElasticGpuSpecificationArgs : global::Pulumi.ResourceArgs diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateIamInstanceProfileArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateIamInstanceProfileArgs.cs index a15c1705bd..675afcd271 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateIamInstanceProfileArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateIamInstanceProfileArgs.cs @@ -12,7 +12,7 @@ namespace Pulumi.AwsNative.Ec2.Inputs /// /// Specifies an IAM instance profile, which is a container for an IAM role for your instance. You can use an IAM role to distribute your AWS credentials to your instances. - /// If you are creating the launch template for use with an Amazon EC2 Auto Scaling group, you can specify either the name or the ARN of the instance profile, but not both. + /// If you are creating the launch template for use with an ASlong group, you can specify either the name or the ARN of the instance profile, but not both. /// ``IamInstanceProfile`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html). /// public sealed class LaunchTemplateIamInstanceProfileArgs : global::Pulumi.ResourceArgs diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsArgs.cs index c6c7b37b09..3214bca395 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateInstanceRequirementsArgs.cs @@ -18,7 +18,9 @@ namespace Pulumi.AwsNative.Ec2.Inputs /// + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. /// + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. /// - /// If you specify ``InstanceReq + /// If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. + /// Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. + /// For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. /// public sealed class LaunchTemplateInstanceRequirementsArgs : global::Pulumi.ResourceArgs { @@ -223,8 +225,8 @@ public InputList LocalStorageTypes /// /// [Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold. /// The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - /// To indicate no price protection threshold, specify a high value, such as ``999999``. - /// If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instanc + /// If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price. + /// Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. /// [Input("maxSpotPriceAsPercentageOfOptimalOnDemandPrice")] public Input? MaxSpotPriceAsPercentageOfOptimalOnDemandPrice { get; set; } @@ -261,7 +263,8 @@ public InputList LocalStorageTypes /// The parameter accepts an integer, which Amazon EC2 interprets as a percentage. /// To turn off price protection, specify a high value, such as ``999999``. /// This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). - /// If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per- + /// If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. + /// Default: ``20`` /// [Input("onDemandMaxPricePercentageOverLowestPrice")] public Input? OnDemandMaxPricePercentageOverLowestPrice { get; set; } @@ -277,8 +280,10 @@ public InputList LocalStorageTypes /// /// [Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold. /// The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - /// To indicate no price protection threshold, specify a high value, such as ``999999``. - /// If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price i + /// If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. + /// This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). + /// Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. + /// Default: ``100`` /// [Input("spotMaxPricePercentageOverLowestPrice")] public Input? SpotMaxPricePercentageOverLowestPrice { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateMaintenanceOptionsArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateMaintenanceOptionsArgs.cs index dfe01930df..9e5b313c72 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateMaintenanceOptionsArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateMaintenanceOptionsArgs.cs @@ -21,9 +21,6 @@ public sealed class LaunchTemplateMaintenanceOptionsArgs : global::Pulumi.Resour [Input("autoRecovery")] public Input? AutoRecovery { get; set; } - [Input("rebootMigration")] - public Input? RebootMigration { get; set; } - public LaunchTemplateMaintenanceOptionsArgs() { } diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateSpotOptionsArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateSpotOptionsArgs.cs index 2ce732dd94..d8e1b0447e 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateSpotOptionsArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateSpotOptionsArgs.cs @@ -37,7 +37,7 @@ public sealed class LaunchTemplateSpotOptionsArgs : global::Pulumi.ResourceArgs /// /// The Spot Instance request type. - /// If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is below its desired capacity. + /// If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the ASlong service handles requesting new Spot Instances whenever the group is below its desired capacity. /// [Input("spotInstanceType")] public Input? SpotInstanceType { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/PrivateDnsNameOptionsOnLaunchPropertiesArgs.cs b/sdk/dotnet/Ec2/Inputs/PrivateDnsNameOptionsOnLaunchPropertiesArgs.cs index 6dd8ef3959..c3ad54d737 100644 --- a/sdk/dotnet/Ec2/Inputs/PrivateDnsNameOptionsOnLaunchPropertiesArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/PrivateDnsNameOptionsOnLaunchPropertiesArgs.cs @@ -13,9 +13,9 @@ namespace Pulumi.AwsNative.Ec2.Inputs /// /// The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. /// Available options: - /// + EnableResourceNameDnsAAAARecord (true | false) - /// + EnableResourceNameDnsARecord (true | false) - /// + HostnameType (ip-name | resource-name) + /// + EnableResourceNameDnsAAAARecord (true | false) + /// + EnableResourceNameDnsARecord (true | false) + /// + HostnameType (ip-name | resource-name) /// public sealed class PrivateDnsNameOptionsOnLaunchPropertiesArgs : global::Pulumi.ResourceArgs { diff --git a/sdk/dotnet/Ec2/InternetGateway.cs b/sdk/dotnet/Ec2/InternetGateway.cs index 6cc5d4c76b..e81ad2ffd0 100644 --- a/sdk/dotnet/Ec2/InternetGateway.cs +++ b/sdk/dotnet/Ec2/InternetGateway.cs @@ -10,7 +10,7 @@ namespace Pulumi.AwsNative.Ec2 { /// - /// Resource Type definition for AWS::EC2::InternetGateway + /// Allocates an internet gateway for use with a VPC. After creating the Internet gateway, you then attach it to a VPC. /// /// ## Example Usage /// ### Example @@ -42,9 +42,6 @@ namespace Pulumi.AwsNative.Ec2 [AwsNativeResourceType("aws-native:ec2:InternetGateway")] public partial class InternetGateway : global::Pulumi.CustomResource { - /// - /// ID of internet gateway. - /// [Output("internetGatewayId")] public Output InternetGatewayId { get; private set; } = null!; diff --git a/sdk/dotnet/Ec2/Outputs/LaunchTemplateData.cs b/sdk/dotnet/Ec2/Outputs/LaunchTemplateData.cs index 8ec4e398d1..7a69fda226 100644 --- a/sdk/dotnet/Ec2/Outputs/LaunchTemplateData.cs +++ b/sdk/dotnet/Ec2/Outputs/LaunchTemplateData.cs @@ -97,7 +97,9 @@ public sealed class LaunchTemplateData /// + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. /// + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. /// - /// If you specify ``InstanceReq + /// If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. + /// Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. + /// For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. /// public readonly Outputs.LaunchTemplateInstanceRequirements? InstanceRequirements; /// diff --git a/sdk/dotnet/Ec2/Outputs/LaunchTemplateEbs.cs b/sdk/dotnet/Ec2/Outputs/LaunchTemplateEbs.cs index 31a67441ad..cbb5c074c7 100644 --- a/sdk/dotnet/Ec2/Outputs/LaunchTemplateEbs.cs +++ b/sdk/dotnet/Ec2/Outputs/LaunchTemplateEbs.cs @@ -59,7 +59,7 @@ public sealed class LaunchTemplateEbs /// public readonly int? VolumeSize; /// - /// The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*. + /// The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon EBS User Guide*. /// public readonly string? VolumeType; diff --git a/sdk/dotnet/Ec2/Outputs/LaunchTemplateElasticGpuSpecification.cs b/sdk/dotnet/Ec2/Outputs/LaunchTemplateElasticGpuSpecification.cs index 18b1ed960f..fa6a367c27 100644 --- a/sdk/dotnet/Ec2/Outputs/LaunchTemplateElasticGpuSpecification.cs +++ b/sdk/dotnet/Ec2/Outputs/LaunchTemplateElasticGpuSpecification.cs @@ -11,7 +11,8 @@ namespace Pulumi.AwsNative.Ec2.Outputs { /// - /// Specifies a specification for an Elastic GPU for an Amazon EC2 launch template. + /// Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. + /// Specifies a specification for an Elastic GPU for an Amazon EC2 launch template. /// ``ElasticGpuSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html). /// [OutputType] diff --git a/sdk/dotnet/Ec2/Outputs/LaunchTemplateIamInstanceProfile.cs b/sdk/dotnet/Ec2/Outputs/LaunchTemplateIamInstanceProfile.cs index ad7057298d..4e4a3b1ad1 100644 --- a/sdk/dotnet/Ec2/Outputs/LaunchTemplateIamInstanceProfile.cs +++ b/sdk/dotnet/Ec2/Outputs/LaunchTemplateIamInstanceProfile.cs @@ -12,7 +12,7 @@ namespace Pulumi.AwsNative.Ec2.Outputs /// /// Specifies an IAM instance profile, which is a container for an IAM role for your instance. You can use an IAM role to distribute your AWS credentials to your instances. - /// If you are creating the launch template for use with an Amazon EC2 Auto Scaling group, you can specify either the name or the ARN of the instance profile, but not both. + /// If you are creating the launch template for use with an ASlong group, you can specify either the name or the ARN of the instance profile, but not both. /// ``IamInstanceProfile`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html). /// [OutputType] diff --git a/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirements.cs b/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirements.cs index 41c62fe144..ab7b2d0603 100644 --- a/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirements.cs +++ b/sdk/dotnet/Ec2/Outputs/LaunchTemplateInstanceRequirements.cs @@ -18,7 +18,9 @@ namespace Pulumi.AwsNative.Ec2.Outputs /// + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. /// + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. /// - /// If you specify ``InstanceReq + /// If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. + /// Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. + /// For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. /// [OutputType] public sealed class LaunchTemplateInstanceRequirements @@ -148,8 +150,8 @@ public sealed class LaunchTemplateInstanceRequirements /// /// [Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold. /// The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - /// To indicate no price protection threshold, specify a high value, such as ``999999``. - /// If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instanc + /// If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price. + /// Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. /// public readonly int? MaxSpotPriceAsPercentageOfOptimalOnDemandPrice; /// @@ -176,7 +178,8 @@ public sealed class LaunchTemplateInstanceRequirements /// The parameter accepts an integer, which Amazon EC2 interprets as a percentage. /// To turn off price protection, specify a high value, such as ``999999``. /// This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). - /// If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per- + /// If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. + /// Default: ``20`` /// public readonly int? OnDemandMaxPricePercentageOverLowestPrice; /// @@ -188,8 +191,10 @@ public sealed class LaunchTemplateInstanceRequirements /// /// [Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold. /// The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - /// To indicate no price protection threshold, specify a high value, such as ``999999``. - /// If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price i + /// If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. + /// This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). + /// Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. + /// Default: ``100`` /// public readonly int? SpotMaxPricePercentageOverLowestPrice; /// diff --git a/sdk/dotnet/Ec2/Outputs/LaunchTemplateMaintenanceOptions.cs b/sdk/dotnet/Ec2/Outputs/LaunchTemplateMaintenanceOptions.cs index 673be452ad..44ad48c90b 100644 --- a/sdk/dotnet/Ec2/Outputs/LaunchTemplateMaintenanceOptions.cs +++ b/sdk/dotnet/Ec2/Outputs/LaunchTemplateMaintenanceOptions.cs @@ -20,16 +20,11 @@ public sealed class LaunchTemplateMaintenanceOptions /// Disables the automatic recovery behavior of your instance or sets it to default. /// public readonly string? AutoRecovery; - public readonly string? RebootMigration; [OutputConstructor] - private LaunchTemplateMaintenanceOptions( - string? autoRecovery, - - string? rebootMigration) + private LaunchTemplateMaintenanceOptions(string? autoRecovery) { AutoRecovery = autoRecovery; - RebootMigration = rebootMigration; } } } diff --git a/sdk/dotnet/Ec2/Outputs/LaunchTemplateSpotOptions.cs b/sdk/dotnet/Ec2/Outputs/LaunchTemplateSpotOptions.cs index ff7048c682..58450fe3b2 100644 --- a/sdk/dotnet/Ec2/Outputs/LaunchTemplateSpotOptions.cs +++ b/sdk/dotnet/Ec2/Outputs/LaunchTemplateSpotOptions.cs @@ -32,7 +32,7 @@ public sealed class LaunchTemplateSpotOptions public readonly string? MaxPrice; /// /// The Spot Instance request type. - /// If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is below its desired capacity. + /// If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the ASlong service handles requesting new Spot Instances whenever the group is below its desired capacity. /// public readonly string? SpotInstanceType; /// diff --git a/sdk/dotnet/Ec2/Outputs/PrivateDnsNameOptionsOnLaunchProperties.cs b/sdk/dotnet/Ec2/Outputs/PrivateDnsNameOptionsOnLaunchProperties.cs index 348bab0763..bc5ba5aef6 100644 --- a/sdk/dotnet/Ec2/Outputs/PrivateDnsNameOptionsOnLaunchProperties.cs +++ b/sdk/dotnet/Ec2/Outputs/PrivateDnsNameOptionsOnLaunchProperties.cs @@ -13,9 +13,9 @@ namespace Pulumi.AwsNative.Ec2.Outputs /// /// The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. /// Available options: - /// + EnableResourceNameDnsAAAARecord (true | false) - /// + EnableResourceNameDnsARecord (true | false) - /// + HostnameType (ip-name | resource-name) + /// + EnableResourceNameDnsAAAARecord (true | false) + /// + EnableResourceNameDnsARecord (true | false) + /// + HostnameType (ip-name | resource-name) /// [OutputType] public sealed class PrivateDnsNameOptionsOnLaunchProperties diff --git a/sdk/dotnet/Ec2/Subnet.cs b/sdk/dotnet/Ec2/Subnet.cs index 5b0397309d..8fff0fae38 100644 --- a/sdk/dotnet/Ec2/Subnet.cs +++ b/sdk/dotnet/Ec2/Subnet.cs @@ -50,6 +50,12 @@ public partial class Subnet : global::Pulumi.CustomResource [Output("enableDns64")] public Output EnableDns64 { get; private set; } = null!; + /// + /// Indicates the device position for local network interfaces in this subnet. For example, ``1`` indicates local network interfaces in this subnet are the secondary network interface (eth1). + /// + [Output("enableLniAtDeviceIndex")] + public Output EnableLniAtDeviceIndex { get; private set; } = null!; + /// /// An IPv4 IPAM pool ID for the subnet. /// @@ -95,7 +101,7 @@ public partial class Subnet : global::Pulumi.CustomResource /// /// Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``. - /// AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). + /// AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). /// [Output("mapPublicIpOnLaunch")] public Output MapPublicIpOnLaunch { get; private set; } = null!; @@ -112,9 +118,9 @@ public partial class Subnet : global::Pulumi.CustomResource /// /// The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. /// Available options: - /// + EnableResourceNameDnsAAAARecord (true | false) - /// + EnableResourceNameDnsARecord (true | false) - /// + HostnameType (ip-name | resource-name) + /// + EnableResourceNameDnsAAAARecord (true | false) + /// + EnableResourceNameDnsARecord (true | false) + /// + HostnameType (ip-name | resource-name) /// [Output("privateDnsNameOptionsOnLaunch")] public Output PrivateDnsNameOptionsOnLaunch { get; private set; } = null!; @@ -226,6 +232,12 @@ public sealed class SubnetArgs : global::Pulumi.ResourceArgs [Input("enableDns64")] public Input? EnableDns64 { get; set; } + /// + /// Indicates the device position for local network interfaces in this subnet. For example, ``1`` indicates local network interfaces in this subnet are the secondary network interface (eth1). + /// + [Input("enableLniAtDeviceIndex")] + public Input? EnableLniAtDeviceIndex { get; set; } + /// /// An IPv4 IPAM pool ID for the subnet. /// @@ -277,7 +289,7 @@ public InputList Ipv6CidrBlocks /// /// Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``. - /// AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). + /// AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). /// [Input("mapPublicIpOnLaunch")] public Input? MapPublicIpOnLaunch { get; set; } @@ -291,9 +303,9 @@ public InputList Ipv6CidrBlocks /// /// The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. /// Available options: - /// + EnableResourceNameDnsAAAARecord (true | false) - /// + EnableResourceNameDnsARecord (true | false) - /// + HostnameType (ip-name | resource-name) + /// + EnableResourceNameDnsAAAARecord (true | false) + /// + EnableResourceNameDnsARecord (true | false) + /// + HostnameType (ip-name | resource-name) /// [Input("privateDnsNameOptionsOnLaunch")] public Input? PrivateDnsNameOptionsOnLaunch { get; set; } diff --git a/sdk/dotnet/Ec2/TransitGatewayRouteTableAssociation.cs b/sdk/dotnet/Ec2/TransitGatewayRouteTableAssociation.cs index 4b36095494..6961e58c18 100644 --- a/sdk/dotnet/Ec2/TransitGatewayRouteTableAssociation.cs +++ b/sdk/dotnet/Ec2/TransitGatewayRouteTableAssociation.cs @@ -15,12 +15,15 @@ namespace Pulumi.AwsNative.Ec2 [AwsNativeResourceType("aws-native:ec2:TransitGatewayRouteTableAssociation")] public partial class TransitGatewayRouteTableAssociation : global::Pulumi.CustomResource { - [Output("awsId")] - public Output AwsId { get; private set; } = null!; - + /// + /// The ID of transit gateway attachment. + /// [Output("transitGatewayAttachmentId")] public Output TransitGatewayAttachmentId { get; private set; } = null!; + /// + /// The ID of transit gateway route table. + /// [Output("transitGatewayRouteTableId")] public Output TransitGatewayRouteTableId { get; private set; } = null!; @@ -74,9 +77,15 @@ public static TransitGatewayRouteTableAssociation Get(string name, Input public sealed class TransitGatewayRouteTableAssociationArgs : global::Pulumi.ResourceArgs { + /// + /// The ID of transit gateway attachment. + /// [Input("transitGatewayAttachmentId", required: true)] public Input TransitGatewayAttachmentId { get; set; } = null!; + /// + /// The ID of transit gateway route table. + /// [Input("transitGatewayRouteTableId", required: true)] public Input TransitGatewayRouteTableId { get; set; } = null!; diff --git a/sdk/dotnet/Efs/Enums.cs b/sdk/dotnet/Efs/Enums.cs index 0ccf99b9fd..3ff42ddb55 100644 --- a/sdk/dotnet/Efs/Enums.cs +++ b/sdk/dotnet/Efs/Enums.cs @@ -7,6 +7,39 @@ namespace Pulumi.AwsNative.Efs { + /// + /// Set the backup policy status for the file system. + /// + *ENABLED* - Turns automatic backups on for the file system. + /// + *DISABLED* - Turns automatic backups off for the file system. + /// + [EnumType] + public readonly struct FileSystemBackupPolicyStatus : IEquatable + { + private readonly string _value; + + private FileSystemBackupPolicyStatus(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static FileSystemBackupPolicyStatus Disabled { get; } = new FileSystemBackupPolicyStatus("DISABLED"); + public static FileSystemBackupPolicyStatus Enabled { get; } = new FileSystemBackupPolicyStatus("ENABLED"); + + public static bool operator ==(FileSystemBackupPolicyStatus left, FileSystemBackupPolicyStatus right) => left.Equals(right); + public static bool operator !=(FileSystemBackupPolicyStatus left, FileSystemBackupPolicyStatus right) => !left.Equals(right); + + public static explicit operator string(FileSystemBackupPolicyStatus value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is FileSystemBackupPolicyStatus other && Equals(other); + public bool Equals(FileSystemBackupPolicyStatus 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 file system's replication overwrite protection. /// + ``ENABLED`` – The file system cannot be used as the destination file system in a replication configuration. The file system is writeable. Replication overwrite protection is ``ENABLED`` by default. diff --git a/sdk/dotnet/Efs/Inputs/FileSystemBackupPolicyArgs.cs b/sdk/dotnet/Efs/Inputs/FileSystemBackupPolicyArgs.cs index 4c9e56adad..9ab45a7749 100644 --- a/sdk/dotnet/Efs/Inputs/FileSystemBackupPolicyArgs.cs +++ b/sdk/dotnet/Efs/Inputs/FileSystemBackupPolicyArgs.cs @@ -21,7 +21,7 @@ public sealed class FileSystemBackupPolicyArgs : global::Pulumi.ResourceArgs /// + *DISABLED* - Turns automatic backups off for the file system. /// [Input("status", required: true)] - public Input Status { get; set; } = null!; + public Input Status { get; set; } = null!; public FileSystemBackupPolicyArgs() { diff --git a/sdk/dotnet/Efs/Outputs/FileSystemBackupPolicy.cs b/sdk/dotnet/Efs/Outputs/FileSystemBackupPolicy.cs index 3ce064138c..003c4fefc7 100644 --- a/sdk/dotnet/Efs/Outputs/FileSystemBackupPolicy.cs +++ b/sdk/dotnet/Efs/Outputs/FileSystemBackupPolicy.cs @@ -21,10 +21,10 @@ public sealed class FileSystemBackupPolicy /// + *ENABLED* - Turns automatic backups on for the file system. /// + *DISABLED* - Turns automatic backups off for the file system. /// - public readonly string Status; + public readonly Pulumi.AwsNative.Efs.FileSystemBackupPolicyStatus Status; [OutputConstructor] - private FileSystemBackupPolicy(string status) + private FileSystemBackupPolicy(Pulumi.AwsNative.Efs.FileSystemBackupPolicyStatus status) { Status = status; } diff --git a/sdk/dotnet/ElastiCache/Enums.cs b/sdk/dotnet/ElastiCache/Enums.cs index cd912a3164..33c61367ba 100644 --- a/sdk/dotnet/ElastiCache/Enums.cs +++ b/sdk/dotnet/ElastiCache/Enums.cs @@ -39,7 +39,7 @@ private GlobalReplicationGroupMemberRole(string value) } /// - /// The unix of cached data capacity of the Serverless Cache. + /// The unit of cached data capacity of the Serverless Cache. /// [EnumType] public readonly struct ServerlessCacheDataStorageUnit : IEquatable diff --git a/sdk/dotnet/ElastiCache/Inputs/ServerlessCacheDataStorageArgs.cs b/sdk/dotnet/ElastiCache/Inputs/ServerlessCacheDataStorageArgs.cs index 87732741d3..b3d199ea3b 100644 --- a/sdk/dotnet/ElastiCache/Inputs/ServerlessCacheDataStorageArgs.cs +++ b/sdk/dotnet/ElastiCache/Inputs/ServerlessCacheDataStorageArgs.cs @@ -18,11 +18,17 @@ public sealed class ServerlessCacheDataStorageArgs : global::Pulumi.ResourceArgs /// /// The maximum cached data capacity of the Serverless Cache. /// - [Input("maximum", required: true)] - public Input Maximum { get; set; } = null!; + [Input("maximum")] + public Input? Maximum { get; set; } /// - /// The unix of cached data capacity of the Serverless Cache. + /// The minimum cached data capacity of the Serverless Cache. + /// + [Input("minimum")] + public Input? Minimum { get; set; } + + /// + /// The unit of cached data capacity of the Serverless Cache. /// [Input("unit", required: true)] public Input Unit { get; set; } = null!; diff --git a/sdk/dotnet/ElastiCache/Inputs/ServerlessCacheEcpuPerSecondArgs.cs b/sdk/dotnet/ElastiCache/Inputs/ServerlessCacheEcpuPerSecondArgs.cs index 1aa6695a67..bf3f6dd20b 100644 --- a/sdk/dotnet/ElastiCache/Inputs/ServerlessCacheEcpuPerSecondArgs.cs +++ b/sdk/dotnet/ElastiCache/Inputs/ServerlessCacheEcpuPerSecondArgs.cs @@ -18,8 +18,14 @@ public sealed class ServerlessCacheEcpuPerSecondArgs : global::Pulumi.ResourceAr /// /// The maximum ECPU per second of the Serverless Cache. /// - [Input("maximum", required: true)] - public Input Maximum { get; set; } = null!; + [Input("maximum")] + public Input? Maximum { get; set; } + + /// + /// The minimum ECPU per second of the Serverless Cache. + /// + [Input("minimum")] + public Input? Minimum { get; set; } public ServerlessCacheEcpuPerSecondArgs() { diff --git a/sdk/dotnet/ElastiCache/Outputs/ServerlessCacheDataStorage.cs b/sdk/dotnet/ElastiCache/Outputs/ServerlessCacheDataStorage.cs index bedfe89e96..8233c560be 100644 --- a/sdk/dotnet/ElastiCache/Outputs/ServerlessCacheDataStorage.cs +++ b/sdk/dotnet/ElastiCache/Outputs/ServerlessCacheDataStorage.cs @@ -19,19 +19,26 @@ public sealed class ServerlessCacheDataStorage /// /// The maximum cached data capacity of the Serverless Cache. /// - public readonly int Maximum; + public readonly int? Maximum; /// - /// The unix of cached data capacity of the Serverless Cache. + /// The minimum cached data capacity of the Serverless Cache. + /// + public readonly int? Minimum; + /// + /// The unit of cached data capacity of the Serverless Cache. /// public readonly Pulumi.AwsNative.ElastiCache.ServerlessCacheDataStorageUnit Unit; [OutputConstructor] private ServerlessCacheDataStorage( - int maximum, + int? maximum, + + int? minimum, Pulumi.AwsNative.ElastiCache.ServerlessCacheDataStorageUnit unit) { Maximum = maximum; + Minimum = minimum; Unit = unit; } } diff --git a/sdk/dotnet/ElastiCache/Outputs/ServerlessCacheEcpuPerSecond.cs b/sdk/dotnet/ElastiCache/Outputs/ServerlessCacheEcpuPerSecond.cs index 862ddc4e0b..f7d3cd0d27 100644 --- a/sdk/dotnet/ElastiCache/Outputs/ServerlessCacheEcpuPerSecond.cs +++ b/sdk/dotnet/ElastiCache/Outputs/ServerlessCacheEcpuPerSecond.cs @@ -19,12 +19,20 @@ public sealed class ServerlessCacheEcpuPerSecond /// /// The maximum ECPU per second of the Serverless Cache. /// - public readonly int Maximum; + public readonly int? Maximum; + /// + /// The minimum ECPU per second of the Serverless Cache. + /// + public readonly int? Minimum; [OutputConstructor] - private ServerlessCacheEcpuPerSecond(int maximum) + private ServerlessCacheEcpuPerSecond( + int? maximum, + + int? minimum) { Maximum = maximum; + Minimum = minimum; } } } diff --git a/sdk/dotnet/EntityResolution/Enums.cs b/sdk/dotnet/EntityResolution/Enums.cs index a9bf4f9214..da358a2acf 100644 --- a/sdk/dotnet/EntityResolution/Enums.cs +++ b/sdk/dotnet/EntityResolution/Enums.cs @@ -34,6 +34,34 @@ private IdMappingWorkflowIdMappingTechniquesIdMappingType(string value) public override string ToString() => _value; } + [EnumType] + public readonly struct IdMappingWorkflowInputSourceType : IEquatable + { + private readonly string _value; + + private IdMappingWorkflowInputSourceType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static IdMappingWorkflowInputSourceType Source { get; } = new IdMappingWorkflowInputSourceType("SOURCE"); + public static IdMappingWorkflowInputSourceType Target { get; } = new IdMappingWorkflowInputSourceType("TARGET"); + + public static bool operator ==(IdMappingWorkflowInputSourceType left, IdMappingWorkflowInputSourceType right) => left.Equals(right); + public static bool operator !=(IdMappingWorkflowInputSourceType left, IdMappingWorkflowInputSourceType right) => !left.Equals(right); + + public static explicit operator string(IdMappingWorkflowInputSourceType value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is IdMappingWorkflowInputSourceType other && Equals(other); + public bool Equals(IdMappingWorkflowInputSourceType other) => string.Equals(_value, other._value, StringComparison.Ordinal); + + [EditorBrowsable(EditorBrowsableState.Never)] + public override int GetHashCode() => _value?.GetHashCode() ?? 0; + + public override string ToString() => _value; + } + [EnumType] public readonly struct MatchingWorkflowResolutionTechniquesResolutionType : IEquatable { diff --git a/sdk/dotnet/EntityResolution/IdMappingWorkflow.cs b/sdk/dotnet/EntityResolution/IdMappingWorkflow.cs index ae038b0e9b..4ebc4c03c7 100644 --- a/sdk/dotnet/EntityResolution/IdMappingWorkflow.cs +++ b/sdk/dotnet/EntityResolution/IdMappingWorkflow.cs @@ -117,7 +117,7 @@ public InputList InputSourceConfig set => _inputSourceConfig = value; } - [Input("outputSourceConfig", required: true)] + [Input("outputSourceConfig")] private InputList? _outputSourceConfig; public InputList OutputSourceConfig { diff --git a/sdk/dotnet/EntityResolution/Inputs/IdMappingWorkflowInputSourceArgs.cs b/sdk/dotnet/EntityResolution/Inputs/IdMappingWorkflowInputSourceArgs.cs index 6a2aeefe9b..b51607607d 100644 --- a/sdk/dotnet/EntityResolution/Inputs/IdMappingWorkflowInputSourceArgs.cs +++ b/sdk/dotnet/EntityResolution/Inputs/IdMappingWorkflowInputSourceArgs.cs @@ -13,13 +13,16 @@ namespace Pulumi.AwsNative.EntityResolution.Inputs public sealed class IdMappingWorkflowInputSourceArgs : global::Pulumi.ResourceArgs { /// - /// An Glue table ARN for the input source table + /// An Glue table ARN for the input source table or IdNamespace ARN /// [Input("inputSourceArn", required: true)] public Input InputSourceArn { get; set; } = null!; - [Input("schemaArn", required: true)] - public Input SchemaArn { get; set; } = null!; + [Input("schemaArn")] + public Input? SchemaArn { get; set; } + + [Input("type")] + public Input? Type { get; set; } public IdMappingWorkflowInputSourceArgs() { diff --git a/sdk/dotnet/EntityResolution/Outputs/IdMappingWorkflowInputSource.cs b/sdk/dotnet/EntityResolution/Outputs/IdMappingWorkflowInputSource.cs index 0e0b0ab877..04621ae5c2 100644 --- a/sdk/dotnet/EntityResolution/Outputs/IdMappingWorkflowInputSource.cs +++ b/sdk/dotnet/EntityResolution/Outputs/IdMappingWorkflowInputSource.cs @@ -14,19 +14,23 @@ namespace Pulumi.AwsNative.EntityResolution.Outputs public sealed class IdMappingWorkflowInputSource { /// - /// An Glue table ARN for the input source table + /// An Glue table ARN for the input source table or IdNamespace ARN /// public readonly string InputSourceArn; - public readonly string SchemaArn; + public readonly string? SchemaArn; + public readonly Pulumi.AwsNative.EntityResolution.IdMappingWorkflowInputSourceType? Type; [OutputConstructor] private IdMappingWorkflowInputSource( string inputSourceArn, - string schemaArn) + string? schemaArn, + + Pulumi.AwsNative.EntityResolution.IdMappingWorkflowInputSourceType? type) { InputSourceArn = inputSourceArn; SchemaArn = schemaArn; + Type = type; } } } diff --git a/sdk/dotnet/GameLift/GameServerGroup.cs b/sdk/dotnet/GameLift/GameServerGroup.cs index 8614718a0f..bfd0336095 100644 --- a/sdk/dotnet/GameLift/GameServerGroup.cs +++ b/sdk/dotnet/GameLift/GameServerGroup.cs @@ -22,7 +22,7 @@ public partial class GameServerGroup : global::Pulumi.CustomResource public Output AutoScalingGroupArn { get; private set; } = null!; /// - /// Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting + /// Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. /// [Output("autoScalingPolicy")] public Output AutoScalingPolicy { get; private set; } = null!; @@ -64,19 +64,19 @@ public partial class GameServerGroup : global::Pulumi.CustomResource public Output> InstanceDefinitions { get; private set; } = null!; /// - /// The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. + /// The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. /// [Output("launchTemplate")] public Output LaunchTemplate { get; private set; } = null!; /// - /// The maximum number of instances allowed in the EC2 Auto Scaling group. + /// The maximum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. /// [Output("maxSize")] public Output MaxSize { get; private set; } = null!; /// - /// The minimum number of instances allowed in the EC2 Auto Scaling group. + /// The minimum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. /// [Output("minSize")] public Output MinSize { get; private set; } = null!; @@ -88,13 +88,13 @@ public partial class GameServerGroup : global::Pulumi.CustomResource public Output RoleArn { get; private set; } = null!; /// - /// A list of labels to assign to the new game server group resource. + /// A list of labels to assign to the new game server group resource. Updating game server group tags with CloudFormation will not take effect. Please update this property using AWS GameLift APIs instead. /// [Output("tags")] public Output> Tags { get; private set; } = null!; /// - /// A list of virtual private cloud (VPC) subnets to use with instances in the game server group. + /// A list of virtual private cloud (VPC) subnets to use with instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. /// [Output("vpcSubnets")] public Output> VpcSubnets { get; private set; } = null!; @@ -145,7 +145,7 @@ public static GameServerGroup Get(string name, Input id, CustomResourceO public sealed class GameServerGroupArgs : global::Pulumi.ResourceArgs { /// - /// Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting + /// Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. /// [Input("autoScalingPolicy")] public Input? AutoScalingPolicy { get; set; } @@ -187,19 +187,19 @@ public InputList InstanceDefinitio } /// - /// The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. + /// The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. /// [Input("launchTemplate")] public Input? LaunchTemplate { get; set; } /// - /// The maximum number of instances allowed in the EC2 Auto Scaling group. + /// The maximum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. /// [Input("maxSize")] public Input? MaxSize { get; set; } /// - /// The minimum number of instances allowed in the EC2 Auto Scaling group. + /// The minimum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. /// [Input("minSize")] public Input? MinSize { get; set; } @@ -214,7 +214,7 @@ public InputList InstanceDefinitio private InputList? _tags; /// - /// A list of labels to assign to the new game server group resource. + /// A list of labels to assign to the new game server group resource. Updating game server group tags with CloudFormation will not take effect. Please update this property using AWS GameLift APIs instead. /// public InputList Tags { @@ -226,7 +226,7 @@ public InputList Tags private InputList? _vpcSubnets; /// - /// A list of virtual private cloud (VPC) subnets to use with instances in the game server group. + /// A list of virtual private cloud (VPC) subnets to use with instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. /// public InputList VpcSubnets { diff --git a/sdk/dotnet/GameLift/Inputs/GameServerGroupAutoScalingPolicyArgs.cs b/sdk/dotnet/GameLift/Inputs/GameServerGroupAutoScalingPolicyArgs.cs index 938de9d9d5..01eb3222bb 100644 --- a/sdk/dotnet/GameLift/Inputs/GameServerGroupAutoScalingPolicyArgs.cs +++ b/sdk/dotnet/GameLift/Inputs/GameServerGroupAutoScalingPolicyArgs.cs @@ -11,7 +11,7 @@ namespace Pulumi.AwsNative.GameLift.Inputs { /// - /// Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting + /// Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. /// public sealed class GameServerGroupAutoScalingPolicyArgs : global::Pulumi.ResourceArgs { diff --git a/sdk/dotnet/GameLift/Inputs/GameServerGroupLaunchTemplateArgs.cs b/sdk/dotnet/GameLift/Inputs/GameServerGroupLaunchTemplateArgs.cs index fc12740fec..851373151b 100644 --- a/sdk/dotnet/GameLift/Inputs/GameServerGroupLaunchTemplateArgs.cs +++ b/sdk/dotnet/GameLift/Inputs/GameServerGroupLaunchTemplateArgs.cs @@ -11,7 +11,7 @@ namespace Pulumi.AwsNative.GameLift.Inputs { /// - /// The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. + /// The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. /// public sealed class GameServerGroupLaunchTemplateArgs : global::Pulumi.ResourceArgs { diff --git a/sdk/dotnet/GameLift/Outputs/GameServerGroupAutoScalingPolicy.cs b/sdk/dotnet/GameLift/Outputs/GameServerGroupAutoScalingPolicy.cs index ee0d38a9de..5c629f1711 100644 --- a/sdk/dotnet/GameLift/Outputs/GameServerGroupAutoScalingPolicy.cs +++ b/sdk/dotnet/GameLift/Outputs/GameServerGroupAutoScalingPolicy.cs @@ -11,7 +11,7 @@ namespace Pulumi.AwsNative.GameLift.Outputs { /// - /// Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting + /// Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. /// [OutputType] public sealed class GameServerGroupAutoScalingPolicy diff --git a/sdk/dotnet/GameLift/Outputs/GameServerGroupLaunchTemplate.cs b/sdk/dotnet/GameLift/Outputs/GameServerGroupLaunchTemplate.cs index d19c71d2eb..fbc5068858 100644 --- a/sdk/dotnet/GameLift/Outputs/GameServerGroupLaunchTemplate.cs +++ b/sdk/dotnet/GameLift/Outputs/GameServerGroupLaunchTemplate.cs @@ -11,7 +11,7 @@ namespace Pulumi.AwsNative.GameLift.Outputs { /// - /// The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. + /// The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. /// [OutputType] public sealed class GameServerGroupLaunchTemplate diff --git a/sdk/dotnet/Iam/GetManagedPolicy.cs b/sdk/dotnet/Iam/GetManagedPolicy.cs index 8c48d5bab2..e335fa9e44 100644 --- a/sdk/dotnet/Iam/GetManagedPolicy.cs +++ b/sdk/dotnet/Iam/GetManagedPolicy.cs @@ -12,13 +12,19 @@ namespace Pulumi.AwsNative.Iam public static class GetManagedPolicy { /// - /// Resource Type definition for AWS::IAM::ManagedPolicy + /// Creates a new managed policy for your AWS-account. + /// This operation creates a policy version with a version identifier of ``v1`` and sets v1 as the policy's default version. For more information about policy versions, see [Versioning for managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) in the *IAM User Guide*. + /// As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) in the *IAM User Guide*. + /// For more information about managed policies in general, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*. /// public static Task InvokeAsync(GetManagedPolicyArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:iam:getManagedPolicy", args ?? new GetManagedPolicyArgs(), options.WithDefaults()); /// - /// Resource Type definition for AWS::IAM::ManagedPolicy + /// Creates a new managed policy for your AWS-account. + /// This operation creates a policy version with a version identifier of ``v1`` and sets v1 as the policy's default version. For more information about policy versions, see [Versioning for managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) in the *IAM User Guide*. + /// As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) in the *IAM User Guide*. + /// For more information about managed policies in general, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*. /// public static Output Invoke(GetManagedPolicyInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("aws-native:iam:getManagedPolicy", args ?? new GetManagedPolicyInvokeArgs(), options.WithDefaults()); @@ -27,9 +33,6 @@ public static Output Invoke(GetManagedPolicyInvokeArgs a public sealed class GetManagedPolicyArgs : global::Pulumi.InvokeArgs { - /// - /// Amazon Resource Name (ARN) of the managed policy - /// [Input("policyArn", required: true)] public string PolicyArn { get; set; } = null!; @@ -41,9 +44,6 @@ public GetManagedPolicyArgs() public sealed class GetManagedPolicyInvokeArgs : global::Pulumi.InvokeArgs { - /// - /// Amazon Resource Name (ARN) of the managed policy - /// [Input("policyArn", required: true)] public Input PolicyArn { get; set; } = null!; @@ -57,54 +57,41 @@ public GetManagedPolicyInvokeArgs() [OutputType] public sealed class GetManagedPolicyResult { - /// - /// The number of entities (users, groups, and roles) that the policy is attached to. - /// public readonly int? AttachmentCount; - /// - /// The date and time, in ISO 8601 date-time format, when the policy was created. - /// public readonly string? CreateDate; - /// - /// The identifier for the version of the policy that is set as the default version. - /// public readonly string? DefaultVersionId; /// /// The name (friendly name, not ARN) of the group to attach the policy to. + /// This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- /// public readonly ImmutableArray Groups; - /// - /// Specifies whether the policy can be attached to an IAM user, group, or role. - /// public readonly bool? IsAttachable; - /// - /// The number of entities (users and roles) for which the policy is used to set the permissions boundary. - /// public readonly int? PermissionsBoundaryUsageCount; - /// - /// Amazon Resource Name (ARN) of the managed policy - /// public readonly string? PolicyArn; /// /// The JSON policy document that you want to use as the content for the new policy. + /// You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM. + /// The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + /// To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. + /// The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: + /// + Any printable ASCII character ranging from the space character (``\u0020``) through the end of the ASCII character range + /// + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\u00FF``) + /// + The special characters tab (``\u0009``), line feed (``\u000A``), and carriage return (``\u000D``) /// /// Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property. /// public readonly object? PolicyDocument; - /// - /// The stable and unique string identifying the policy. - /// public readonly string? PolicyId; /// /// The name (friendly name, not ARN) of the role to attach the policy to. + /// This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + /// If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy. /// public readonly ImmutableArray Roles; - /// - /// The date and time, in ISO 8601 date-time format, when the policy was last updated. - /// public readonly string? UpdateDate; /// /// The name (friendly name, not ARN) of the IAM user to attach the policy to. + /// This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- /// public readonly ImmutableArray Users; diff --git a/sdk/dotnet/Iam/ManagedPolicy.cs b/sdk/dotnet/Iam/ManagedPolicy.cs index ce1e5e2de4..033dbba6ce 100644 --- a/sdk/dotnet/Iam/ManagedPolicy.cs +++ b/sdk/dotnet/Iam/ManagedPolicy.cs @@ -10,99 +10,98 @@ namespace Pulumi.AwsNative.Iam { /// - /// Resource Type definition for AWS::IAM::ManagedPolicy + /// Creates a new managed policy for your AWS-account. + /// This operation creates a policy version with a version identifier of ``v1`` and sets v1 as the policy's default version. For more information about policy versions, see [Versioning for managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) in the *IAM User Guide*. + /// As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) in the *IAM User Guide*. + /// For more information about managed policies in general, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*. /// [AwsNativeResourceType("aws-native:iam:ManagedPolicy")] public partial class ManagedPolicy : global::Pulumi.CustomResource { - /// - /// The number of entities (users, groups, and roles) that the policy is attached to. - /// [Output("attachmentCount")] public Output AttachmentCount { get; private set; } = null!; - /// - /// The date and time, in ISO 8601 date-time format, when the policy was created. - /// [Output("createDate")] public Output CreateDate { get; private set; } = null!; - /// - /// The identifier for the version of the policy that is set as the default version. - /// [Output("defaultVersionId")] public Output DefaultVersionId { get; private set; } = null!; /// /// A friendly description of the policy. + /// Typically used to store information about the permissions defined in the policy. For example, "Grants access to production DynamoDB tables." + /// The policy description is immutable. After a value is assigned, it cannot be changed. /// [Output("description")] public Output Description { get; private set; } = null!; /// /// The name (friendly name, not ARN) of the group to attach the policy to. + /// This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- /// [Output("groups")] public Output> Groups { get; private set; } = null!; - /// - /// Specifies whether the policy can be attached to an IAM user, group, or role. - /// [Output("isAttachable")] public Output IsAttachable { get; private set; } = null!; /// /// The friendly name of the policy. + /// If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. + /// If you specify a name, you must specify the ``CAPABILITY_NAMED_IAM`` value to acknowledge your template's capabilities. For more information, see [Acknowledging Resources in Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities). + /// Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using ``Fn::Join`` and ``AWS::Region`` to create a Region-specific name, as in the following example: ``{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}``. /// [Output("managedPolicyName")] public Output ManagedPolicyName { get; private set; } = null!; /// /// The path for the policy. + /// For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*. + /// This parameter is optional. If it is not included, it defaults to a slash (/). + /// This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (``\u0021``) through the DEL character (``\u007F``), including most punctuation characters, digits, and upper and lowercased letters. + /// You cannot use an asterisk (*) in the path name. /// [Output("path")] public Output Path { get; private set; } = null!; - /// - /// The number of entities (users and roles) for which the policy is used to set the permissions boundary. - /// [Output("permissionsBoundaryUsageCount")] public Output PermissionsBoundaryUsageCount { get; private set; } = null!; - /// - /// Amazon Resource Name (ARN) of the managed policy - /// [Output("policyArn")] public Output PolicyArn { get; private set; } = null!; /// /// The JSON policy document that you want to use as the content for the new policy. + /// You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM. + /// The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + /// To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. + /// The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: + /// + Any printable ASCII character ranging from the space character (``\u0020``) through the end of the ASCII character range + /// + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\u00FF``) + /// + The special characters tab (``\u0009``), line feed (``\u000A``), and carriage return (``\u000D``) /// /// Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property. /// [Output("policyDocument")] public Output PolicyDocument { get; private set; } = null!; - /// - /// The stable and unique string identifying the policy. - /// [Output("policyId")] public Output PolicyId { get; private set; } = null!; /// /// The name (friendly name, not ARN) of the role to attach the policy to. + /// This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + /// If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy. /// [Output("roles")] public Output> Roles { get; private set; } = null!; - /// - /// The date and time, in ISO 8601 date-time format, when the policy was last updated. - /// [Output("updateDate")] public Output UpdateDate { get; private set; } = null!; /// /// The name (friendly name, not ARN) of the IAM user to attach the policy to. + /// This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- /// [Output("users")] public Output> Users { get; private set; } = null!; @@ -160,6 +159,8 @@ public sealed class ManagedPolicyArgs : global::Pulumi.ResourceArgs { /// /// A friendly description of the policy. + /// Typically used to store information about the permissions defined in the policy. For example, "Grants access to production DynamoDB tables." + /// The policy description is immutable. After a value is assigned, it cannot be changed. /// [Input("description")] public Input? Description { get; set; } @@ -169,6 +170,7 @@ public sealed class ManagedPolicyArgs : global::Pulumi.ResourceArgs /// /// The name (friendly name, not ARN) of the group to attach the policy to. + /// This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- /// public InputList Groups { @@ -178,18 +180,32 @@ public InputList Groups /// /// The friendly name of the policy. + /// If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. + /// If you specify a name, you must specify the ``CAPABILITY_NAMED_IAM`` value to acknowledge your template's capabilities. For more information, see [Acknowledging Resources in Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities). + /// Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using ``Fn::Join`` and ``AWS::Region`` to create a Region-specific name, as in the following example: ``{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}``. /// [Input("managedPolicyName")] public Input? ManagedPolicyName { get; set; } /// /// The path for the policy. + /// For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*. + /// This parameter is optional. If it is not included, it defaults to a slash (/). + /// This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (``\u0021``) through the DEL character (``\u007F``), including most punctuation characters, digits, and upper and lowercased letters. + /// You cannot use an asterisk (*) in the path name. /// [Input("path")] public Input? Path { get; set; } /// /// The JSON policy document that you want to use as the content for the new policy. + /// You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM. + /// The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + /// To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. + /// The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: + /// + Any printable ASCII character ranging from the space character (``\u0020``) through the end of the ASCII character range + /// + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\u00FF``) + /// + The special characters tab (``\u0009``), line feed (``\u000A``), and carriage return (``\u000D``) /// /// Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property. /// @@ -201,6 +217,8 @@ public InputList Groups /// /// The name (friendly name, not ARN) of the role to attach the policy to. + /// This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + /// If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy. /// public InputList Roles { @@ -213,6 +231,7 @@ public InputList Roles /// /// The name (friendly name, not ARN) of the IAM user to attach the policy to. + /// This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- /// public InputList Users { diff --git a/sdk/dotnet/IoTSiteWise/Inputs/GatewayPlatformArgs.cs b/sdk/dotnet/IoTSiteWise/Inputs/GatewayPlatformArgs.cs index 1c773cc179..f5bfc109e2 100644 --- a/sdk/dotnet/IoTSiteWise/Inputs/GatewayPlatformArgs.cs +++ b/sdk/dotnet/IoTSiteWise/Inputs/GatewayPlatformArgs.cs @@ -27,6 +27,12 @@ public sealed class GatewayPlatformArgs : global::Pulumi.ResourceArgs [Input("greengrassV2")] public Input? GreengrassV2 { get; set; } + /// + /// A gateway that runs on Siemens Industrial Edge. + /// + [Input("siemensIe")] + public Input? SiemensIe { get; set; } + public GatewayPlatformArgs() { } diff --git a/sdk/dotnet/IoTSiteWise/Inputs/GatewaySiemensIeArgs.cs b/sdk/dotnet/IoTSiteWise/Inputs/GatewaySiemensIeArgs.cs new file mode 100644 index 0000000000..59ae9c5ac4 --- /dev/null +++ b/sdk/dotnet/IoTSiteWise/Inputs/GatewaySiemensIeArgs.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.IoTSiteWise.Inputs +{ + + /// + /// Contains the IotCoreThingName of AWS IoT Thing that the gateway runs on. + /// + public sealed class GatewaySiemensIeArgs : global::Pulumi.ResourceArgs + { + /// + /// The name of the IoT Core Thing. + /// + [Input("iotCoreThingName", required: true)] + public Input IotCoreThingName { get; set; } = null!; + + public GatewaySiemensIeArgs() + { + } + public static new GatewaySiemensIeArgs Empty => new GatewaySiemensIeArgs(); + } +} diff --git a/sdk/dotnet/IoTSiteWise/Outputs/GatewayPlatform.cs b/sdk/dotnet/IoTSiteWise/Outputs/GatewayPlatform.cs index 83d652d2b2..4c667ef6cc 100644 --- a/sdk/dotnet/IoTSiteWise/Outputs/GatewayPlatform.cs +++ b/sdk/dotnet/IoTSiteWise/Outputs/GatewayPlatform.cs @@ -24,15 +24,22 @@ public sealed class GatewayPlatform /// A gateway that runs on AWS IoT Greengrass V2. /// public readonly Outputs.GatewayGreengrassV2? GreengrassV2; + /// + /// A gateway that runs on Siemens Industrial Edge. + /// + public readonly Outputs.GatewaySiemensIe? SiemensIe; [OutputConstructor] private GatewayPlatform( Outputs.GatewayGreengrass? greengrass, - Outputs.GatewayGreengrassV2? greengrassV2) + Outputs.GatewayGreengrassV2? greengrassV2, + + Outputs.GatewaySiemensIe? siemensIe) { Greengrass = greengrass; GreengrassV2 = greengrassV2; + SiemensIe = siemensIe; } } } diff --git a/sdk/dotnet/IoTSiteWise/Outputs/GatewaySiemensIe.cs b/sdk/dotnet/IoTSiteWise/Outputs/GatewaySiemensIe.cs new file mode 100644 index 0000000000..ae0fafea68 --- /dev/null +++ b/sdk/dotnet/IoTSiteWise/Outputs/GatewaySiemensIe.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.IoTSiteWise.Outputs +{ + + /// + /// Contains the IotCoreThingName of AWS IoT Thing that the gateway runs on. + /// + [OutputType] + public sealed class GatewaySiemensIe + { + /// + /// The name of the IoT Core Thing. + /// + public readonly string IotCoreThingName; + + [OutputConstructor] + private GatewaySiemensIe(string iotCoreThingName) + { + IotCoreThingName = iotCoreThingName; + } + } +} diff --git a/sdk/dotnet/KafkaConnect/CustomPlugin.cs b/sdk/dotnet/KafkaConnect/CustomPlugin.cs new file mode 100644 index 0000000000..ddcf6a4de1 --- /dev/null +++ b/sdk/dotnet/KafkaConnect/CustomPlugin.cs @@ -0,0 +1,150 @@ +// *** 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.KafkaConnect +{ + /// + /// An example resource schema demonstrating some basic constructs and validation rules. + /// + [AwsNativeResourceType("aws-native:kafkaconnect:CustomPlugin")] + public partial class CustomPlugin : global::Pulumi.CustomResource + { + /// + /// The type of the plugin file. + /// + [Output("contentType")] + public Output ContentType { get; private set; } = null!; + + /// + /// The Amazon Resource Name (ARN) of the custom plugin to use. + /// + [Output("customPluginArn")] + public Output CustomPluginArn { get; private set; } = null!; + + /// + /// A summary description of the custom plugin. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + [Output("fileDescription")] + public Output FileDescription { get; private set; } = null!; + + [Output("location")] + public Output Location { get; private set; } = null!; + + /// + /// The name of the custom plugin. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The revision of the custom plugin. + /// + [Output("revision")] + public Output Revision { get; private set; } = null!; + + /// + /// An array of key-value pairs to apply to this resource. + /// + [Output("tags")] + public Output> Tags { get; private set; } = null!; + + + /// + /// Create a CustomPlugin 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 CustomPlugin(string name, CustomPluginArgs args, CustomResourceOptions? options = null) + : base("aws-native:kafkaconnect:CustomPlugin", name, args ?? new CustomPluginArgs(), MakeResourceOptions(options, "")) + { + } + + private CustomPlugin(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:kafkaconnect:CustomPlugin", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "contentType", + "description", + "location", + "name", + }, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing CustomPlugin 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 CustomPlugin Get(string name, Input id, CustomResourceOptions? options = null) + { + return new CustomPlugin(name, id, options); + } + } + + public sealed class CustomPluginArgs : global::Pulumi.ResourceArgs + { + /// + /// The type of the plugin file. + /// + [Input("contentType", required: true)] + public Input ContentType { get; set; } = null!; + + /// + /// A summary description of the custom plugin. + /// + [Input("description")] + public Input? Description { get; set; } + + [Input("location", required: true)] + public Input Location { get; set; } = null!; + + /// + /// The name of the custom plugin. + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("tags")] + private InputList? _tags; + + /// + /// An array of key-value pairs to apply to this resource. + /// + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + + public CustomPluginArgs() + { + } + public static new CustomPluginArgs Empty => new CustomPluginArgs(); + } +} diff --git a/sdk/dotnet/KafkaConnect/Enums.cs b/sdk/dotnet/KafkaConnect/Enums.cs index 5759dc3864..025d935f03 100644 --- a/sdk/dotnet/KafkaConnect/Enums.cs +++ b/sdk/dotnet/KafkaConnect/Enums.cs @@ -68,4 +68,35 @@ private ConnectorKafkaClusterEncryptionInTransitType(string value) public override string ToString() => _value; } + + /// + /// The type of the plugin file. + /// + [EnumType] + public readonly struct CustomPluginContentType : IEquatable + { + private readonly string _value; + + private CustomPluginContentType(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static CustomPluginContentType Jar { get; } = new CustomPluginContentType("JAR"); + public static CustomPluginContentType Zip { get; } = new CustomPluginContentType("ZIP"); + + public static bool operator ==(CustomPluginContentType left, CustomPluginContentType right) => left.Equals(right); + public static bool operator !=(CustomPluginContentType left, CustomPluginContentType right) => !left.Equals(right); + + public static explicit operator string(CustomPluginContentType value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is CustomPluginContentType other && Equals(other); + public bool Equals(CustomPluginContentType 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/KafkaConnect/GetCustomPlugin.cs b/sdk/dotnet/KafkaConnect/GetCustomPlugin.cs new file mode 100644 index 0000000000..38a79eec11 --- /dev/null +++ b/sdk/dotnet/KafkaConnect/GetCustomPlugin.cs @@ -0,0 +1,90 @@ +// *** 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.KafkaConnect +{ + public static class GetCustomPlugin + { + /// + /// An example resource schema demonstrating some basic constructs and validation rules. + /// + public static Task InvokeAsync(GetCustomPluginArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:kafkaconnect:getCustomPlugin", args ?? new GetCustomPluginArgs(), options.WithDefaults()); + + /// + /// An example resource schema demonstrating some basic constructs and validation rules. + /// + public static Output Invoke(GetCustomPluginInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:kafkaconnect:getCustomPlugin", args ?? new GetCustomPluginInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetCustomPluginArgs : global::Pulumi.InvokeArgs + { + /// + /// The Amazon Resource Name (ARN) of the custom plugin to use. + /// + [Input("customPluginArn", required: true)] + public string CustomPluginArn { get; set; } = null!; + + public GetCustomPluginArgs() + { + } + public static new GetCustomPluginArgs Empty => new GetCustomPluginArgs(); + } + + public sealed class GetCustomPluginInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The Amazon Resource Name (ARN) of the custom plugin to use. + /// + [Input("customPluginArn", required: true)] + public Input CustomPluginArn { get; set; } = null!; + + public GetCustomPluginInvokeArgs() + { + } + public static new GetCustomPluginInvokeArgs Empty => new GetCustomPluginInvokeArgs(); + } + + + [OutputType] + public sealed class GetCustomPluginResult + { + /// + /// The Amazon Resource Name (ARN) of the custom plugin to use. + /// + public readonly string? CustomPluginArn; + public readonly Outputs.CustomPluginFileDescription? FileDescription; + /// + /// The revision of the custom plugin. + /// + public readonly int? Revision; + /// + /// An array of key-value pairs to apply to this resource. + /// + public readonly ImmutableArray Tags; + + [OutputConstructor] + private GetCustomPluginResult( + string? customPluginArn, + + Outputs.CustomPluginFileDescription? fileDescription, + + int? revision, + + ImmutableArray tags) + { + CustomPluginArn = customPluginArn; + FileDescription = fileDescription; + Revision = revision; + Tags = tags; + } + } +} diff --git a/sdk/dotnet/KafkaConnect/GetWorkerConfiguration.cs b/sdk/dotnet/KafkaConnect/GetWorkerConfiguration.cs new file mode 100644 index 0000000000..180db7c4e6 --- /dev/null +++ b/sdk/dotnet/KafkaConnect/GetWorkerConfiguration.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.KafkaConnect +{ + public static class GetWorkerConfiguration + { + /// + /// The configuration of the workers, which are the processes that run the connector logic. + /// + public static Task InvokeAsync(GetWorkerConfigurationArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:kafkaconnect:getWorkerConfiguration", args ?? new GetWorkerConfigurationArgs(), options.WithDefaults()); + + /// + /// The configuration of the workers, which are the processes that run the connector logic. + /// + public static Output Invoke(GetWorkerConfigurationInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:kafkaconnect:getWorkerConfiguration", args ?? new GetWorkerConfigurationInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetWorkerConfigurationArgs : global::Pulumi.InvokeArgs + { + /// + /// The Amazon Resource Name (ARN) of the custom configuration. + /// + [Input("workerConfigurationArn", required: true)] + public string WorkerConfigurationArn { get; set; } = null!; + + public GetWorkerConfigurationArgs() + { + } + public static new GetWorkerConfigurationArgs Empty => new GetWorkerConfigurationArgs(); + } + + public sealed class GetWorkerConfigurationInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The Amazon Resource Name (ARN) of the custom configuration. + /// + [Input("workerConfigurationArn", required: true)] + public Input WorkerConfigurationArn { get; set; } = null!; + + public GetWorkerConfigurationInvokeArgs() + { + } + public static new GetWorkerConfigurationInvokeArgs Empty => new GetWorkerConfigurationInvokeArgs(); + } + + + [OutputType] + public sealed class GetWorkerConfigurationResult + { + /// + /// The description of a revision of the worker configuration. + /// + public readonly int? Revision; + /// + /// A collection of tags associated with a resource + /// + public readonly ImmutableArray Tags; + /// + /// The Amazon Resource Name (ARN) of the custom configuration. + /// + public readonly string? WorkerConfigurationArn; + + [OutputConstructor] + private GetWorkerConfigurationResult( + int? revision, + + ImmutableArray tags, + + string? workerConfigurationArn) + { + Revision = revision; + Tags = tags; + WorkerConfigurationArn = workerConfigurationArn; + } + } +} diff --git a/sdk/dotnet/KafkaConnect/Inputs/CustomPluginLocationArgs.cs b/sdk/dotnet/KafkaConnect/Inputs/CustomPluginLocationArgs.cs new file mode 100644 index 0000000000..274c4e9578 --- /dev/null +++ b/sdk/dotnet/KafkaConnect/Inputs/CustomPluginLocationArgs.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.KafkaConnect.Inputs +{ + + /// + /// Information about the location of a custom plugin. + /// + public sealed class CustomPluginLocationArgs : global::Pulumi.ResourceArgs + { + [Input("s3Location", required: true)] + public Input S3Location { get; set; } = null!; + + public CustomPluginLocationArgs() + { + } + public static new CustomPluginLocationArgs Empty => new CustomPluginLocationArgs(); + } +} diff --git a/sdk/dotnet/KafkaConnect/Inputs/CustomPluginS3LocationArgs.cs b/sdk/dotnet/KafkaConnect/Inputs/CustomPluginS3LocationArgs.cs new file mode 100644 index 0000000000..7cfcb88d89 --- /dev/null +++ b/sdk/dotnet/KafkaConnect/Inputs/CustomPluginS3LocationArgs.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.KafkaConnect.Inputs +{ + + /// + /// The S3 bucket Amazon Resource Name (ARN), file key, and object version of the plugin file stored in Amazon S3. + /// + public sealed class CustomPluginS3LocationArgs : global::Pulumi.ResourceArgs + { + /// + /// The Amazon Resource Name (ARN) of an S3 bucket. + /// + [Input("bucketArn", required: true)] + public Input BucketArn { get; set; } = null!; + + /// + /// The file key for an object in an S3 bucket. + /// + [Input("fileKey", required: true)] + public Input FileKey { get; set; } = null!; + + /// + /// The version of an object in an S3 bucket. + /// + [Input("objectVersion")] + public Input? ObjectVersion { get; set; } + + public CustomPluginS3LocationArgs() + { + } + public static new CustomPluginS3LocationArgs Empty => new CustomPluginS3LocationArgs(); + } +} diff --git a/sdk/dotnet/KafkaConnect/Outputs/CustomPluginFileDescription.cs b/sdk/dotnet/KafkaConnect/Outputs/CustomPluginFileDescription.cs new file mode 100644 index 0000000000..5ffe022428 --- /dev/null +++ b/sdk/dotnet/KafkaConnect/Outputs/CustomPluginFileDescription.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.KafkaConnect.Outputs +{ + + /// + /// Details about the custom plugin file. + /// + [OutputType] + public sealed class CustomPluginFileDescription + { + /// + /// The hex-encoded MD5 checksum of the custom plugin file. You can use it to validate the file. + /// + public readonly string? FileMd5; + /// + /// The size in bytes of the custom plugin file. You can use it to validate the file. + /// + public readonly int? FileSize; + + [OutputConstructor] + private CustomPluginFileDescription( + string? fileMd5, + + int? fileSize) + { + FileMd5 = fileMd5; + FileSize = fileSize; + } + } +} diff --git a/sdk/dotnet/KafkaConnect/Outputs/CustomPluginLocation.cs b/sdk/dotnet/KafkaConnect/Outputs/CustomPluginLocation.cs new file mode 100644 index 0000000000..41a6ce28de --- /dev/null +++ b/sdk/dotnet/KafkaConnect/Outputs/CustomPluginLocation.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.KafkaConnect.Outputs +{ + + /// + /// Information about the location of a custom plugin. + /// + [OutputType] + public sealed class CustomPluginLocation + { + public readonly Outputs.CustomPluginS3Location S3Location; + + [OutputConstructor] + private CustomPluginLocation(Outputs.CustomPluginS3Location s3Location) + { + S3Location = s3Location; + } + } +} diff --git a/sdk/dotnet/KafkaConnect/Outputs/CustomPluginS3Location.cs b/sdk/dotnet/KafkaConnect/Outputs/CustomPluginS3Location.cs new file mode 100644 index 0000000000..b51b714dd4 --- /dev/null +++ b/sdk/dotnet/KafkaConnect/Outputs/CustomPluginS3Location.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.KafkaConnect.Outputs +{ + + /// + /// The S3 bucket Amazon Resource Name (ARN), file key, and object version of the plugin file stored in Amazon S3. + /// + [OutputType] + public sealed class CustomPluginS3Location + { + /// + /// The Amazon Resource Name (ARN) of an S3 bucket. + /// + public readonly string BucketArn; + /// + /// The file key for an object in an S3 bucket. + /// + public readonly string FileKey; + /// + /// The version of an object in an S3 bucket. + /// + public readonly string? ObjectVersion; + + [OutputConstructor] + private CustomPluginS3Location( + string bucketArn, + + string fileKey, + + string? objectVersion) + { + BucketArn = bucketArn; + FileKey = fileKey; + ObjectVersion = objectVersion; + } + } +} diff --git a/sdk/dotnet/KafkaConnect/WorkerConfiguration.cs b/sdk/dotnet/KafkaConnect/WorkerConfiguration.cs new file mode 100644 index 0000000000..0ef0dd07c5 --- /dev/null +++ b/sdk/dotnet/KafkaConnect/WorkerConfiguration.cs @@ -0,0 +1,140 @@ +// *** 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.KafkaConnect +{ + /// + /// The configuration of the workers, which are the processes that run the connector logic. + /// + [AwsNativeResourceType("aws-native:kafkaconnect:WorkerConfiguration")] + public partial class WorkerConfiguration : global::Pulumi.CustomResource + { + /// + /// A summary description of the worker configuration. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// The name of the worker configuration. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Base64 encoded contents of connect-distributed.properties file. + /// + [Output("propertiesFileContent")] + public Output PropertiesFileContent { get; private set; } = null!; + + /// + /// The description of a revision of the worker configuration. + /// + [Output("revision")] + public Output Revision { get; private set; } = null!; + + /// + /// A collection of tags associated with a resource + /// + [Output("tags")] + public Output> Tags { get; private set; } = null!; + + /// + /// The Amazon Resource Name (ARN) of the custom configuration. + /// + [Output("workerConfigurationArn")] + public Output WorkerConfigurationArn { get; private set; } = null!; + + + /// + /// Create a WorkerConfiguration 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 WorkerConfiguration(string name, WorkerConfigurationArgs args, CustomResourceOptions? options = null) + : base("aws-native:kafkaconnect:WorkerConfiguration", name, args ?? new WorkerConfigurationArgs(), MakeResourceOptions(options, "")) + { + } + + private WorkerConfiguration(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:kafkaconnect:WorkerConfiguration", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "description", + "name", + "propertiesFileContent", + }, + }; + 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 WorkerConfiguration 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 WorkerConfiguration Get(string name, Input id, CustomResourceOptions? options = null) + { + return new WorkerConfiguration(name, id, options); + } + } + + public sealed class WorkerConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// A summary description of the worker configuration. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The name of the worker configuration. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Base64 encoded contents of connect-distributed.properties file. + /// + [Input("propertiesFileContent", required: true)] + public Input PropertiesFileContent { get; set; } = null!; + + [Input("tags")] + private InputList? _tags; + + /// + /// A collection of tags associated with a resource + /// + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + + public WorkerConfigurationArgs() + { + } + public static new WorkerConfigurationArgs Empty => new WorkerConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Logs/Enums.cs b/sdk/dotnet/Logs/Enums.cs index 67116c1b0e..62202504a5 100644 --- a/sdk/dotnet/Logs/Enums.cs +++ b/sdk/dotnet/Logs/Enums.cs @@ -103,7 +103,11 @@ private LogAnomalyDetectorEvaluationFrequency(string value) } /// - /// The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class + /// Specifies the log group class for this log group. There are two classes: + /// + The ``Standard`` log class supports all CWL features. + /// + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs. + /// + /// For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) /// [EnumType] public readonly struct LogGroupClass : IEquatable @@ -134,7 +138,7 @@ private LogGroupClass(string value) } /// - /// The unit to assign to the metric. If you omit this, the unit is set as None. + /// The unit to assign to the metric. If you omit this, the unit is set as ``None``. /// [EnumType] public readonly struct MetricFilterMetricTransformationUnit : IEquatable @@ -190,7 +194,7 @@ private MetricFilterMetricTransformationUnit(string value) } /// - /// The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. + /// The method used to distribute log data to the destination, which can be either random or grouped by log stream. /// [EnumType] public readonly struct SubscriptionFilterDistribution : IEquatable diff --git a/sdk/dotnet/Logs/GetLogGroup.cs b/sdk/dotnet/Logs/GetLogGroup.cs index 5755474576..f3b91b6c4b 100644 --- a/sdk/dotnet/Logs/GetLogGroup.cs +++ b/sdk/dotnet/Logs/GetLogGroup.cs @@ -12,13 +12,21 @@ namespace Pulumi.AwsNative.Logs public static class GetLogGroup { /// - /// Resource schema for AWS::Logs::LogGroup + /// The ``AWS::Logs::LogGroup`` resource specifies a log group. A log group defines common properties for log streams, such as their retention and access control rules. Each log stream must belong to one log group. + /// You can create up to 1,000,000 log groups per Region per account. You must use the following guidelines when naming a log group: + /// + Log group names must be unique within a Region for an AWS account. + /// + Log group names can be between 1 and 512 characters long. + /// + Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period). /// public static Task InvokeAsync(GetLogGroupArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:logs:getLogGroup", args ?? new GetLogGroupArgs(), options.WithDefaults()); /// - /// Resource schema for AWS::Logs::LogGroup + /// The ``AWS::Logs::LogGroup`` resource specifies a log group. A log group defines common properties for log streams, such as their retention and access control rules. Each log stream must belong to one log group. + /// You can create up to 1,000,000 log groups per Region per account. You must use the following guidelines when naming a log group: + /// + Log group names must be unique within a Region for an AWS account. + /// + Log group names can be between 1 and 512 characters long. + /// + Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period). /// public static Output Invoke(GetLogGroupInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("aws-native:logs:getLogGroup", args ?? new GetLogGroupInvokeArgs(), options.WithDefaults()); @@ -28,7 +36,7 @@ public static Output Invoke(GetLogGroupInvokeArgs args, Invok public sealed class GetLogGroupArgs : global::Pulumi.InvokeArgs { /// - /// The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group. + /// The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group. /// [Input("logGroupName", required: true)] public string LogGroupName { get; set; } = null!; @@ -42,7 +50,7 @@ public GetLogGroupArgs() public sealed class GetLogGroupInvokeArgs : global::Pulumi.InvokeArgs { /// - /// The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group. + /// The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group. /// [Input("logGroupName", required: true)] public Input LogGroupName { get; set; } = null!; @@ -57,36 +65,37 @@ public GetLogGroupInvokeArgs() [OutputType] public sealed class GetLogGroupResult { - /// - /// The CloudWatch log group ARN. - /// public readonly string? Arn; /// - /// The body of the policy document you want to use for this topic. - /// - /// You can only add one policy per topic. - /// - /// The policy must be in JSON string format. - /// - /// Length Constraints: Maximum length of 30720 + /// Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks. + /// For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html). /// /// Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property. /// public readonly object? DataProtectionPolicy; /// - /// The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. + /// The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data. + /// To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested. + /// If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error. + /// Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) /// public readonly string? KmsKeyId; /// - /// The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class + /// Specifies the log group class for this log group. There are two classes: + /// + The ``Standard`` log class supports all CWL features. + /// + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs. + /// + /// For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) /// public readonly Pulumi.AwsNative.Logs.LogGroupClass? LogGroupClass; /// - /// The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653. + /// The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653. + /// To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). /// public readonly int? RetentionInDays; /// - /// An array of key-value pairs to apply to this resource. + /// An array of key-value pairs to apply to the log group. + /// For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). /// public readonly ImmutableArray Tags; diff --git a/sdk/dotnet/Logs/GetMetricFilter.cs b/sdk/dotnet/Logs/GetMetricFilter.cs index b3964399b9..1c218458e6 100644 --- a/sdk/dotnet/Logs/GetMetricFilter.cs +++ b/sdk/dotnet/Logs/GetMetricFilter.cs @@ -12,13 +12,15 @@ namespace Pulumi.AwsNative.Logs public static class GetMetricFilter { /// - /// Specifies a metric filter that describes how CloudWatch Logs extracts information from logs and transforms it into Amazon CloudWatch metrics. + /// The ``AWS::Logs::MetricFilter`` resource specifies a metric filter that describes how CWL extracts information from logs and transforms it into Amazon CloudWatch metrics. If you have multiple metric filters that are associated with a log group, all the filters are applied to the log streams in that group. + /// The maximum number of metric filters that can be associated with a log group is 100. /// public static Task InvokeAsync(GetMetricFilterArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:logs:getMetricFilter", args ?? new GetMetricFilterArgs(), options.WithDefaults()); /// - /// Specifies a metric filter that describes how CloudWatch Logs extracts information from logs and transforms it into Amazon CloudWatch metrics. + /// The ``AWS::Logs::MetricFilter`` resource specifies a metric filter that describes how CWL extracts information from logs and transforms it into Amazon CloudWatch metrics. If you have multiple metric filters that are associated with a log group, all the filters are applied to the log streams in that group. + /// The maximum number of metric filters that can be associated with a log group is 100. /// public static Output Invoke(GetMetricFilterInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("aws-native:logs:getMetricFilter", args ?? new GetMetricFilterInvokeArgs(), options.WithDefaults()); @@ -28,13 +30,13 @@ public static Output Invoke(GetMetricFilterInvokeArgs arg public sealed class GetMetricFilterArgs : global::Pulumi.InvokeArgs { /// - /// A name for the metric filter. + /// The name of the metric filter. /// [Input("filterName", required: true)] public string FilterName { get; set; } = null!; /// - /// Existing log group that you want to associate with this filter. + /// The name of an existing log group that you want to associate with this metric filter. /// [Input("logGroupName", required: true)] public string LogGroupName { get; set; } = null!; @@ -48,13 +50,13 @@ public GetMetricFilterArgs() public sealed class GetMetricFilterInvokeArgs : global::Pulumi.InvokeArgs { /// - /// A name for the metric filter. + /// The name of the metric filter. /// [Input("filterName", required: true)] public Input FilterName { get; set; } = null!; /// - /// Existing log group that you want to associate with this filter. + /// The name of an existing log group that you want to associate with this metric filter. /// [Input("logGroupName", required: true)] public Input LogGroupName { get; set; } = null!; @@ -70,11 +72,11 @@ public GetMetricFilterInvokeArgs() public sealed class GetMetricFilterResult { /// - /// Pattern that Logs follows to interpret each entry in a log. + /// A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). /// public readonly string? FilterPattern; /// - /// A collection of information that defines how metric data gets emitted. + /// The metric transformations. /// public readonly ImmutableArray MetricTransformations; diff --git a/sdk/dotnet/Logs/GetSubscriptionFilter.cs b/sdk/dotnet/Logs/GetSubscriptionFilter.cs index 056de699ec..104cb3499d 100644 --- a/sdk/dotnet/Logs/GetSubscriptionFilter.cs +++ b/sdk/dotnet/Logs/GetSubscriptionFilter.cs @@ -12,13 +12,25 @@ namespace Pulumi.AwsNative.Logs public static class GetSubscriptionFilter { /// - /// Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. + /// The ``AWS::Logs::SubscriptionFilter`` resource specifies a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. Currently, the supported destinations are: + /// + An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery. + /// + A logical destination that belongs to a different account, for cross-account delivery. + /// + An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery. + /// + An LAMlong function that belongs to the same account as the subscription filter, for same-account delivery. + /// + /// There can be as many as two subscription filters associated with a log group. /// public static Task InvokeAsync(GetSubscriptionFilterArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:logs:getSubscriptionFilter", args ?? new GetSubscriptionFilterArgs(), options.WithDefaults()); /// - /// Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. + /// The ``AWS::Logs::SubscriptionFilter`` resource specifies a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. Currently, the supported destinations are: + /// + An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery. + /// + A logical destination that belongs to a different account, for cross-account delivery. + /// + An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery. + /// + An LAMlong function that belongs to the same account as the subscription filter, for same-account delivery. + /// + /// There can be as many as two subscription filters associated with a log group. /// public static Output Invoke(GetSubscriptionFilterInvokeArgs args, InvokeOptions? options = null) => global::Pulumi.Deployment.Instance.Invoke("aws-native:logs:getSubscriptionFilter", args ?? new GetSubscriptionFilterInvokeArgs(), options.WithDefaults()); @@ -28,13 +40,13 @@ public static Output Invoke(GetSubscriptionFilterIn public sealed class GetSubscriptionFilterArgs : global::Pulumi.InvokeArgs { /// - /// The name of the filter generated by resource. + /// The name of the subscription filter. /// [Input("filterName", required: true)] public string FilterName { get; set; } = null!; /// - /// Existing log group that you want to associate with this filter. + /// The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events. /// [Input("logGroupName", required: true)] public string LogGroupName { get; set; } = null!; @@ -48,13 +60,13 @@ public GetSubscriptionFilterArgs() public sealed class GetSubscriptionFilterInvokeArgs : global::Pulumi.InvokeArgs { /// - /// The name of the filter generated by resource. + /// The name of the subscription filter. /// [Input("filterName", required: true)] public Input FilterName { get; set; } = null!; /// - /// Existing log group that you want to associate with this filter. + /// The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events. /// [Input("logGroupName", required: true)] public Input LogGroupName { get; set; } = null!; @@ -74,15 +86,15 @@ public sealed class GetSubscriptionFilterResult /// public readonly string? DestinationArn; /// - /// The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. + /// The method used to distribute log data to the destination, which can be either random or grouped by log stream. /// public readonly Pulumi.AwsNative.Logs.SubscriptionFilterDistribution? Distribution; /// - /// The filtering expressions that restrict what gets delivered to the destination AWS resource. + /// The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). /// public readonly string? FilterPattern; /// - /// The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. + /// The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. /// public readonly string? RoleArn; diff --git a/sdk/dotnet/Logs/Inputs/MetricFilterDimensionArgs.cs b/sdk/dotnet/Logs/Inputs/MetricFilterDimensionArgs.cs index 34359321ce..9b71cc944b 100644 --- a/sdk/dotnet/Logs/Inputs/MetricFilterDimensionArgs.cs +++ b/sdk/dotnet/Logs/Inputs/MetricFilterDimensionArgs.cs @@ -11,18 +11,24 @@ namespace Pulumi.AwsNative.Logs.Inputs { /// - /// the key-value pairs that further define a metric. + /// Specifies the CW metric dimensions to publish with this metric. + /// Because dimensions are part of the unique identifier for a metric, whenever a unique dimension name/value pair is extracted from your logs, you are creating a new variation of that metric. + /// For more information about publishing dimensions with metrics created by metric filters, see [Publishing dimensions with metrics from values in JSON or space-delimited log events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html#logs-metric-filters-dimensions). + /// Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. + /// To help prevent accidental high charges, Amazon disables a metric filter if it generates 1000 different name/value pairs for the dimensions that you have specified within a certain amount of time. + /// You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). /// public sealed class MetricFilterDimensionArgs : global::Pulumi.ResourceArgs { /// - /// The key of the dimension. Maximum length of 255. + /// The name for the CW metric dimension that the metric filter creates. + /// Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon (:). /// [Input("key", required: true)] public Input Key { get; set; } = null!; /// - /// The value of the dimension. Maximum length of 255. + /// The log event field that will contain the value for this dimension. This dimension will only be published for a metric if the value is found in the log event. For example, ``$.eventType`` for JSON log events, or ``$server`` for space-delimited log events. /// [Input("value", required: true)] public Input Value { get; set; } = null!; diff --git a/sdk/dotnet/Logs/Inputs/MetricFilterMetricTransformationArgs.cs b/sdk/dotnet/Logs/Inputs/MetricFilterMetricTransformationArgs.cs index acd94926f2..03ed0fe1ce 100644 --- a/sdk/dotnet/Logs/Inputs/MetricFilterMetricTransformationArgs.cs +++ b/sdk/dotnet/Logs/Inputs/MetricFilterMetricTransformationArgs.cs @@ -10,10 +10,13 @@ namespace Pulumi.AwsNative.Logs.Inputs { + /// + /// ``MetricTransformation`` is a property of the ``AWS::Logs::MetricFilter`` resource that describes how to transform log streams into a CloudWatch metric. + /// public sealed class MetricFilterMetricTransformationArgs : global::Pulumi.ResourceArgs { /// - /// The value to emit when a filter pattern does not match a log event. This value can be null. + /// (Optional) The value to emit when a filter pattern does not match a log event. This value can be null. /// [Input("defaultValue")] public Input? DefaultValue { get; set; } @@ -22,7 +25,10 @@ public sealed class MetricFilterMetricTransformationArgs : global::Pulumi.Resour private InputList? _dimensions; /// - /// Dimensions are the key-value pairs that further define a metric + /// The fields to use as dimensions for the metric. One metric filter can include as many as three dimensions. + /// Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. + /// CloudWatch Logs disables a metric filter if it generates 1000 different name/value pairs for your specified dimensions within a certain amount of time. This helps to prevent accidental high charges. + /// You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). /// public InputList Dimensions { @@ -31,25 +37,25 @@ public InputList Dimensions } /// - /// The name of the CloudWatch metric. Metric name must be in ASCII format. + /// The name of the CloudWatch metric. /// [Input("metricName", required: true)] public Input MetricName { get; set; } = null!; /// - /// The namespace of the CloudWatch metric. + /// A custom namespace to contain your metric in CloudWatch. Use namespaces to group together metrics that are similar. For more information, see [Namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace). /// [Input("metricNamespace", required: true)] public Input MetricNamespace { get; set; } = null!; /// - /// The value to publish to the CloudWatch metric when a filter pattern matches a log event. + /// The value that is published to the CloudWatch metric. For example, if you're counting the occurrences of a particular term like ``Error``, specify 1 for the metric value. If you're counting the number of bytes transferred, reference the value that is in the log event by using $. followed by the name of the field that you specified in the filter pattern, such as ``$.size``. /// [Input("metricValue", required: true)] public Input MetricValue { get; set; } = null!; /// - /// The unit to assign to the metric. If you omit this, the unit is set as None. + /// The unit to assign to the metric. If you omit this, the unit is set as ``None``. /// [Input("unit")] public Input? Unit { get; set; } diff --git a/sdk/dotnet/Logs/LogGroup.cs b/sdk/dotnet/Logs/LogGroup.cs index 5284d234c6..6748c9cb35 100644 --- a/sdk/dotnet/Logs/LogGroup.cs +++ b/sdk/dotnet/Logs/LogGroup.cs @@ -10,25 +10,21 @@ namespace Pulumi.AwsNative.Logs { /// - /// Resource schema for AWS::Logs::LogGroup + /// The ``AWS::Logs::LogGroup`` resource specifies a log group. A log group defines common properties for log streams, such as their retention and access control rules. Each log stream must belong to one log group. + /// You can create up to 1,000,000 log groups per Region per account. You must use the following guidelines when naming a log group: + /// + Log group names must be unique within a Region for an AWS account. + /// + Log group names can be between 1 and 512 characters long. + /// + Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period). /// [AwsNativeResourceType("aws-native:logs:LogGroup")] public partial class LogGroup : global::Pulumi.CustomResource { - /// - /// The CloudWatch log group ARN. - /// [Output("arn")] public Output Arn { get; private set; } = null!; /// - /// The body of the policy document you want to use for this topic. - /// - /// You can only add one policy per topic. - /// - /// The policy must be in JSON string format. - /// - /// Length Constraints: Maximum length of 30720 + /// Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks. + /// For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html). /// /// Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property. /// @@ -36,31 +32,40 @@ public partial class LogGroup : global::Pulumi.CustomResource public Output DataProtectionPolicy { get; private set; } = null!; /// - /// The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. + /// The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data. + /// To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested. + /// If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error. + /// Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) /// [Output("kmsKeyId")] public Output KmsKeyId { get; private set; } = null!; /// - /// The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class + /// Specifies the log group class for this log group. There are two classes: + /// + The ``Standard`` log class supports all CWL features. + /// + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs. + /// + /// For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) /// [Output("logGroupClass")] public Output LogGroupClass { get; private set; } = null!; /// - /// The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group. + /// The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group. /// [Output("logGroupName")] public Output LogGroupName { get; private set; } = null!; /// - /// The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653. + /// The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653. + /// To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). /// [Output("retentionInDays")] public Output RetentionInDays { get; private set; } = null!; /// - /// An array of key-value pairs to apply to this resource. + /// An array of key-value pairs to apply to the log group. + /// For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). /// [Output("tags")] public Output> Tags { get; private set; } = null!; @@ -115,13 +120,8 @@ public static LogGroup Get(string name, Input id, CustomResourceOptions? public sealed class LogGroupArgs : global::Pulumi.ResourceArgs { /// - /// The body of the policy document you want to use for this topic. - /// - /// You can only add one policy per topic. - /// - /// The policy must be in JSON string format. - /// - /// Length Constraints: Maximum length of 30720 + /// Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks. + /// For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html). /// /// Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property. /// @@ -129,25 +129,33 @@ public sealed class LogGroupArgs : global::Pulumi.ResourceArgs public Input? DataProtectionPolicy { get; set; } /// - /// The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. + /// The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data. + /// To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested. + /// If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error. + /// Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) /// [Input("kmsKeyId")] public Input? KmsKeyId { get; set; } /// - /// The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class + /// Specifies the log group class for this log group. There are two classes: + /// + The ``Standard`` log class supports all CWL features. + /// + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs. + /// + /// For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) /// [Input("logGroupClass")] public Input? LogGroupClass { get; set; } /// - /// The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group. + /// The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group. /// [Input("logGroupName")] public Input? LogGroupName { get; set; } /// - /// The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653. + /// The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653. + /// To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). /// [Input("retentionInDays")] public Input? RetentionInDays { get; set; } @@ -156,7 +164,8 @@ public sealed class LogGroupArgs : global::Pulumi.ResourceArgs private InputList? _tags; /// - /// An array of key-value pairs to apply to this resource. + /// An array of key-value pairs to apply to the log group. + /// For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). /// public InputList Tags { diff --git a/sdk/dotnet/Logs/MetricFilter.cs b/sdk/dotnet/Logs/MetricFilter.cs index b420f630cb..3de1b6a35e 100644 --- a/sdk/dotnet/Logs/MetricFilter.cs +++ b/sdk/dotnet/Logs/MetricFilter.cs @@ -10,31 +10,32 @@ namespace Pulumi.AwsNative.Logs { /// - /// Specifies a metric filter that describes how CloudWatch Logs extracts information from logs and transforms it into Amazon CloudWatch metrics. + /// The ``AWS::Logs::MetricFilter`` resource specifies a metric filter that describes how CWL extracts information from logs and transforms it into Amazon CloudWatch metrics. If you have multiple metric filters that are associated with a log group, all the filters are applied to the log streams in that group. + /// The maximum number of metric filters that can be associated with a log group is 100. /// [AwsNativeResourceType("aws-native:logs:MetricFilter")] public partial class MetricFilter : global::Pulumi.CustomResource { /// - /// A name for the metric filter. + /// The name of the metric filter. /// [Output("filterName")] public Output FilterName { get; private set; } = null!; /// - /// Pattern that Logs follows to interpret each entry in a log. + /// A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). /// [Output("filterPattern")] public Output FilterPattern { get; private set; } = null!; /// - /// Existing log group that you want to associate with this filter. + /// The name of an existing log group that you want to associate with this metric filter. /// [Output("logGroupName")] public Output LogGroupName { get; private set; } = null!; /// - /// A collection of information that defines how metric data gets emitted. + /// The metric transformations. /// [Output("metricTransformations")] public Output> MetricTransformations { get; private set; } = null!; @@ -90,19 +91,19 @@ public static MetricFilter Get(string name, Input id, CustomResourceOpti public sealed class MetricFilterArgs : global::Pulumi.ResourceArgs { /// - /// A name for the metric filter. + /// The name of the metric filter. /// [Input("filterName")] public Input? FilterName { get; set; } /// - /// Pattern that Logs follows to interpret each entry in a log. + /// A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). /// [Input("filterPattern", required: true)] public Input FilterPattern { get; set; } = null!; /// - /// Existing log group that you want to associate with this filter. + /// The name of an existing log group that you want to associate with this metric filter. /// [Input("logGroupName", required: true)] public Input LogGroupName { get; set; } = null!; @@ -111,7 +112,7 @@ public sealed class MetricFilterArgs : global::Pulumi.ResourceArgs private InputList? _metricTransformations; /// - /// A collection of information that defines how metric data gets emitted. + /// The metric transformations. /// public InputList MetricTransformations { diff --git a/sdk/dotnet/Logs/Outputs/MetricFilterDimension.cs b/sdk/dotnet/Logs/Outputs/MetricFilterDimension.cs index cb0cd277e7..e6f89ab68b 100644 --- a/sdk/dotnet/Logs/Outputs/MetricFilterDimension.cs +++ b/sdk/dotnet/Logs/Outputs/MetricFilterDimension.cs @@ -11,17 +11,23 @@ namespace Pulumi.AwsNative.Logs.Outputs { /// - /// the key-value pairs that further define a metric. + /// Specifies the CW metric dimensions to publish with this metric. + /// Because dimensions are part of the unique identifier for a metric, whenever a unique dimension name/value pair is extracted from your logs, you are creating a new variation of that metric. + /// For more information about publishing dimensions with metrics created by metric filters, see [Publishing dimensions with metrics from values in JSON or space-delimited log events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html#logs-metric-filters-dimensions). + /// Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. + /// To help prevent accidental high charges, Amazon disables a metric filter if it generates 1000 different name/value pairs for the dimensions that you have specified within a certain amount of time. + /// You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). /// [OutputType] public sealed class MetricFilterDimension { /// - /// The key of the dimension. Maximum length of 255. + /// The name for the CW metric dimension that the metric filter creates. + /// Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon (:). /// public readonly string Key; /// - /// The value of the dimension. Maximum length of 255. + /// The log event field that will contain the value for this dimension. This dimension will only be published for a metric if the value is found in the log event. For example, ``$.eventType`` for JSON log events, or ``$server`` for space-delimited log events. /// public readonly string Value; diff --git a/sdk/dotnet/Logs/Outputs/MetricFilterMetricTransformation.cs b/sdk/dotnet/Logs/Outputs/MetricFilterMetricTransformation.cs index 3484d7224e..65c6ae0c7e 100644 --- a/sdk/dotnet/Logs/Outputs/MetricFilterMetricTransformation.cs +++ b/sdk/dotnet/Logs/Outputs/MetricFilterMetricTransformation.cs @@ -10,31 +10,37 @@ namespace Pulumi.AwsNative.Logs.Outputs { + /// + /// ``MetricTransformation`` is a property of the ``AWS::Logs::MetricFilter`` resource that describes how to transform log streams into a CloudWatch metric. + /// [OutputType] public sealed class MetricFilterMetricTransformation { /// - /// The value to emit when a filter pattern does not match a log event. This value can be null. + /// (Optional) The value to emit when a filter pattern does not match a log event. This value can be null. /// public readonly double? DefaultValue; /// - /// Dimensions are the key-value pairs that further define a metric + /// The fields to use as dimensions for the metric. One metric filter can include as many as three dimensions. + /// Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. + /// CloudWatch Logs disables a metric filter if it generates 1000 different name/value pairs for your specified dimensions within a certain amount of time. This helps to prevent accidental high charges. + /// You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). /// public readonly ImmutableArray Dimensions; /// - /// The name of the CloudWatch metric. Metric name must be in ASCII format. + /// The name of the CloudWatch metric. /// public readonly string MetricName; /// - /// The namespace of the CloudWatch metric. + /// A custom namespace to contain your metric in CloudWatch. Use namespaces to group together metrics that are similar. For more information, see [Namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace). /// public readonly string MetricNamespace; /// - /// The value to publish to the CloudWatch metric when a filter pattern matches a log event. + /// The value that is published to the CloudWatch metric. For example, if you're counting the occurrences of a particular term like ``Error``, specify 1 for the metric value. If you're counting the number of bytes transferred, reference the value that is in the log event by using $. followed by the name of the field that you specified in the filter pattern, such as ``$.size``. /// public readonly string MetricValue; /// - /// The unit to assign to the metric. If you omit this, the unit is set as None. + /// The unit to assign to the metric. If you omit this, the unit is set as ``None``. /// public readonly Pulumi.AwsNative.Logs.MetricFilterMetricTransformationUnit? Unit; diff --git a/sdk/dotnet/Logs/SubscriptionFilter.cs b/sdk/dotnet/Logs/SubscriptionFilter.cs index 3dcbcea969..bd6bcd1582 100644 --- a/sdk/dotnet/Logs/SubscriptionFilter.cs +++ b/sdk/dotnet/Logs/SubscriptionFilter.cs @@ -10,7 +10,13 @@ namespace Pulumi.AwsNative.Logs { /// - /// Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. + /// The ``AWS::Logs::SubscriptionFilter`` resource specifies a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. Currently, the supported destinations are: + /// + An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery. + /// + A logical destination that belongs to a different account, for cross-account delivery. + /// + An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery. + /// + An LAMlong function that belongs to the same account as the subscription filter, for same-account delivery. + /// + /// There can be as many as two subscription filters associated with a log group. /// [AwsNativeResourceType("aws-native:logs:SubscriptionFilter")] public partial class SubscriptionFilter : global::Pulumi.CustomResource @@ -22,31 +28,31 @@ public partial class SubscriptionFilter : global::Pulumi.CustomResource public Output DestinationArn { get; private set; } = null!; /// - /// The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. + /// The method used to distribute log data to the destination, which can be either random or grouped by log stream. /// [Output("distribution")] public Output Distribution { get; private set; } = null!; /// - /// The name of the filter generated by resource. + /// The name of the subscription filter. /// [Output("filterName")] public Output FilterName { get; private set; } = null!; /// - /// The filtering expressions that restrict what gets delivered to the destination AWS resource. + /// The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). /// [Output("filterPattern")] public Output FilterPattern { get; private set; } = null!; /// - /// Existing log group that you want to associate with this filter. + /// The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events. /// [Output("logGroupName")] public Output LogGroupName { get; private set; } = null!; /// - /// The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. + /// The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. /// [Output("roleArn")] public Output RoleArn { get; private set; } = null!; @@ -108,31 +114,31 @@ public sealed class SubscriptionFilterArgs : global::Pulumi.ResourceArgs public Input DestinationArn { get; set; } = null!; /// - /// The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. + /// The method used to distribute log data to the destination, which can be either random or grouped by log stream. /// [Input("distribution")] public Input? Distribution { get; set; } /// - /// The name of the filter generated by resource. + /// The name of the subscription filter. /// [Input("filterName")] public Input? FilterName { get; set; } /// - /// The filtering expressions that restrict what gets delivered to the destination AWS resource. + /// The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). /// [Input("filterPattern", required: true)] public Input FilterPattern { get; set; } = null!; /// - /// Existing log group that you want to associate with this filter. + /// The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events. /// [Input("logGroupName", required: true)] public Input LogGroupName { get; set; } = null!; /// - /// The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. + /// The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. /// [Input("roleArn")] public Input? RoleArn { get; set; } diff --git a/sdk/dotnet/Rds/GetIntegration.cs b/sdk/dotnet/Rds/GetIntegration.cs index dab969647a..4cc1fd1a1d 100644 --- a/sdk/dotnet/Rds/GetIntegration.cs +++ b/sdk/dotnet/Rds/GetIntegration.cs @@ -59,10 +59,22 @@ public sealed class GetIntegrationResult { public readonly string? CreateTime; /// + /// The data filter for the integration. + /// + public readonly string? DataFilter; + /// + /// The description of the integration. + /// + public readonly string? Description; + /// /// The ARN of the integration. /// public readonly string? IntegrationArn; /// + /// The name of the integration. + /// + public readonly string? IntegrationName; + /// /// An array of key-value pairs to apply to this resource. /// public readonly ImmutableArray Tags; @@ -71,12 +83,21 @@ public sealed class GetIntegrationResult private GetIntegrationResult( string? createTime, + string? dataFilter, + + string? description, + string? integrationArn, + string? integrationName, + ImmutableArray tags) { CreateTime = createTime; + DataFilter = dataFilter; + Description = description; IntegrationArn = integrationArn; + IntegrationName = integrationName; Tags = tags; } } diff --git a/sdk/dotnet/Rds/Integration.cs b/sdk/dotnet/Rds/Integration.cs index 2a171541e0..9baa976e1f 100644 --- a/sdk/dotnet/Rds/Integration.cs +++ b/sdk/dotnet/Rds/Integration.cs @@ -21,6 +21,18 @@ public partial class Integration : global::Pulumi.CustomResource [Output("createTime")] public Output CreateTime { get; private set; } = null!; + /// + /// The data filter for the integration. + /// + [Output("dataFilter")] + public Output DataFilter { get; private set; } = null!; + + /// + /// The description of the integration. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + /// /// The ARN of the integration. /// @@ -83,7 +95,6 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? ReplaceOnChanges = { "additionalEncryptionContext.*", - "integrationName", "kmsKeyId", "sourceArn", "targetArn", @@ -118,6 +129,18 @@ public InputMap AdditionalEncryptionContext set => _additionalEncryptionContext = value; } + /// + /// The data filter for the integration. + /// + [Input("dataFilter")] + public Input? DataFilter { get; set; } + + /// + /// The description of the integration. + /// + [Input("description")] + public Input? Description { get; set; } + /// /// The name of the integration. /// diff --git a/sdk/dotnet/ResilienceHub/GetResiliencyPolicy.cs b/sdk/dotnet/ResilienceHub/GetResiliencyPolicy.cs index bc19ca82ef..d31877236a 100644 --- a/sdk/dotnet/ResilienceHub/GetResiliencyPolicy.cs +++ b/sdk/dotnet/ResilienceHub/GetResiliencyPolicy.cs @@ -61,7 +61,7 @@ public sealed class GetResiliencyPolicyResult /// Data Location Constraint of the Policy. /// public readonly Pulumi.AwsNative.ResilienceHub.ResiliencyPolicyDataLocationConstraint? DataLocationConstraint; - public readonly ImmutableDictionary? Policy; + public readonly Outputs.ResiliencyPolicyPolicyMap? Policy; /// /// Amazon Resource Name (ARN) of the Resiliency Policy. /// @@ -84,7 +84,7 @@ public sealed class GetResiliencyPolicyResult private GetResiliencyPolicyResult( Pulumi.AwsNative.ResilienceHub.ResiliencyPolicyDataLocationConstraint? dataLocationConstraint, - ImmutableDictionary? policy, + Outputs.ResiliencyPolicyPolicyMap? policy, string? policyArn, diff --git a/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyMapArgs.cs b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyMapArgs.cs new file mode 100644 index 0000000000..db6f3f1fe4 --- /dev/null +++ b/sdk/dotnet/ResilienceHub/Inputs/ResiliencyPolicyPolicyMapArgs.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.ResilienceHub.Inputs +{ + + public sealed class ResiliencyPolicyPolicyMapArgs : global::Pulumi.ResourceArgs + { + [Input("az", required: true)] + public Input Az { get; set; } = null!; + + [Input("hardware", required: true)] + public Input Hardware { get; set; } = null!; + + [Input("region")] + public Input? Region { get; set; } + + [Input("software", required: true)] + public Input Software { get; set; } = null!; + + public ResiliencyPolicyPolicyMapArgs() + { + } + public static new ResiliencyPolicyPolicyMapArgs Empty => new ResiliencyPolicyPolicyMapArgs(); + } +} diff --git a/sdk/dotnet/ResilienceHub/Outputs/ResiliencyPolicyPolicyMap.cs b/sdk/dotnet/ResilienceHub/Outputs/ResiliencyPolicyPolicyMap.cs new file mode 100644 index 0000000000..68f10606f6 --- /dev/null +++ b/sdk/dotnet/ResilienceHub/Outputs/ResiliencyPolicyPolicyMap.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.ResilienceHub.Outputs +{ + + [OutputType] + public sealed class ResiliencyPolicyPolicyMap + { + public readonly Outputs.ResiliencyPolicyFailurePolicy Az; + public readonly Outputs.ResiliencyPolicyFailurePolicy Hardware; + public readonly Outputs.ResiliencyPolicyFailurePolicy? Region; + public readonly Outputs.ResiliencyPolicyFailurePolicy Software; + + [OutputConstructor] + private ResiliencyPolicyPolicyMap( + Outputs.ResiliencyPolicyFailurePolicy az, + + Outputs.ResiliencyPolicyFailurePolicy hardware, + + Outputs.ResiliencyPolicyFailurePolicy? region, + + Outputs.ResiliencyPolicyFailurePolicy software) + { + Az = az; + Hardware = hardware; + Region = region; + Software = software; + } + } +} diff --git a/sdk/dotnet/ResilienceHub/ResiliencyPolicy.cs b/sdk/dotnet/ResilienceHub/ResiliencyPolicy.cs index 76342d11b0..c62728079d 100644 --- a/sdk/dotnet/ResilienceHub/ResiliencyPolicy.cs +++ b/sdk/dotnet/ResilienceHub/ResiliencyPolicy.cs @@ -22,7 +22,7 @@ public partial class ResiliencyPolicy : global::Pulumi.CustomResource public Output DataLocationConstraint { get; private set; } = null!; [Output("policy")] - public Output> Policy { get; private set; } = null!; + public Output Policy { get; private set; } = null!; /// /// Amazon Resource Name (ARN) of the Resiliency Policy. @@ -103,12 +103,7 @@ public sealed class ResiliencyPolicyArgs : global::Pulumi.ResourceArgs public Input? DataLocationConstraint { get; set; } [Input("policy", required: true)] - private InputMap? _policy; - public InputMap Policy - { - get => _policy ?? (_policy = new InputMap()); - set => _policy = value; - } + public Input Policy { get; set; } = null!; /// /// Description of Resiliency Policy. diff --git a/sdk/dotnet/SecurityLake/AwsLogSource.cs b/sdk/dotnet/SecurityLake/AwsLogSource.cs new file mode 100644 index 0000000000..6e7a13996e --- /dev/null +++ b/sdk/dotnet/SecurityLake/AwsLogSource.cs @@ -0,0 +1,128 @@ +// *** 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.SecurityLake +{ + /// + /// Resource Type definition for AWS::SecurityLake::AwsLogSource + /// + [AwsNativeResourceType("aws-native:securitylake:AwsLogSource")] + public partial class AwsLogSource : global::Pulumi.CustomResource + { + /// + /// AWS account where you want to collect logs from. + /// + [Output("accounts")] + public Output> Accounts { get; private set; } = null!; + + /// + /// The ARN for the data lake. + /// + [Output("dataLakeArn")] + public Output DataLakeArn { get; private set; } = null!; + + /// + /// The name for a AWS source. This must be a Regionally unique value. + /// + [Output("sourceName")] + public Output SourceName { get; private set; } = null!; + + /// + /// The version for a AWS source. This must be a Regionally unique value. + /// + [Output("sourceVersion")] + public Output SourceVersion { get; private set; } = null!; + + + /// + /// Create a AwsLogSource 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 AwsLogSource(string name, AwsLogSourceArgs args, CustomResourceOptions? options = null) + : base("aws-native:securitylake:AwsLogSource", name, args ?? new AwsLogSourceArgs(), MakeResourceOptions(options, "")) + { + } + + private AwsLogSource(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:securitylake:AwsLogSource", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "dataLakeArn", + "sourceName", + "sourceVersion", + }, + }; + 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 AwsLogSource 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 AwsLogSource Get(string name, Input id, CustomResourceOptions? options = null) + { + return new AwsLogSource(name, id, options); + } + } + + public sealed class AwsLogSourceArgs : global::Pulumi.ResourceArgs + { + [Input("accounts")] + private InputList? _accounts; + + /// + /// AWS account where you want to collect logs from. + /// + public InputList Accounts + { + get => _accounts ?? (_accounts = new InputList()); + set => _accounts = value; + } + + /// + /// The ARN for the data lake. + /// + [Input("dataLakeArn", required: true)] + public Input DataLakeArn { get; set; } = null!; + + /// + /// The name for a AWS source. This must be a Regionally unique value. + /// + [Input("sourceName")] + public Input? SourceName { get; set; } + + /// + /// The version for a AWS source. This must be a Regionally unique value. + /// + [Input("sourceVersion", required: true)] + public Input SourceVersion { get; set; } = null!; + + public AwsLogSourceArgs() + { + } + public static new AwsLogSourceArgs Empty => new AwsLogSourceArgs(); + } +} diff --git a/sdk/dotnet/SecurityLake/DataLake.cs b/sdk/dotnet/SecurityLake/DataLake.cs new file mode 100644 index 0000000000..a62d849254 --- /dev/null +++ b/sdk/dotnet/SecurityLake/DataLake.cs @@ -0,0 +1,125 @@ +// *** 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.SecurityLake +{ + /// + /// Resource Type definition for AWS::SecurityLake::DataLake + /// + [AwsNativeResourceType("aws-native:securitylake:DataLake")] + public partial class DataLake : global::Pulumi.CustomResource + { + /// + /// The Amazon Resource Name (ARN) created by you to provide to the subscriber. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + [Output("encryptionConfiguration")] + public Output EncryptionConfiguration { get; private set; } = null!; + + [Output("lifecycleConfiguration")] + public Output LifecycleConfiguration { get; private set; } = null!; + + /// + /// The Amazon Resource Name (ARN) used to index AWS Glue table partitions that are generated by the ingestion and normalization of AWS log sources and custom sources. + /// + [Output("metaStoreManagerRoleArn")] + public Output MetaStoreManagerRoleArn { get; private set; } = null!; + + [Output("replicationConfiguration")] + public Output ReplicationConfiguration { get; private set; } = null!; + + /// + /// The ARN for the Amazon Security Lake Amazon S3 bucket. + /// + [Output("s3BucketArn")] + public Output S3BucketArn { get; private set; } = null!; + + [Output("tags")] + public Output> Tags { get; private set; } = null!; + + + /// + /// Create a DataLake 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 DataLake(string name, DataLakeArgs? args = null, CustomResourceOptions? options = null) + : base("aws-native:securitylake:DataLake", name, args ?? new DataLakeArgs(), MakeResourceOptions(options, "")) + { + } + + private DataLake(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:securitylake:DataLake", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "metaStoreManagerRoleArn", + }, + }; + 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 DataLake 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 DataLake Get(string name, Input id, CustomResourceOptions? options = null) + { + return new DataLake(name, id, options); + } + } + + public sealed class DataLakeArgs : global::Pulumi.ResourceArgs + { + [Input("encryptionConfiguration")] + public Input? EncryptionConfiguration { get; set; } + + [Input("lifecycleConfiguration")] + public Input? LifecycleConfiguration { get; set; } + + /// + /// The Amazon Resource Name (ARN) used to index AWS Glue table partitions that are generated by the ingestion and normalization of AWS log sources and custom sources. + /// + [Input("metaStoreManagerRoleArn")] + public Input? MetaStoreManagerRoleArn { get; set; } + + [Input("replicationConfiguration")] + public Input? ReplicationConfiguration { get; set; } + + [Input("tags")] + private InputList? _tags; + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + + public DataLakeArgs() + { + } + public static new DataLakeArgs Empty => new DataLakeArgs(); + } +} diff --git a/sdk/dotnet/SecurityLake/Enums.cs b/sdk/dotnet/SecurityLake/Enums.cs new file mode 100644 index 0000000000..67c700cbe6 --- /dev/null +++ b/sdk/dotnet/SecurityLake/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.SecurityLake +{ + [EnumType] + public readonly struct SubscriberAccessTypesItem : IEquatable + { + private readonly string _value; + + private SubscriberAccessTypesItem(string value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + public static SubscriberAccessTypesItem Lakeformation { get; } = new SubscriberAccessTypesItem("LAKEFORMATION"); + public static SubscriberAccessTypesItem S3 { get; } = new SubscriberAccessTypesItem("S3"); + + public static bool operator ==(SubscriberAccessTypesItem left, SubscriberAccessTypesItem right) => left.Equals(right); + public static bool operator !=(SubscriberAccessTypesItem left, SubscriberAccessTypesItem right) => !left.Equals(right); + + public static explicit operator string(SubscriberAccessTypesItem value) => value._value; + + [EditorBrowsable(EditorBrowsableState.Never)] + public override bool Equals(object? obj) => obj is SubscriberAccessTypesItem other && Equals(other); + public bool Equals(SubscriberAccessTypesItem 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/SecurityLake/GetAwsLogSource.cs b/sdk/dotnet/SecurityLake/GetAwsLogSource.cs new file mode 100644 index 0000000000..934571bb2d --- /dev/null +++ b/sdk/dotnet/SecurityLake/GetAwsLogSource.cs @@ -0,0 +1,83 @@ +// *** 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.SecurityLake +{ + public static class GetAwsLogSource + { + /// + /// Resource Type definition for AWS::SecurityLake::AwsLogSource + /// + public static Task InvokeAsync(GetAwsLogSourceArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:securitylake:getAwsLogSource", args ?? new GetAwsLogSourceArgs(), options.WithDefaults()); + + /// + /// Resource Type definition for AWS::SecurityLake::AwsLogSource + /// + public static Output Invoke(GetAwsLogSourceInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:securitylake:getAwsLogSource", args ?? new GetAwsLogSourceInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetAwsLogSourceArgs : global::Pulumi.InvokeArgs + { + /// + /// The name for a AWS source. This must be a Regionally unique value. + /// + [Input("sourceName", required: true)] + public string SourceName { get; set; } = null!; + + /// + /// The version for a AWS source. This must be a Regionally unique value. + /// + [Input("sourceVersion", required: true)] + public string SourceVersion { get; set; } = null!; + + public GetAwsLogSourceArgs() + { + } + public static new GetAwsLogSourceArgs Empty => new GetAwsLogSourceArgs(); + } + + public sealed class GetAwsLogSourceInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The name for a AWS source. This must be a Regionally unique value. + /// + [Input("sourceName", required: true)] + public Input SourceName { get; set; } = null!; + + /// + /// The version for a AWS source. This must be a Regionally unique value. + /// + [Input("sourceVersion", required: true)] + public Input SourceVersion { get; set; } = null!; + + public GetAwsLogSourceInvokeArgs() + { + } + public static new GetAwsLogSourceInvokeArgs Empty => new GetAwsLogSourceInvokeArgs(); + } + + + [OutputType] + public sealed class GetAwsLogSourceResult + { + /// + /// AWS account where you want to collect logs from. + /// + public readonly ImmutableArray Accounts; + + [OutputConstructor] + private GetAwsLogSourceResult(ImmutableArray accounts) + { + Accounts = accounts; + } + } +} diff --git a/sdk/dotnet/SecurityLake/GetDataLake.cs b/sdk/dotnet/SecurityLake/GetDataLake.cs new file mode 100644 index 0000000000..59d06d4b2d --- /dev/null +++ b/sdk/dotnet/SecurityLake/GetDataLake.cs @@ -0,0 +1,95 @@ +// *** 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.SecurityLake +{ + public static class GetDataLake + { + /// + /// Resource Type definition for AWS::SecurityLake::DataLake + /// + public static Task InvokeAsync(GetDataLakeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:securitylake:getDataLake", args ?? new GetDataLakeArgs(), options.WithDefaults()); + + /// + /// Resource Type definition for AWS::SecurityLake::DataLake + /// + public static Output Invoke(GetDataLakeInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:securitylake:getDataLake", args ?? new GetDataLakeInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetDataLakeArgs : global::Pulumi.InvokeArgs + { + /// + /// The Amazon Resource Name (ARN) created by you to provide to the subscriber. + /// + [Input("arn", required: true)] + public string Arn { get; set; } = null!; + + public GetDataLakeArgs() + { + } + public static new GetDataLakeArgs Empty => new GetDataLakeArgs(); + } + + public sealed class GetDataLakeInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The Amazon Resource Name (ARN) created by you to provide to the subscriber. + /// + [Input("arn", required: true)] + public Input Arn { get; set; } = null!; + + public GetDataLakeInvokeArgs() + { + } + public static new GetDataLakeInvokeArgs Empty => new GetDataLakeInvokeArgs(); + } + + + [OutputType] + public sealed class GetDataLakeResult + { + /// + /// The Amazon Resource Name (ARN) created by you to provide to the subscriber. + /// + public readonly string? Arn; + public readonly Outputs.DataLakeEncryptionConfiguration? EncryptionConfiguration; + public readonly Outputs.DataLakeLifecycleConfiguration? LifecycleConfiguration; + public readonly Outputs.DataLakeReplicationConfiguration? ReplicationConfiguration; + /// + /// The ARN for the Amazon Security Lake Amazon S3 bucket. + /// + public readonly string? S3BucketArn; + public readonly ImmutableArray Tags; + + [OutputConstructor] + private GetDataLakeResult( + string? arn, + + Outputs.DataLakeEncryptionConfiguration? encryptionConfiguration, + + Outputs.DataLakeLifecycleConfiguration? lifecycleConfiguration, + + Outputs.DataLakeReplicationConfiguration? replicationConfiguration, + + string? s3BucketArn, + + ImmutableArray tags) + { + Arn = arn; + EncryptionConfiguration = encryptionConfiguration; + LifecycleConfiguration = lifecycleConfiguration; + ReplicationConfiguration = replicationConfiguration; + S3BucketArn = s3BucketArn; + Tags = tags; + } + } +} diff --git a/sdk/dotnet/SecurityLake/GetSubscriber.cs b/sdk/dotnet/SecurityLake/GetSubscriber.cs new file mode 100644 index 0000000000..e523e7096c --- /dev/null +++ b/sdk/dotnet/SecurityLake/GetSubscriber.cs @@ -0,0 +1,118 @@ +// *** 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.SecurityLake +{ + public static class GetSubscriber + { + /// + /// Resource Type definition for AWS::SecurityLake::Subscriber + /// + public static Task InvokeAsync(GetSubscriberArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("aws-native:securitylake:getSubscriber", args ?? new GetSubscriberArgs(), options.WithDefaults()); + + /// + /// Resource Type definition for AWS::SecurityLake::Subscriber + /// + public static Output Invoke(GetSubscriberInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("aws-native:securitylake:getSubscriber", args ?? new GetSubscriberInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetSubscriberArgs : global::Pulumi.InvokeArgs + { + [Input("subscriberArn", required: true)] + public string SubscriberArn { get; set; } = null!; + + public GetSubscriberArgs() + { + } + public static new GetSubscriberArgs Empty => new GetSubscriberArgs(); + } + + public sealed class GetSubscriberInvokeArgs : global::Pulumi.InvokeArgs + { + [Input("subscriberArn", required: true)] + public Input SubscriberArn { get; set; } = null!; + + public GetSubscriberInvokeArgs() + { + } + public static new GetSubscriberInvokeArgs Empty => new GetSubscriberInvokeArgs(); + } + + + [OutputType] + public sealed class GetSubscriberResult + { + public readonly ImmutableArray AccessTypes; + public readonly string? ResourceShareArn; + public readonly string? ResourceShareName; + public readonly string? S3BucketArn; + /// + /// The supported AWS services from which logs and events are collected. + /// + public readonly ImmutableArray> Sources; + public readonly string? SubscriberArn; + /// + /// The description for your subscriber account in Security Lake. + /// + public readonly string? SubscriberDescription; + /// + /// The AWS identity used to access your data. + /// + public readonly Outputs.SubscriberIdentityProperties? SubscriberIdentity; + /// + /// The name of your Security Lake subscriber account. + /// + public readonly string? SubscriberName; + public readonly string? SubscriberRoleArn; + /// + /// An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string. + /// + public readonly ImmutableArray Tags; + + [OutputConstructor] + private GetSubscriberResult( + ImmutableArray accessTypes, + + string? resourceShareArn, + + string? resourceShareName, + + string? s3BucketArn, + + ImmutableArray> sources, + + string? subscriberArn, + + string? subscriberDescription, + + Outputs.SubscriberIdentityProperties? subscriberIdentity, + + string? subscriberName, + + string? subscriberRoleArn, + + ImmutableArray tags) + { + AccessTypes = accessTypes; + ResourceShareArn = resourceShareArn; + ResourceShareName = resourceShareName; + S3BucketArn = s3BucketArn; + Sources = sources; + SubscriberArn = subscriberArn; + SubscriberDescription = subscriberDescription; + SubscriberIdentity = subscriberIdentity; + SubscriberName = subscriberName; + SubscriberRoleArn = subscriberRoleArn; + Tags = tags; + } + } +} diff --git a/sdk/dotnet/SecurityLake/Inputs/DataLakeEncryptionConfigurationArgs.cs b/sdk/dotnet/SecurityLake/Inputs/DataLakeEncryptionConfigurationArgs.cs new file mode 100644 index 0000000000..65c6ab3516 --- /dev/null +++ b/sdk/dotnet/SecurityLake/Inputs/DataLakeEncryptionConfigurationArgs.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.SecurityLake.Inputs +{ + + /// + /// Provides encryption details of Amazon Security Lake object. + /// + public sealed class DataLakeEncryptionConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The id of KMS encryption key used by Amazon Security Lake to encrypt the Security Lake object. + /// + [Input("kmsKeyId")] + public Input? KmsKeyId { get; set; } + + public DataLakeEncryptionConfigurationArgs() + { + } + public static new DataLakeEncryptionConfigurationArgs Empty => new DataLakeEncryptionConfigurationArgs(); + } +} diff --git a/sdk/dotnet/SecurityLake/Inputs/DataLakeExpirationArgs.cs b/sdk/dotnet/SecurityLake/Inputs/DataLakeExpirationArgs.cs new file mode 100644 index 0000000000..cd16072836 --- /dev/null +++ b/sdk/dotnet/SecurityLake/Inputs/DataLakeExpirationArgs.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.SecurityLake.Inputs +{ + + /// + /// Provides data expiration details of Amazon Security Lake object. + /// + public sealed class DataLakeExpirationArgs : global::Pulumi.ResourceArgs + { + [Input("days")] + public Input? Days { get; set; } + + public DataLakeExpirationArgs() + { + } + public static new DataLakeExpirationArgs Empty => new DataLakeExpirationArgs(); + } +} diff --git a/sdk/dotnet/SecurityLake/Inputs/DataLakeLifecycleConfigurationArgs.cs b/sdk/dotnet/SecurityLake/Inputs/DataLakeLifecycleConfigurationArgs.cs new file mode 100644 index 0000000000..e9bccdb710 --- /dev/null +++ b/sdk/dotnet/SecurityLake/Inputs/DataLakeLifecycleConfigurationArgs.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.SecurityLake.Inputs +{ + + /// + /// Provides lifecycle details of Amazon Security Lake object. + /// + public sealed class DataLakeLifecycleConfigurationArgs : global::Pulumi.ResourceArgs + { + [Input("expiration")] + public Input? Expiration { get; set; } + + [Input("transitions")] + private InputList? _transitions; + + /// + /// Provides data storage transition details of Amazon Security Lake object. + /// + public InputList Transitions + { + get => _transitions ?? (_transitions = new InputList()); + set => _transitions = value; + } + + public DataLakeLifecycleConfigurationArgs() + { + } + public static new DataLakeLifecycleConfigurationArgs Empty => new DataLakeLifecycleConfigurationArgs(); + } +} diff --git a/sdk/dotnet/SecurityLake/Inputs/DataLakeReplicationConfigurationArgs.cs b/sdk/dotnet/SecurityLake/Inputs/DataLakeReplicationConfigurationArgs.cs new file mode 100644 index 0000000000..438ffdd186 --- /dev/null +++ b/sdk/dotnet/SecurityLake/Inputs/DataLakeReplicationConfigurationArgs.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.SecurityLake.Inputs +{ + + /// + /// Provides replication details of Amazon Security Lake object. + /// + public sealed class DataLakeReplicationConfigurationArgs : global::Pulumi.ResourceArgs + { + [Input("regions")] + private InputList? _regions; + public InputList Regions + { + get => _regions ?? (_regions = new InputList()); + set => _regions = value; + } + + /// + /// Replication settings for the Amazon S3 buckets. This parameter uses the AWS Identity and Access Management (IAM) role you created that is managed by Security Lake, to ensure the replication setting is correct. + /// + [Input("roleArn")] + public Input? RoleArn { get; set; } + + public DataLakeReplicationConfigurationArgs() + { + } + public static new DataLakeReplicationConfigurationArgs Empty => new DataLakeReplicationConfigurationArgs(); + } +} diff --git a/sdk/dotnet/SecurityLake/Inputs/DataLakeTransitionsArgs.cs b/sdk/dotnet/SecurityLake/Inputs/DataLakeTransitionsArgs.cs new file mode 100644 index 0000000000..ff242a98fa --- /dev/null +++ b/sdk/dotnet/SecurityLake/Inputs/DataLakeTransitionsArgs.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.SecurityLake.Inputs +{ + + public sealed class DataLakeTransitionsArgs : global::Pulumi.ResourceArgs + { + /// + /// Number of days before data transitions to a different S3 Storage Class in the Amazon Security Lake object. + /// + [Input("days")] + public Input? Days { get; set; } + + /// + /// The range of storage classes that you can choose from based on the data access, resiliency, and cost requirements of your workloads. + /// + [Input("storageClass")] + public Input? StorageClass { get; set; } + + public DataLakeTransitionsArgs() + { + } + public static new DataLakeTransitionsArgs Empty => new DataLakeTransitionsArgs(); + } +} diff --git a/sdk/dotnet/SecurityLake/Inputs/SubscriberAwsLogSourceArgs.cs b/sdk/dotnet/SecurityLake/Inputs/SubscriberAwsLogSourceArgs.cs new file mode 100644 index 0000000000..d1139c53fc --- /dev/null +++ b/sdk/dotnet/SecurityLake/Inputs/SubscriberAwsLogSourceArgs.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.SecurityLake.Inputs +{ + + /// + /// Amazon Security Lake supports log and event collection for natively supported AWS services. + /// + public sealed class SubscriberAwsLogSourceArgs : global::Pulumi.ResourceArgs + { + /// + /// The name for a AWS source. This must be a Regionally unique value. + /// + [Input("sourceName")] + public Input? SourceName { get; set; } + + /// + /// The version for a AWS source. This must be a Regionally unique value. + /// + [Input("sourceVersion")] + public Input? SourceVersion { get; set; } + + public SubscriberAwsLogSourceArgs() + { + } + public static new SubscriberAwsLogSourceArgs Empty => new SubscriberAwsLogSourceArgs(); + } +} diff --git a/sdk/dotnet/SecurityLake/Inputs/SubscriberCustomLogSourceArgs.cs b/sdk/dotnet/SecurityLake/Inputs/SubscriberCustomLogSourceArgs.cs new file mode 100644 index 0000000000..34201f9345 --- /dev/null +++ b/sdk/dotnet/SecurityLake/Inputs/SubscriberCustomLogSourceArgs.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.SecurityLake.Inputs +{ + + public sealed class SubscriberCustomLogSourceArgs : global::Pulumi.ResourceArgs + { + /// + /// The name for a third-party custom source. This must be a Regionally unique value. + /// + [Input("sourceName")] + public Input? SourceName { get; set; } + + /// + /// The version for a third-party custom source. This must be a Regionally unique value. + /// + [Input("sourceVersion")] + public Input? SourceVersion { get; set; } + + public SubscriberCustomLogSourceArgs() + { + } + public static new SubscriberCustomLogSourceArgs Empty => new SubscriberCustomLogSourceArgs(); + } +} diff --git a/sdk/dotnet/SecurityLake/Inputs/SubscriberIdentityPropertiesArgs.cs b/sdk/dotnet/SecurityLake/Inputs/SubscriberIdentityPropertiesArgs.cs new file mode 100644 index 0000000000..22aa23d7b9 --- /dev/null +++ b/sdk/dotnet/SecurityLake/Inputs/SubscriberIdentityPropertiesArgs.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.SecurityLake.Inputs +{ + + /// + /// The AWS identity used to access your data. + /// + public sealed class SubscriberIdentityPropertiesArgs : global::Pulumi.ResourceArgs + { + /// + /// The external ID used to establish trust relationship with the AWS identity. + /// + [Input("externalId", required: true)] + public Input ExternalId { get; set; } = null!; + + /// + /// The AWS identity principal. + /// + [Input("principal", required: true)] + public Input Principal { get; set; } = null!; + + public SubscriberIdentityPropertiesArgs() + { + } + public static new SubscriberIdentityPropertiesArgs Empty => new SubscriberIdentityPropertiesArgs(); + } +} diff --git a/sdk/dotnet/SecurityLake/Inputs/SubscriberSource0PropertiesArgs.cs b/sdk/dotnet/SecurityLake/Inputs/SubscriberSource0PropertiesArgs.cs new file mode 100644 index 0000000000..53bca5c017 --- /dev/null +++ b/sdk/dotnet/SecurityLake/Inputs/SubscriberSource0PropertiesArgs.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.SecurityLake.Inputs +{ + + public sealed class SubscriberSource0PropertiesArgs : global::Pulumi.ResourceArgs + { + [Input("awsLogSource", required: true)] + public Input AwsLogSource { get; set; } = null!; + + public SubscriberSource0PropertiesArgs() + { + } + public static new SubscriberSource0PropertiesArgs Empty => new SubscriberSource0PropertiesArgs(); + } +} diff --git a/sdk/dotnet/SecurityLake/Inputs/SubscriberSource1PropertiesArgs.cs b/sdk/dotnet/SecurityLake/Inputs/SubscriberSource1PropertiesArgs.cs new file mode 100644 index 0000000000..47f2b99922 --- /dev/null +++ b/sdk/dotnet/SecurityLake/Inputs/SubscriberSource1PropertiesArgs.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.SecurityLake.Inputs +{ + + public sealed class SubscriberSource1PropertiesArgs : global::Pulumi.ResourceArgs + { + [Input("customLogSource", required: true)] + public Input CustomLogSource { get; set; } = null!; + + public SubscriberSource1PropertiesArgs() + { + } + public static new SubscriberSource1PropertiesArgs Empty => new SubscriberSource1PropertiesArgs(); + } +} diff --git a/sdk/dotnet/SecurityLake/Outputs/DataLakeEncryptionConfiguration.cs b/sdk/dotnet/SecurityLake/Outputs/DataLakeEncryptionConfiguration.cs new file mode 100644 index 0000000000..b94663bd4f --- /dev/null +++ b/sdk/dotnet/SecurityLake/Outputs/DataLakeEncryptionConfiguration.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.SecurityLake.Outputs +{ + + /// + /// Provides encryption details of Amazon Security Lake object. + /// + [OutputType] + public sealed class DataLakeEncryptionConfiguration + { + /// + /// The id of KMS encryption key used by Amazon Security Lake to encrypt the Security Lake object. + /// + public readonly string? KmsKeyId; + + [OutputConstructor] + private DataLakeEncryptionConfiguration(string? kmsKeyId) + { + KmsKeyId = kmsKeyId; + } + } +} diff --git a/sdk/dotnet/SecurityLake/Outputs/DataLakeExpiration.cs b/sdk/dotnet/SecurityLake/Outputs/DataLakeExpiration.cs new file mode 100644 index 0000000000..05d1a02f90 --- /dev/null +++ b/sdk/dotnet/SecurityLake/Outputs/DataLakeExpiration.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.SecurityLake.Outputs +{ + + /// + /// Provides data expiration details of Amazon Security Lake object. + /// + [OutputType] + public sealed class DataLakeExpiration + { + public readonly int? Days; + + [OutputConstructor] + private DataLakeExpiration(int? days) + { + Days = days; + } + } +} diff --git a/sdk/dotnet/SecurityLake/Outputs/DataLakeLifecycleConfiguration.cs b/sdk/dotnet/SecurityLake/Outputs/DataLakeLifecycleConfiguration.cs new file mode 100644 index 0000000000..768f662cfb --- /dev/null +++ b/sdk/dotnet/SecurityLake/Outputs/DataLakeLifecycleConfiguration.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.SecurityLake.Outputs +{ + + /// + /// Provides lifecycle details of Amazon Security Lake object. + /// + [OutputType] + public sealed class DataLakeLifecycleConfiguration + { + public readonly Outputs.DataLakeExpiration? Expiration; + /// + /// Provides data storage transition details of Amazon Security Lake object. + /// + public readonly ImmutableArray Transitions; + + [OutputConstructor] + private DataLakeLifecycleConfiguration( + Outputs.DataLakeExpiration? expiration, + + ImmutableArray transitions) + { + Expiration = expiration; + Transitions = transitions; + } + } +} diff --git a/sdk/dotnet/SecurityLake/Outputs/DataLakeReplicationConfiguration.cs b/sdk/dotnet/SecurityLake/Outputs/DataLakeReplicationConfiguration.cs new file mode 100644 index 0000000000..dc59e1473e --- /dev/null +++ b/sdk/dotnet/SecurityLake/Outputs/DataLakeReplicationConfiguration.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.SecurityLake.Outputs +{ + + /// + /// Provides replication details of Amazon Security Lake object. + /// + [OutputType] + public sealed class DataLakeReplicationConfiguration + { + public readonly ImmutableArray Regions; + /// + /// Replication settings for the Amazon S3 buckets. This parameter uses the AWS Identity and Access Management (IAM) role you created that is managed by Security Lake, to ensure the replication setting is correct. + /// + public readonly string? RoleArn; + + [OutputConstructor] + private DataLakeReplicationConfiguration( + ImmutableArray regions, + + string? roleArn) + { + Regions = regions; + RoleArn = roleArn; + } + } +} diff --git a/sdk/dotnet/SecurityLake/Outputs/DataLakeTransitions.cs b/sdk/dotnet/SecurityLake/Outputs/DataLakeTransitions.cs new file mode 100644 index 0000000000..628d33c3e2 --- /dev/null +++ b/sdk/dotnet/SecurityLake/Outputs/DataLakeTransitions.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.SecurityLake.Outputs +{ + + [OutputType] + public sealed class DataLakeTransitions + { + /// + /// Number of days before data transitions to a different S3 Storage Class in the Amazon Security Lake object. + /// + public readonly int? Days; + /// + /// The range of storage classes that you can choose from based on the data access, resiliency, and cost requirements of your workloads. + /// + public readonly string? StorageClass; + + [OutputConstructor] + private DataLakeTransitions( + int? days, + + string? storageClass) + { + Days = days; + StorageClass = storageClass; + } + } +} diff --git a/sdk/dotnet/SecurityLake/Outputs/SubscriberAwsLogSource.cs b/sdk/dotnet/SecurityLake/Outputs/SubscriberAwsLogSource.cs new file mode 100644 index 0000000000..cd13334713 --- /dev/null +++ b/sdk/dotnet/SecurityLake/Outputs/SubscriberAwsLogSource.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.SecurityLake.Outputs +{ + + /// + /// Amazon Security Lake supports log and event collection for natively supported AWS services. + /// + [OutputType] + public sealed class SubscriberAwsLogSource + { + /// + /// The name for a AWS source. This must be a Regionally unique value. + /// + public readonly string? SourceName; + /// + /// The version for a AWS source. This must be a Regionally unique value. + /// + public readonly string? SourceVersion; + + [OutputConstructor] + private SubscriberAwsLogSource( + string? sourceName, + + string? sourceVersion) + { + SourceName = sourceName; + SourceVersion = sourceVersion; + } + } +} diff --git a/sdk/dotnet/SecurityLake/Outputs/SubscriberCustomLogSource.cs b/sdk/dotnet/SecurityLake/Outputs/SubscriberCustomLogSource.cs new file mode 100644 index 0000000000..a4ff916445 --- /dev/null +++ b/sdk/dotnet/SecurityLake/Outputs/SubscriberCustomLogSource.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.SecurityLake.Outputs +{ + + [OutputType] + public sealed class SubscriberCustomLogSource + { + /// + /// The name for a third-party custom source. This must be a Regionally unique value. + /// + public readonly string? SourceName; + /// + /// The version for a third-party custom source. This must be a Regionally unique value. + /// + public readonly string? SourceVersion; + + [OutputConstructor] + private SubscriberCustomLogSource( + string? sourceName, + + string? sourceVersion) + { + SourceName = sourceName; + SourceVersion = sourceVersion; + } + } +} diff --git a/sdk/dotnet/SecurityLake/Outputs/SubscriberIdentityProperties.cs b/sdk/dotnet/SecurityLake/Outputs/SubscriberIdentityProperties.cs new file mode 100644 index 0000000000..a632c16d86 --- /dev/null +++ b/sdk/dotnet/SecurityLake/Outputs/SubscriberIdentityProperties.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.SecurityLake.Outputs +{ + + /// + /// The AWS identity used to access your data. + /// + [OutputType] + public sealed class SubscriberIdentityProperties + { + /// + /// The external ID used to establish trust relationship with the AWS identity. + /// + public readonly string ExternalId; + /// + /// The AWS identity principal. + /// + public readonly string Principal; + + [OutputConstructor] + private SubscriberIdentityProperties( + string externalId, + + string principal) + { + ExternalId = externalId; + Principal = principal; + } + } +} diff --git a/sdk/dotnet/SecurityLake/Outputs/SubscriberSource0Properties.cs b/sdk/dotnet/SecurityLake/Outputs/SubscriberSource0Properties.cs new file mode 100644 index 0000000000..cd3ace0002 --- /dev/null +++ b/sdk/dotnet/SecurityLake/Outputs/SubscriberSource0Properties.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.SecurityLake.Outputs +{ + + [OutputType] + public sealed class SubscriberSource0Properties + { + public readonly Outputs.SubscriberAwsLogSource AwsLogSource; + + [OutputConstructor] + private SubscriberSource0Properties(Outputs.SubscriberAwsLogSource awsLogSource) + { + AwsLogSource = awsLogSource; + } + } +} diff --git a/sdk/dotnet/SecurityLake/Outputs/SubscriberSource1Properties.cs b/sdk/dotnet/SecurityLake/Outputs/SubscriberSource1Properties.cs new file mode 100644 index 0000000000..a9f7f14db9 --- /dev/null +++ b/sdk/dotnet/SecurityLake/Outputs/SubscriberSource1Properties.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.SecurityLake.Outputs +{ + + [OutputType] + public sealed class SubscriberSource1Properties + { + public readonly Outputs.SubscriberCustomLogSource CustomLogSource; + + [OutputConstructor] + private SubscriberSource1Properties(Outputs.SubscriberCustomLogSource customLogSource) + { + CustomLogSource = customLogSource; + } + } +} diff --git a/sdk/dotnet/SecurityLake/README.md b/sdk/dotnet/SecurityLake/README.md new file mode 100644 index 0000000000..77b2f47ec2 --- /dev/null +++ b/sdk/dotnet/SecurityLake/README.md @@ -0,0 +1 @@ +A native Pulumi package for creating and managing Amazon Web Services (AWS) resources. diff --git a/sdk/dotnet/SecurityLake/Subscriber.cs b/sdk/dotnet/SecurityLake/Subscriber.cs new file mode 100644 index 0000000000..f694cf6750 --- /dev/null +++ b/sdk/dotnet/SecurityLake/Subscriber.cs @@ -0,0 +1,182 @@ +// *** 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.SecurityLake +{ + /// + /// Resource Type definition for AWS::SecurityLake::Subscriber + /// + [AwsNativeResourceType("aws-native:securitylake:Subscriber")] + public partial class Subscriber : global::Pulumi.CustomResource + { + [Output("accessTypes")] + public Output> AccessTypes { get; private set; } = null!; + + /// + /// The ARN for the data lake. + /// + [Output("dataLakeArn")] + public Output DataLakeArn { get; private set; } = null!; + + [Output("resourceShareArn")] + public Output ResourceShareArn { get; private set; } = null!; + + [Output("resourceShareName")] + public Output ResourceShareName { get; private set; } = null!; + + [Output("s3BucketArn")] + public Output S3BucketArn { get; private set; } = null!; + + /// + /// The supported AWS services from which logs and events are collected. + /// + [Output("sources")] + public Output>> Sources { get; private set; } = null!; + + [Output("subscriberArn")] + public Output SubscriberArn { get; private set; } = null!; + + /// + /// The description for your subscriber account in Security Lake. + /// + [Output("subscriberDescription")] + public Output SubscriberDescription { get; private set; } = null!; + + /// + /// The AWS identity used to access your data. + /// + [Output("subscriberIdentity")] + public Output SubscriberIdentity { get; private set; } = null!; + + /// + /// The name of your Security Lake subscriber account. + /// + [Output("subscriberName")] + public Output SubscriberName { get; private set; } = null!; + + [Output("subscriberRoleArn")] + public Output SubscriberRoleArn { get; private set; } = null!; + + /// + /// An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string. + /// + [Output("tags")] + public Output> Tags { get; private set; } = null!; + + + /// + /// Create a Subscriber 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 Subscriber(string name, SubscriberArgs args, CustomResourceOptions? options = null) + : base("aws-native:securitylake:Subscriber", name, args ?? new SubscriberArgs(), MakeResourceOptions(options, "")) + { + } + + private Subscriber(string name, Input id, CustomResourceOptions? options = null) + : base("aws-native:securitylake:Subscriber", name, null, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + ReplaceOnChanges = + { + "dataLakeArn", + }, + }; + 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 Subscriber 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 Subscriber Get(string name, Input id, CustomResourceOptions? options = null) + { + return new Subscriber(name, id, options); + } + } + + public sealed class SubscriberArgs : global::Pulumi.ResourceArgs + { + [Input("accessTypes", required: true)] + private InputList? _accessTypes; + public InputList AccessTypes + { + get => _accessTypes ?? (_accessTypes = new InputList()); + set => _accessTypes = value; + } + + /// + /// The ARN for the data lake. + /// + [Input("dataLakeArn", required: true)] + public Input DataLakeArn { get; set; } = null!; + + [Input("sources", required: true)] + private InputList>? _sources; + + /// + /// The supported AWS services from which logs and events are collected. + /// + public InputList> Sources + { + get => _sources ?? (_sources = new InputList>()); + set => _sources = value; + } + + /// + /// The description for your subscriber account in Security Lake. + /// + [Input("subscriberDescription")] + public Input? SubscriberDescription { get; set; } + + /// + /// The AWS identity used to access your data. + /// + [Input("subscriberIdentity", required: true)] + public Input SubscriberIdentity { get; set; } = null!; + + /// + /// The name of your Security Lake subscriber account. + /// + [Input("subscriberName")] + public Input? SubscriberName { get; set; } + + [Input("tags")] + private InputList? _tags; + + /// + /// An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string. + /// + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + + public SubscriberArgs() + { + } + public static new SubscriberArgs Empty => new SubscriberArgs(); + } +} diff --git a/sdk/go/aws/appintegrations/application.go b/sdk/go/aws/appintegrations/application.go new file mode 100644 index 0000000000..b928f0d4c3 --- /dev/null +++ b/sdk/go/aws/appintegrations/application.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 appintegrations + +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" +) + +// Resource Type definition for AWS:AppIntegrations::Application +type Application struct { + pulumi.CustomResourceState + + // The Amazon Resource Name (ARN) of the application. + ApplicationArn pulumi.StringOutput `pulumi:"applicationArn"` + // Application source config + ApplicationSourceConfig ApplicationSourceConfigPropertiesOutput `pulumi:"applicationSourceConfig"` + // The id of the application. + AwsId pulumi.StringOutput `pulumi:"awsId"` + // The application description. + Description pulumi.StringOutput `pulumi:"description"` + // The name of the application. + Name pulumi.StringOutput `pulumi:"name"` + // The namespace of the application. + Namespace pulumi.StringPtrOutput `pulumi:"namespace"` + // The tags (keys and values) associated with the application. + Tags aws.TagArrayOutput `pulumi:"tags"` +} + +// NewApplication registers a new resource with the given unique name, arguments, and options. +func NewApplication(ctx *pulumi.Context, + name string, args *ApplicationArgs, opts ...pulumi.ResourceOption) (*Application, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ApplicationSourceConfig == nil { + return nil, errors.New("invalid value for required argument 'ApplicationSourceConfig'") + } + if args.Description == nil { + return nil, errors.New("invalid value for required argument 'Description'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Application + err := ctx.RegisterResource("aws-native:appintegrations:Application", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetApplication gets an existing Application resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetApplication(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ApplicationState, opts ...pulumi.ResourceOption) (*Application, error) { + var resource Application + err := ctx.ReadResource("aws-native:appintegrations:Application", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Application resources. +type applicationState struct { +} + +type ApplicationState struct { +} + +func (ApplicationState) ElementType() reflect.Type { + return reflect.TypeOf((*applicationState)(nil)).Elem() +} + +type applicationArgs struct { + // Application source config + ApplicationSourceConfig ApplicationSourceConfigProperties `pulumi:"applicationSourceConfig"` + // The application description. + Description string `pulumi:"description"` + // The name of the application. + Name *string `pulumi:"name"` + // The namespace of the application. + Namespace *string `pulumi:"namespace"` + // The tags (keys and values) associated with the application. + Tags []aws.Tag `pulumi:"tags"` +} + +// The set of arguments for constructing a Application resource. +type ApplicationArgs struct { + // Application source config + ApplicationSourceConfig ApplicationSourceConfigPropertiesInput + // The application description. + Description pulumi.StringInput + // The name of the application. + Name pulumi.StringPtrInput + // The namespace of the application. + Namespace pulumi.StringPtrInput + // The tags (keys and values) associated with the application. + Tags aws.TagArrayInput +} + +func (ApplicationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*applicationArgs)(nil)).Elem() +} + +type ApplicationInput interface { + pulumi.Input + + ToApplicationOutput() ApplicationOutput + ToApplicationOutputWithContext(ctx context.Context) ApplicationOutput +} + +func (*Application) ElementType() reflect.Type { + return reflect.TypeOf((**Application)(nil)).Elem() +} + +func (i *Application) ToApplicationOutput() ApplicationOutput { + return i.ToApplicationOutputWithContext(context.Background()) +} + +func (i *Application) ToApplicationOutputWithContext(ctx context.Context) ApplicationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationOutput) +} + +type ApplicationOutput struct{ *pulumi.OutputState } + +func (ApplicationOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Application)(nil)).Elem() +} + +func (o ApplicationOutput) ToApplicationOutput() ApplicationOutput { + return o +} + +func (o ApplicationOutput) ToApplicationOutputWithContext(ctx context.Context) ApplicationOutput { + return o +} + +// The Amazon Resource Name (ARN) of the application. +func (o ApplicationOutput) ApplicationArn() pulumi.StringOutput { + return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.ApplicationArn }).(pulumi.StringOutput) +} + +// Application source config +func (o ApplicationOutput) ApplicationSourceConfig() ApplicationSourceConfigPropertiesOutput { + return o.ApplyT(func(v *Application) ApplicationSourceConfigPropertiesOutput { return v.ApplicationSourceConfig }).(ApplicationSourceConfigPropertiesOutput) +} + +// The id of the application. +func (o ApplicationOutput) AwsId() pulumi.StringOutput { + return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.AwsId }).(pulumi.StringOutput) +} + +// The application description. +func (o ApplicationOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput) +} + +// The name of the application. +func (o ApplicationOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The namespace of the application. +func (o ApplicationOutput) Namespace() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Application) pulumi.StringPtrOutput { return v.Namespace }).(pulumi.StringPtrOutput) +} + +// The tags (keys and values) associated with the application. +func (o ApplicationOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v *Application) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationInput)(nil)).Elem(), &Application{}) + pulumi.RegisterOutputType(ApplicationOutput{}) +} diff --git a/sdk/go/aws/appintegrations/getApplication.go b/sdk/go/aws/appintegrations/getApplication.go new file mode 100644 index 0000000000..f67ec62ea2 --- /dev/null +++ b/sdk/go/aws/appintegrations/getApplication.go @@ -0,0 +1,121 @@ +// 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 appintegrations + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Resource Type definition for AWS:AppIntegrations::Application +func LookupApplication(ctx *pulumi.Context, args *LookupApplicationArgs, opts ...pulumi.InvokeOption) (*LookupApplicationResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupApplicationResult + err := ctx.Invoke("aws-native:appintegrations:getApplication", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupApplicationArgs struct { + // The Amazon Resource Name (ARN) of the application. + ApplicationArn string `pulumi:"applicationArn"` +} + +type LookupApplicationResult struct { + // The Amazon Resource Name (ARN) of the application. + ApplicationArn *string `pulumi:"applicationArn"` + // Application source config + ApplicationSourceConfig *ApplicationSourceConfigProperties `pulumi:"applicationSourceConfig"` + // The application description. + Description *string `pulumi:"description"` + // The id of the application. + Id *string `pulumi:"id"` + // The name of the application. + Name *string `pulumi:"name"` + // The namespace of the application. + Namespace *string `pulumi:"namespace"` + // The tags (keys and values) associated with the application. + Tags []aws.Tag `pulumi:"tags"` +} + +func LookupApplicationOutput(ctx *pulumi.Context, args LookupApplicationOutputArgs, opts ...pulumi.InvokeOption) LookupApplicationResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupApplicationResult, error) { + args := v.(LookupApplicationArgs) + r, err := LookupApplication(ctx, &args, opts...) + var s LookupApplicationResult + if r != nil { + s = *r + } + return s, err + }).(LookupApplicationResultOutput) +} + +type LookupApplicationOutputArgs struct { + // The Amazon Resource Name (ARN) of the application. + ApplicationArn pulumi.StringInput `pulumi:"applicationArn"` +} + +func (LookupApplicationOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupApplicationArgs)(nil)).Elem() +} + +type LookupApplicationResultOutput struct{ *pulumi.OutputState } + +func (LookupApplicationResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupApplicationResult)(nil)).Elem() +} + +func (o LookupApplicationResultOutput) ToLookupApplicationResultOutput() LookupApplicationResultOutput { + return o +} + +func (o LookupApplicationResultOutput) ToLookupApplicationResultOutputWithContext(ctx context.Context) LookupApplicationResultOutput { + return o +} + +// The Amazon Resource Name (ARN) of the application. +func (o LookupApplicationResultOutput) ApplicationArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupApplicationResult) *string { return v.ApplicationArn }).(pulumi.StringPtrOutput) +} + +// Application source config +func (o LookupApplicationResultOutput) ApplicationSourceConfig() ApplicationSourceConfigPropertiesPtrOutput { + return o.ApplyT(func(v LookupApplicationResult) *ApplicationSourceConfigProperties { return v.ApplicationSourceConfig }).(ApplicationSourceConfigPropertiesPtrOutput) +} + +// The application description. +func (o LookupApplicationResultOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupApplicationResult) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// The id of the application. +func (o LookupApplicationResultOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupApplicationResult) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// The name of the application. +func (o LookupApplicationResultOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupApplicationResult) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// The namespace of the application. +func (o LookupApplicationResultOutput) Namespace() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupApplicationResult) *string { return v.Namespace }).(pulumi.StringPtrOutput) +} + +// The tags (keys and values) associated with the application. +func (o LookupApplicationResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupApplicationResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupApplicationResultOutput{}) +} diff --git a/sdk/go/aws/appintegrations/init.go b/sdk/go/aws/appintegrations/init.go index 1b336b6012..3519dc25e0 100644 --- a/sdk/go/aws/appintegrations/init.go +++ b/sdk/go/aws/appintegrations/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:appintegrations:Application": + r = &Application{} case "aws-native:appintegrations:DataIntegration": r = &DataIntegration{} case "aws-native:appintegrations:EventIntegration": diff --git a/sdk/go/aws/appintegrations/pulumiTypes.go b/sdk/go/aws/appintegrations/pulumiTypes.go index 5e0d34afc0..5d1c31145e 100644 --- a/sdk/go/aws/appintegrations/pulumiTypes.go +++ b/sdk/go/aws/appintegrations/pulumiTypes.go @@ -13,6 +13,196 @@ import ( var _ = internal.GetEnvOrDefault +type ApplicationExternalUrlConfig struct { + AccessUrl string `pulumi:"accessUrl"` + ApprovedOrigins []string `pulumi:"approvedOrigins"` +} + +// ApplicationExternalUrlConfigInput is an input type that accepts ApplicationExternalUrlConfigArgs and ApplicationExternalUrlConfigOutput values. +// You can construct a concrete instance of `ApplicationExternalUrlConfigInput` via: +// +// ApplicationExternalUrlConfigArgs{...} +type ApplicationExternalUrlConfigInput interface { + pulumi.Input + + ToApplicationExternalUrlConfigOutput() ApplicationExternalUrlConfigOutput + ToApplicationExternalUrlConfigOutputWithContext(context.Context) ApplicationExternalUrlConfigOutput +} + +type ApplicationExternalUrlConfigArgs struct { + AccessUrl pulumi.StringInput `pulumi:"accessUrl"` + ApprovedOrigins pulumi.StringArrayInput `pulumi:"approvedOrigins"` +} + +func (ApplicationExternalUrlConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationExternalUrlConfig)(nil)).Elem() +} + +func (i ApplicationExternalUrlConfigArgs) ToApplicationExternalUrlConfigOutput() ApplicationExternalUrlConfigOutput { + return i.ToApplicationExternalUrlConfigOutputWithContext(context.Background()) +} + +func (i ApplicationExternalUrlConfigArgs) ToApplicationExternalUrlConfigOutputWithContext(ctx context.Context) ApplicationExternalUrlConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationExternalUrlConfigOutput) +} + +type ApplicationExternalUrlConfigOutput struct{ *pulumi.OutputState } + +func (ApplicationExternalUrlConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationExternalUrlConfig)(nil)).Elem() +} + +func (o ApplicationExternalUrlConfigOutput) ToApplicationExternalUrlConfigOutput() ApplicationExternalUrlConfigOutput { + return o +} + +func (o ApplicationExternalUrlConfigOutput) ToApplicationExternalUrlConfigOutputWithContext(ctx context.Context) ApplicationExternalUrlConfigOutput { + return o +} + +func (o ApplicationExternalUrlConfigOutput) AccessUrl() pulumi.StringOutput { + return o.ApplyT(func(v ApplicationExternalUrlConfig) string { return v.AccessUrl }).(pulumi.StringOutput) +} + +func (o ApplicationExternalUrlConfigOutput) ApprovedOrigins() pulumi.StringArrayOutput { + return o.ApplyT(func(v ApplicationExternalUrlConfig) []string { return v.ApprovedOrigins }).(pulumi.StringArrayOutput) +} + +type ApplicationExternalUrlConfigPtrOutput struct{ *pulumi.OutputState } + +func (ApplicationExternalUrlConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationExternalUrlConfig)(nil)).Elem() +} + +func (o ApplicationExternalUrlConfigPtrOutput) ToApplicationExternalUrlConfigPtrOutput() ApplicationExternalUrlConfigPtrOutput { + return o +} + +func (o ApplicationExternalUrlConfigPtrOutput) ToApplicationExternalUrlConfigPtrOutputWithContext(ctx context.Context) ApplicationExternalUrlConfigPtrOutput { + return o +} + +func (o ApplicationExternalUrlConfigPtrOutput) Elem() ApplicationExternalUrlConfigOutput { + return o.ApplyT(func(v *ApplicationExternalUrlConfig) ApplicationExternalUrlConfig { + if v != nil { + return *v + } + var ret ApplicationExternalUrlConfig + return ret + }).(ApplicationExternalUrlConfigOutput) +} + +func (o ApplicationExternalUrlConfigPtrOutput) AccessUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplicationExternalUrlConfig) *string { + if v == nil { + return nil + } + return &v.AccessUrl + }).(pulumi.StringPtrOutput) +} + +func (o ApplicationExternalUrlConfigPtrOutput) ApprovedOrigins() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ApplicationExternalUrlConfig) []string { + if v == nil { + return nil + } + return v.ApprovedOrigins + }).(pulumi.StringArrayOutput) +} + +// Application source config +type ApplicationSourceConfigProperties struct { + ExternalUrlConfig ApplicationExternalUrlConfig `pulumi:"externalUrlConfig"` +} + +// ApplicationSourceConfigPropertiesInput is an input type that accepts ApplicationSourceConfigPropertiesArgs and ApplicationSourceConfigPropertiesOutput values. +// You can construct a concrete instance of `ApplicationSourceConfigPropertiesInput` via: +// +// ApplicationSourceConfigPropertiesArgs{...} +type ApplicationSourceConfigPropertiesInput interface { + pulumi.Input + + ToApplicationSourceConfigPropertiesOutput() ApplicationSourceConfigPropertiesOutput + ToApplicationSourceConfigPropertiesOutputWithContext(context.Context) ApplicationSourceConfigPropertiesOutput +} + +// Application source config +type ApplicationSourceConfigPropertiesArgs struct { + ExternalUrlConfig ApplicationExternalUrlConfigInput `pulumi:"externalUrlConfig"` +} + +func (ApplicationSourceConfigPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationSourceConfigProperties)(nil)).Elem() +} + +func (i ApplicationSourceConfigPropertiesArgs) ToApplicationSourceConfigPropertiesOutput() ApplicationSourceConfigPropertiesOutput { + return i.ToApplicationSourceConfigPropertiesOutputWithContext(context.Background()) +} + +func (i ApplicationSourceConfigPropertiesArgs) ToApplicationSourceConfigPropertiesOutputWithContext(ctx context.Context) ApplicationSourceConfigPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplicationSourceConfigPropertiesOutput) +} + +// Application source config +type ApplicationSourceConfigPropertiesOutput struct{ *pulumi.OutputState } + +func (ApplicationSourceConfigPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplicationSourceConfigProperties)(nil)).Elem() +} + +func (o ApplicationSourceConfigPropertiesOutput) ToApplicationSourceConfigPropertiesOutput() ApplicationSourceConfigPropertiesOutput { + return o +} + +func (o ApplicationSourceConfigPropertiesOutput) ToApplicationSourceConfigPropertiesOutputWithContext(ctx context.Context) ApplicationSourceConfigPropertiesOutput { + return o +} + +func (o ApplicationSourceConfigPropertiesOutput) ExternalUrlConfig() ApplicationExternalUrlConfigOutput { + return o.ApplyT(func(v ApplicationSourceConfigProperties) ApplicationExternalUrlConfig { return v.ExternalUrlConfig }).(ApplicationExternalUrlConfigOutput) +} + +type ApplicationSourceConfigPropertiesPtrOutput struct{ *pulumi.OutputState } + +func (ApplicationSourceConfigPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplicationSourceConfigProperties)(nil)).Elem() +} + +func (o ApplicationSourceConfigPropertiesPtrOutput) ToApplicationSourceConfigPropertiesPtrOutput() ApplicationSourceConfigPropertiesPtrOutput { + return o +} + +func (o ApplicationSourceConfigPropertiesPtrOutput) ToApplicationSourceConfigPropertiesPtrOutputWithContext(ctx context.Context) ApplicationSourceConfigPropertiesPtrOutput { + return o +} + +func (o ApplicationSourceConfigPropertiesPtrOutput) Elem() ApplicationSourceConfigPropertiesOutput { + return o.ApplyT(func(v *ApplicationSourceConfigProperties) ApplicationSourceConfigProperties { + if v != nil { + return *v + } + var ret ApplicationSourceConfigProperties + return ret + }).(ApplicationSourceConfigPropertiesOutput) +} + +func (o ApplicationSourceConfigPropertiesPtrOutput) ExternalUrlConfig() ApplicationExternalUrlConfigPtrOutput { + return o.ApplyT(func(v *ApplicationSourceConfigProperties) *ApplicationExternalUrlConfig { + if v == nil { + return nil + } + return &v.ExternalUrlConfig + }).(ApplicationExternalUrlConfigPtrOutput) +} + +// A label for tagging Application resources +type ApplicationTag struct { + // A key to identify the tag. + Key string `pulumi:"key"` + // Corresponding tag value for the key. + Value string `pulumi:"value"` +} + // The configuration for what files should be pulled from the source. type DataIntegrationFileConfiguration struct { // Restrictions for what files should be pulled from the source. @@ -415,11 +605,17 @@ type EventIntegrationTag struct { } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationExternalUrlConfigInput)(nil)).Elem(), ApplicationExternalUrlConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplicationSourceConfigPropertiesInput)(nil)).Elem(), ApplicationSourceConfigPropertiesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DataIntegrationFileConfigurationInput)(nil)).Elem(), DataIntegrationFileConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DataIntegrationFileConfigurationPtrInput)(nil)).Elem(), DataIntegrationFileConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DataIntegrationScheduleConfigInput)(nil)).Elem(), DataIntegrationScheduleConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DataIntegrationScheduleConfigPtrInput)(nil)).Elem(), DataIntegrationScheduleConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*EventIntegrationEventFilterInput)(nil)).Elem(), EventIntegrationEventFilterArgs{}) + pulumi.RegisterOutputType(ApplicationExternalUrlConfigOutput{}) + pulumi.RegisterOutputType(ApplicationExternalUrlConfigPtrOutput{}) + pulumi.RegisterOutputType(ApplicationSourceConfigPropertiesOutput{}) + pulumi.RegisterOutputType(ApplicationSourceConfigPropertiesPtrOutput{}) pulumi.RegisterOutputType(DataIntegrationFileConfigurationOutput{}) pulumi.RegisterOutputType(DataIntegrationFileConfigurationPtrOutput{}) pulumi.RegisterOutputType(DataIntegrationScheduleConfigOutput{}) diff --git a/sdk/go/aws/appsync/getResolver.go b/sdk/go/aws/appsync/getResolver.go index c215ca6e01..9bc03f43dd 100644 --- a/sdk/go/aws/appsync/getResolver.go +++ b/sdk/go/aws/appsync/getResolver.go @@ -41,7 +41,8 @@ type LookupResolverResult struct { // + *PIPELINE*: A PIPELINE resolver type. You can use a PIPELINE resolver to invoke a series of ``Function`` objects in a serial manner. You can use a pipeline resolver to run a GraphQL query against multiple data sources. Kind *string `pulumi:"kind"` // The maximum number of resolver request inputs that will be sent to a single LAMlong function in a ``BatchInvoke`` operation. - MaxBatchSize *int `pulumi:"maxBatchSize"` + MaxBatchSize *int `pulumi:"maxBatchSize"` + // Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value. MetricsConfig *ResolverMetricsConfig `pulumi:"metricsConfig"` // Functions linked with the pipeline resolver. PipelineConfig *ResolverPipelineConfig `pulumi:"pipelineConfig"` @@ -119,6 +120,7 @@ func (o LookupResolverResultOutput) MaxBatchSize() pulumi.IntPtrOutput { return o.ApplyT(func(v LookupResolverResult) *int { return v.MaxBatchSize }).(pulumi.IntPtrOutput) } +// Enables or disables enhanced resolver metrics for specified resolvers. Note that “MetricsConfig“ won't be used unless the “resolverLevelMetricsBehavior“ value is set to “PER_RESOLVER_METRICS“. If the “resolverLevelMetricsBehavior“ is set to “FULL_REQUEST_RESOLVER_METRICS“ instead, “MetricsConfig“ will be ignored. However, you can still set its value. func (o LookupResolverResultOutput) MetricsConfig() ResolverMetricsConfigPtrOutput { return o.ApplyT(func(v LookupResolverResult) *ResolverMetricsConfig { return v.MetricsConfig }).(ResolverMetricsConfigPtrOutput) } diff --git a/sdk/go/aws/appsync/pulumiEnums.go b/sdk/go/aws/appsync/pulumiEnums.go index 29d203f41d..3eac24f51a 100644 --- a/sdk/go/aws/appsync/pulumiEnums.go +++ b/sdk/go/aws/appsync/pulumiEnums.go @@ -10,6 +10,7 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +// Enables or disables enhanced resolver metrics for specified resolvers. Note that “MetricsConfig“ won't be used unless the “resolverLevelMetricsBehavior“ value is set to “PER_RESOLVER_METRICS“. If the “resolverLevelMetricsBehavior“ is set to “FULL_REQUEST_RESOLVER_METRICS“ instead, “MetricsConfig“ will be ignored. However, you can still set its value. type ResolverMetricsConfig string const ( diff --git a/sdk/go/aws/appsync/resolver.go b/sdk/go/aws/appsync/resolver.go index c682586c5b..55e179144b 100644 --- a/sdk/go/aws/appsync/resolver.go +++ b/sdk/go/aws/appsync/resolver.go @@ -76,7 +76,8 @@ type Resolver struct { // + *PIPELINE*: A PIPELINE resolver type. You can use a PIPELINE resolver to invoke a series of ``Function`` objects in a serial manner. You can use a pipeline resolver to run a GraphQL query against multiple data sources. Kind pulumi.StringPtrOutput `pulumi:"kind"` // The maximum number of resolver request inputs that will be sent to a single LAMlong function in a ``BatchInvoke`` operation. - MaxBatchSize pulumi.IntPtrOutput `pulumi:"maxBatchSize"` + MaxBatchSize pulumi.IntPtrOutput `pulumi:"maxBatchSize"` + // Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value. MetricsConfig ResolverMetricsConfigPtrOutput `pulumi:"metricsConfig"` // Functions linked with the pipeline resolver. PipelineConfig ResolverPipelineConfigPtrOutput `pulumi:"pipelineConfig"` @@ -170,7 +171,8 @@ type resolverArgs struct { // + *PIPELINE*: A PIPELINE resolver type. You can use a PIPELINE resolver to invoke a series of ``Function`` objects in a serial manner. You can use a pipeline resolver to run a GraphQL query against multiple data sources. Kind *string `pulumi:"kind"` // The maximum number of resolver request inputs that will be sent to a single LAMlong function in a ``BatchInvoke`` operation. - MaxBatchSize *int `pulumi:"maxBatchSize"` + MaxBatchSize *int `pulumi:"maxBatchSize"` + // Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value. MetricsConfig *ResolverMetricsConfig `pulumi:"metricsConfig"` // Functions linked with the pipeline resolver. PipelineConfig *ResolverPipelineConfig `pulumi:"pipelineConfig"` @@ -210,7 +212,8 @@ type ResolverArgs struct { // + *PIPELINE*: A PIPELINE resolver type. You can use a PIPELINE resolver to invoke a series of ``Function`` objects in a serial manner. You can use a pipeline resolver to run a GraphQL query against multiple data sources. Kind pulumi.StringPtrInput // The maximum number of resolver request inputs that will be sent to a single LAMlong function in a ``BatchInvoke`` operation. - MaxBatchSize pulumi.IntPtrInput + MaxBatchSize pulumi.IntPtrInput + // Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value. MetricsConfig ResolverMetricsConfigPtrInput // Functions linked with the pipeline resolver. PipelineConfig ResolverPipelineConfigPtrInput @@ -310,6 +313,7 @@ func (o ResolverOutput) MaxBatchSize() pulumi.IntPtrOutput { return o.ApplyT(func(v *Resolver) pulumi.IntPtrOutput { return v.MaxBatchSize }).(pulumi.IntPtrOutput) } +// Enables or disables enhanced resolver metrics for specified resolvers. Note that “MetricsConfig“ won't be used unless the “resolverLevelMetricsBehavior“ value is set to “PER_RESOLVER_METRICS“. If the “resolverLevelMetricsBehavior“ is set to “FULL_REQUEST_RESOLVER_METRICS“ instead, “MetricsConfig“ will be ignored. However, you can still set its value. func (o ResolverOutput) MetricsConfig() ResolverMetricsConfigPtrOutput { return o.ApplyT(func(v *Resolver) ResolverMetricsConfigPtrOutput { return v.MetricsConfig }).(ResolverMetricsConfigPtrOutput) } diff --git a/sdk/go/aws/aps/getScraper.go b/sdk/go/aws/aps/getScraper.go new file mode 100644 index 0000000000..42357bd3a2 --- /dev/null +++ b/sdk/go/aws/aps/getScraper.go @@ -0,0 +1,100 @@ +// 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 aps + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Resource Type definition for AWS::APS::Scraper +func LookupScraper(ctx *pulumi.Context, args *LookupScraperArgs, opts ...pulumi.InvokeOption) (*LookupScraperResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupScraperResult + err := ctx.Invoke("aws-native:aps:getScraper", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupScraperArgs struct { + // Scraper ARN. + Arn string `pulumi:"arn"` +} + +type LookupScraperResult struct { + // Scraper ARN. + Arn *string `pulumi:"arn"` + // IAM role ARN for the scraper. + RoleArn *string `pulumi:"roleArn"` + // Required to identify a specific scraper. + ScraperId *string `pulumi:"scraperId"` + // An array of key-value pairs to apply to this resource. + Tags []aws.Tag `pulumi:"tags"` +} + +func LookupScraperOutput(ctx *pulumi.Context, args LookupScraperOutputArgs, opts ...pulumi.InvokeOption) LookupScraperResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupScraperResult, error) { + args := v.(LookupScraperArgs) + r, err := LookupScraper(ctx, &args, opts...) + var s LookupScraperResult + if r != nil { + s = *r + } + return s, err + }).(LookupScraperResultOutput) +} + +type LookupScraperOutputArgs struct { + // Scraper ARN. + Arn pulumi.StringInput `pulumi:"arn"` +} + +func (LookupScraperOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupScraperArgs)(nil)).Elem() +} + +type LookupScraperResultOutput struct{ *pulumi.OutputState } + +func (LookupScraperResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupScraperResult)(nil)).Elem() +} + +func (o LookupScraperResultOutput) ToLookupScraperResultOutput() LookupScraperResultOutput { + return o +} + +func (o LookupScraperResultOutput) ToLookupScraperResultOutputWithContext(ctx context.Context) LookupScraperResultOutput { + return o +} + +// Scraper ARN. +func (o LookupScraperResultOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupScraperResult) *string { return v.Arn }).(pulumi.StringPtrOutput) +} + +// IAM role ARN for the scraper. +func (o LookupScraperResultOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupScraperResult) *string { return v.RoleArn }).(pulumi.StringPtrOutput) +} + +// Required to identify a specific scraper. +func (o LookupScraperResultOutput) ScraperId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupScraperResult) *string { return v.ScraperId }).(pulumi.StringPtrOutput) +} + +// An array of key-value pairs to apply to this resource. +func (o LookupScraperResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupScraperResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupScraperResultOutput{}) +} diff --git a/sdk/go/aws/aps/init.go b/sdk/go/aws/aps/init.go index 243d325181..74483ec31b 100644 --- a/sdk/go/aws/aps/init.go +++ b/sdk/go/aws/aps/init.go @@ -23,6 +23,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "aws-native:aps:RuleGroupsNamespace": r = &RuleGroupsNamespace{} + case "aws-native:aps:Scraper": + r = &Scraper{} case "aws-native:aps:Workspace": r = &Workspace{} default: diff --git a/sdk/go/aws/aps/pulumiTypes.go b/sdk/go/aws/aps/pulumiTypes.go index adcb64234c..eabbede283 100644 --- a/sdk/go/aws/aps/pulumiTypes.go +++ b/sdk/go/aws/aps/pulumiTypes.go @@ -21,6 +21,497 @@ type RuleGroupsNamespaceTag struct { Value string `pulumi:"value"` } +// Scraper metrics destination +type ScraperDestination struct { + // Configuration for Amazon Managed Prometheus metrics destination + AmpConfiguration *ScraperDestinationAmpConfigurationProperties `pulumi:"ampConfiguration"` +} + +// ScraperDestinationInput is an input type that accepts ScraperDestinationArgs and ScraperDestinationOutput values. +// You can construct a concrete instance of `ScraperDestinationInput` via: +// +// ScraperDestinationArgs{...} +type ScraperDestinationInput interface { + pulumi.Input + + ToScraperDestinationOutput() ScraperDestinationOutput + ToScraperDestinationOutputWithContext(context.Context) ScraperDestinationOutput +} + +// Scraper metrics destination +type ScraperDestinationArgs struct { + // Configuration for Amazon Managed Prometheus metrics destination + AmpConfiguration ScraperDestinationAmpConfigurationPropertiesPtrInput `pulumi:"ampConfiguration"` +} + +func (ScraperDestinationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ScraperDestination)(nil)).Elem() +} + +func (i ScraperDestinationArgs) ToScraperDestinationOutput() ScraperDestinationOutput { + return i.ToScraperDestinationOutputWithContext(context.Background()) +} + +func (i ScraperDestinationArgs) ToScraperDestinationOutputWithContext(ctx context.Context) ScraperDestinationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScraperDestinationOutput) +} + +// Scraper metrics destination +type ScraperDestinationOutput struct{ *pulumi.OutputState } + +func (ScraperDestinationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ScraperDestination)(nil)).Elem() +} + +func (o ScraperDestinationOutput) ToScraperDestinationOutput() ScraperDestinationOutput { + return o +} + +func (o ScraperDestinationOutput) ToScraperDestinationOutputWithContext(ctx context.Context) ScraperDestinationOutput { + return o +} + +// Configuration for Amazon Managed Prometheus metrics destination +func (o ScraperDestinationOutput) AmpConfiguration() ScraperDestinationAmpConfigurationPropertiesPtrOutput { + return o.ApplyT(func(v ScraperDestination) *ScraperDestinationAmpConfigurationProperties { return v.AmpConfiguration }).(ScraperDestinationAmpConfigurationPropertiesPtrOutput) +} + +// Configuration for Amazon Managed Prometheus metrics destination +type ScraperDestinationAmpConfigurationProperties struct { + // ARN of an Amazon Managed Prometheus workspace + WorkspaceArn string `pulumi:"workspaceArn"` +} + +// ScraperDestinationAmpConfigurationPropertiesInput is an input type that accepts ScraperDestinationAmpConfigurationPropertiesArgs and ScraperDestinationAmpConfigurationPropertiesOutput values. +// You can construct a concrete instance of `ScraperDestinationAmpConfigurationPropertiesInput` via: +// +// ScraperDestinationAmpConfigurationPropertiesArgs{...} +type ScraperDestinationAmpConfigurationPropertiesInput interface { + pulumi.Input + + ToScraperDestinationAmpConfigurationPropertiesOutput() ScraperDestinationAmpConfigurationPropertiesOutput + ToScraperDestinationAmpConfigurationPropertiesOutputWithContext(context.Context) ScraperDestinationAmpConfigurationPropertiesOutput +} + +// Configuration for Amazon Managed Prometheus metrics destination +type ScraperDestinationAmpConfigurationPropertiesArgs struct { + // ARN of an Amazon Managed Prometheus workspace + WorkspaceArn pulumi.StringInput `pulumi:"workspaceArn"` +} + +func (ScraperDestinationAmpConfigurationPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ScraperDestinationAmpConfigurationProperties)(nil)).Elem() +} + +func (i ScraperDestinationAmpConfigurationPropertiesArgs) ToScraperDestinationAmpConfigurationPropertiesOutput() ScraperDestinationAmpConfigurationPropertiesOutput { + return i.ToScraperDestinationAmpConfigurationPropertiesOutputWithContext(context.Background()) +} + +func (i ScraperDestinationAmpConfigurationPropertiesArgs) ToScraperDestinationAmpConfigurationPropertiesOutputWithContext(ctx context.Context) ScraperDestinationAmpConfigurationPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScraperDestinationAmpConfigurationPropertiesOutput) +} + +func (i ScraperDestinationAmpConfigurationPropertiesArgs) ToScraperDestinationAmpConfigurationPropertiesPtrOutput() ScraperDestinationAmpConfigurationPropertiesPtrOutput { + return i.ToScraperDestinationAmpConfigurationPropertiesPtrOutputWithContext(context.Background()) +} + +func (i ScraperDestinationAmpConfigurationPropertiesArgs) ToScraperDestinationAmpConfigurationPropertiesPtrOutputWithContext(ctx context.Context) ScraperDestinationAmpConfigurationPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScraperDestinationAmpConfigurationPropertiesOutput).ToScraperDestinationAmpConfigurationPropertiesPtrOutputWithContext(ctx) +} + +// ScraperDestinationAmpConfigurationPropertiesPtrInput is an input type that accepts ScraperDestinationAmpConfigurationPropertiesArgs, ScraperDestinationAmpConfigurationPropertiesPtr and ScraperDestinationAmpConfigurationPropertiesPtrOutput values. +// You can construct a concrete instance of `ScraperDestinationAmpConfigurationPropertiesPtrInput` via: +// +// ScraperDestinationAmpConfigurationPropertiesArgs{...} +// +// or: +// +// nil +type ScraperDestinationAmpConfigurationPropertiesPtrInput interface { + pulumi.Input + + ToScraperDestinationAmpConfigurationPropertiesPtrOutput() ScraperDestinationAmpConfigurationPropertiesPtrOutput + ToScraperDestinationAmpConfigurationPropertiesPtrOutputWithContext(context.Context) ScraperDestinationAmpConfigurationPropertiesPtrOutput +} + +type scraperDestinationAmpConfigurationPropertiesPtrType ScraperDestinationAmpConfigurationPropertiesArgs + +func ScraperDestinationAmpConfigurationPropertiesPtr(v *ScraperDestinationAmpConfigurationPropertiesArgs) ScraperDestinationAmpConfigurationPropertiesPtrInput { + return (*scraperDestinationAmpConfigurationPropertiesPtrType)(v) +} + +func (*scraperDestinationAmpConfigurationPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ScraperDestinationAmpConfigurationProperties)(nil)).Elem() +} + +func (i *scraperDestinationAmpConfigurationPropertiesPtrType) ToScraperDestinationAmpConfigurationPropertiesPtrOutput() ScraperDestinationAmpConfigurationPropertiesPtrOutput { + return i.ToScraperDestinationAmpConfigurationPropertiesPtrOutputWithContext(context.Background()) +} + +func (i *scraperDestinationAmpConfigurationPropertiesPtrType) ToScraperDestinationAmpConfigurationPropertiesPtrOutputWithContext(ctx context.Context) ScraperDestinationAmpConfigurationPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScraperDestinationAmpConfigurationPropertiesPtrOutput) +} + +// Configuration for Amazon Managed Prometheus metrics destination +type ScraperDestinationAmpConfigurationPropertiesOutput struct{ *pulumi.OutputState } + +func (ScraperDestinationAmpConfigurationPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ScraperDestinationAmpConfigurationProperties)(nil)).Elem() +} + +func (o ScraperDestinationAmpConfigurationPropertiesOutput) ToScraperDestinationAmpConfigurationPropertiesOutput() ScraperDestinationAmpConfigurationPropertiesOutput { + return o +} + +func (o ScraperDestinationAmpConfigurationPropertiesOutput) ToScraperDestinationAmpConfigurationPropertiesOutputWithContext(ctx context.Context) ScraperDestinationAmpConfigurationPropertiesOutput { + return o +} + +func (o ScraperDestinationAmpConfigurationPropertiesOutput) ToScraperDestinationAmpConfigurationPropertiesPtrOutput() ScraperDestinationAmpConfigurationPropertiesPtrOutput { + return o.ToScraperDestinationAmpConfigurationPropertiesPtrOutputWithContext(context.Background()) +} + +func (o ScraperDestinationAmpConfigurationPropertiesOutput) ToScraperDestinationAmpConfigurationPropertiesPtrOutputWithContext(ctx context.Context) ScraperDestinationAmpConfigurationPropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ScraperDestinationAmpConfigurationProperties) *ScraperDestinationAmpConfigurationProperties { + return &v + }).(ScraperDestinationAmpConfigurationPropertiesPtrOutput) +} + +// ARN of an Amazon Managed Prometheus workspace +func (o ScraperDestinationAmpConfigurationPropertiesOutput) WorkspaceArn() pulumi.StringOutput { + return o.ApplyT(func(v ScraperDestinationAmpConfigurationProperties) string { return v.WorkspaceArn }).(pulumi.StringOutput) +} + +type ScraperDestinationAmpConfigurationPropertiesPtrOutput struct{ *pulumi.OutputState } + +func (ScraperDestinationAmpConfigurationPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ScraperDestinationAmpConfigurationProperties)(nil)).Elem() +} + +func (o ScraperDestinationAmpConfigurationPropertiesPtrOutput) ToScraperDestinationAmpConfigurationPropertiesPtrOutput() ScraperDestinationAmpConfigurationPropertiesPtrOutput { + return o +} + +func (o ScraperDestinationAmpConfigurationPropertiesPtrOutput) ToScraperDestinationAmpConfigurationPropertiesPtrOutputWithContext(ctx context.Context) ScraperDestinationAmpConfigurationPropertiesPtrOutput { + return o +} + +func (o ScraperDestinationAmpConfigurationPropertiesPtrOutput) Elem() ScraperDestinationAmpConfigurationPropertiesOutput { + return o.ApplyT(func(v *ScraperDestinationAmpConfigurationProperties) ScraperDestinationAmpConfigurationProperties { + if v != nil { + return *v + } + var ret ScraperDestinationAmpConfigurationProperties + return ret + }).(ScraperDestinationAmpConfigurationPropertiesOutput) +} + +// ARN of an Amazon Managed Prometheus workspace +func (o ScraperDestinationAmpConfigurationPropertiesPtrOutput) WorkspaceArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ScraperDestinationAmpConfigurationProperties) *string { + if v == nil { + return nil + } + return &v.WorkspaceArn + }).(pulumi.StringPtrOutput) +} + +// Scraper configuration +type ScraperScrapeConfiguration struct { + // Prometheus compatible scrape configuration in base64 encoded blob format + ConfigurationBlob *string `pulumi:"configurationBlob"` +} + +// ScraperScrapeConfigurationInput is an input type that accepts ScraperScrapeConfigurationArgs and ScraperScrapeConfigurationOutput values. +// You can construct a concrete instance of `ScraperScrapeConfigurationInput` via: +// +// ScraperScrapeConfigurationArgs{...} +type ScraperScrapeConfigurationInput interface { + pulumi.Input + + ToScraperScrapeConfigurationOutput() ScraperScrapeConfigurationOutput + ToScraperScrapeConfigurationOutputWithContext(context.Context) ScraperScrapeConfigurationOutput +} + +// Scraper configuration +type ScraperScrapeConfigurationArgs struct { + // Prometheus compatible scrape configuration in base64 encoded blob format + ConfigurationBlob pulumi.StringPtrInput `pulumi:"configurationBlob"` +} + +func (ScraperScrapeConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ScraperScrapeConfiguration)(nil)).Elem() +} + +func (i ScraperScrapeConfigurationArgs) ToScraperScrapeConfigurationOutput() ScraperScrapeConfigurationOutput { + return i.ToScraperScrapeConfigurationOutputWithContext(context.Background()) +} + +func (i ScraperScrapeConfigurationArgs) ToScraperScrapeConfigurationOutputWithContext(ctx context.Context) ScraperScrapeConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScraperScrapeConfigurationOutput) +} + +// Scraper configuration +type ScraperScrapeConfigurationOutput struct{ *pulumi.OutputState } + +func (ScraperScrapeConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ScraperScrapeConfiguration)(nil)).Elem() +} + +func (o ScraperScrapeConfigurationOutput) ToScraperScrapeConfigurationOutput() ScraperScrapeConfigurationOutput { + return o +} + +func (o ScraperScrapeConfigurationOutput) ToScraperScrapeConfigurationOutputWithContext(ctx context.Context) ScraperScrapeConfigurationOutput { + return o +} + +// Prometheus compatible scrape configuration in base64 encoded blob format +func (o ScraperScrapeConfigurationOutput) ConfigurationBlob() pulumi.StringPtrOutput { + return o.ApplyT(func(v ScraperScrapeConfiguration) *string { return v.ConfigurationBlob }).(pulumi.StringPtrOutput) +} + +// Scraper metrics source +type ScraperSource struct { + // Configuration for EKS metrics source + EksConfiguration *ScraperSourceEksConfigurationProperties `pulumi:"eksConfiguration"` +} + +// ScraperSourceInput is an input type that accepts ScraperSourceArgs and ScraperSourceOutput values. +// You can construct a concrete instance of `ScraperSourceInput` via: +// +// ScraperSourceArgs{...} +type ScraperSourceInput interface { + pulumi.Input + + ToScraperSourceOutput() ScraperSourceOutput + ToScraperSourceOutputWithContext(context.Context) ScraperSourceOutput +} + +// Scraper metrics source +type ScraperSourceArgs struct { + // Configuration for EKS metrics source + EksConfiguration ScraperSourceEksConfigurationPropertiesPtrInput `pulumi:"eksConfiguration"` +} + +func (ScraperSourceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ScraperSource)(nil)).Elem() +} + +func (i ScraperSourceArgs) ToScraperSourceOutput() ScraperSourceOutput { + return i.ToScraperSourceOutputWithContext(context.Background()) +} + +func (i ScraperSourceArgs) ToScraperSourceOutputWithContext(ctx context.Context) ScraperSourceOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScraperSourceOutput) +} + +// Scraper metrics source +type ScraperSourceOutput struct{ *pulumi.OutputState } + +func (ScraperSourceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ScraperSource)(nil)).Elem() +} + +func (o ScraperSourceOutput) ToScraperSourceOutput() ScraperSourceOutput { + return o +} + +func (o ScraperSourceOutput) ToScraperSourceOutputWithContext(ctx context.Context) ScraperSourceOutput { + return o +} + +// Configuration for EKS metrics source +func (o ScraperSourceOutput) EksConfiguration() ScraperSourceEksConfigurationPropertiesPtrOutput { + return o.ApplyT(func(v ScraperSource) *ScraperSourceEksConfigurationProperties { return v.EksConfiguration }).(ScraperSourceEksConfigurationPropertiesPtrOutput) +} + +// Configuration for EKS metrics source +type ScraperSourceEksConfigurationProperties struct { + // ARN of an EKS cluster + ClusterArn string `pulumi:"clusterArn"` + // List of security group IDs + SecurityGroupIds []string `pulumi:"securityGroupIds"` + // List of subnet IDs + SubnetIds []string `pulumi:"subnetIds"` +} + +// ScraperSourceEksConfigurationPropertiesInput is an input type that accepts ScraperSourceEksConfigurationPropertiesArgs and ScraperSourceEksConfigurationPropertiesOutput values. +// You can construct a concrete instance of `ScraperSourceEksConfigurationPropertiesInput` via: +// +// ScraperSourceEksConfigurationPropertiesArgs{...} +type ScraperSourceEksConfigurationPropertiesInput interface { + pulumi.Input + + ToScraperSourceEksConfigurationPropertiesOutput() ScraperSourceEksConfigurationPropertiesOutput + ToScraperSourceEksConfigurationPropertiesOutputWithContext(context.Context) ScraperSourceEksConfigurationPropertiesOutput +} + +// Configuration for EKS metrics source +type ScraperSourceEksConfigurationPropertiesArgs struct { + // ARN of an EKS cluster + ClusterArn pulumi.StringInput `pulumi:"clusterArn"` + // List of security group IDs + SecurityGroupIds pulumi.StringArrayInput `pulumi:"securityGroupIds"` + // List of subnet IDs + SubnetIds pulumi.StringArrayInput `pulumi:"subnetIds"` +} + +func (ScraperSourceEksConfigurationPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ScraperSourceEksConfigurationProperties)(nil)).Elem() +} + +func (i ScraperSourceEksConfigurationPropertiesArgs) ToScraperSourceEksConfigurationPropertiesOutput() ScraperSourceEksConfigurationPropertiesOutput { + return i.ToScraperSourceEksConfigurationPropertiesOutputWithContext(context.Background()) +} + +func (i ScraperSourceEksConfigurationPropertiesArgs) ToScraperSourceEksConfigurationPropertiesOutputWithContext(ctx context.Context) ScraperSourceEksConfigurationPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScraperSourceEksConfigurationPropertiesOutput) +} + +func (i ScraperSourceEksConfigurationPropertiesArgs) ToScraperSourceEksConfigurationPropertiesPtrOutput() ScraperSourceEksConfigurationPropertiesPtrOutput { + return i.ToScraperSourceEksConfigurationPropertiesPtrOutputWithContext(context.Background()) +} + +func (i ScraperSourceEksConfigurationPropertiesArgs) ToScraperSourceEksConfigurationPropertiesPtrOutputWithContext(ctx context.Context) ScraperSourceEksConfigurationPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScraperSourceEksConfigurationPropertiesOutput).ToScraperSourceEksConfigurationPropertiesPtrOutputWithContext(ctx) +} + +// ScraperSourceEksConfigurationPropertiesPtrInput is an input type that accepts ScraperSourceEksConfigurationPropertiesArgs, ScraperSourceEksConfigurationPropertiesPtr and ScraperSourceEksConfigurationPropertiesPtrOutput values. +// You can construct a concrete instance of `ScraperSourceEksConfigurationPropertiesPtrInput` via: +// +// ScraperSourceEksConfigurationPropertiesArgs{...} +// +// or: +// +// nil +type ScraperSourceEksConfigurationPropertiesPtrInput interface { + pulumi.Input + + ToScraperSourceEksConfigurationPropertiesPtrOutput() ScraperSourceEksConfigurationPropertiesPtrOutput + ToScraperSourceEksConfigurationPropertiesPtrOutputWithContext(context.Context) ScraperSourceEksConfigurationPropertiesPtrOutput +} + +type scraperSourceEksConfigurationPropertiesPtrType ScraperSourceEksConfigurationPropertiesArgs + +func ScraperSourceEksConfigurationPropertiesPtr(v *ScraperSourceEksConfigurationPropertiesArgs) ScraperSourceEksConfigurationPropertiesPtrInput { + return (*scraperSourceEksConfigurationPropertiesPtrType)(v) +} + +func (*scraperSourceEksConfigurationPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ScraperSourceEksConfigurationProperties)(nil)).Elem() +} + +func (i *scraperSourceEksConfigurationPropertiesPtrType) ToScraperSourceEksConfigurationPropertiesPtrOutput() ScraperSourceEksConfigurationPropertiesPtrOutput { + return i.ToScraperSourceEksConfigurationPropertiesPtrOutputWithContext(context.Background()) +} + +func (i *scraperSourceEksConfigurationPropertiesPtrType) ToScraperSourceEksConfigurationPropertiesPtrOutputWithContext(ctx context.Context) ScraperSourceEksConfigurationPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScraperSourceEksConfigurationPropertiesPtrOutput) +} + +// Configuration for EKS metrics source +type ScraperSourceEksConfigurationPropertiesOutput struct{ *pulumi.OutputState } + +func (ScraperSourceEksConfigurationPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ScraperSourceEksConfigurationProperties)(nil)).Elem() +} + +func (o ScraperSourceEksConfigurationPropertiesOutput) ToScraperSourceEksConfigurationPropertiesOutput() ScraperSourceEksConfigurationPropertiesOutput { + return o +} + +func (o ScraperSourceEksConfigurationPropertiesOutput) ToScraperSourceEksConfigurationPropertiesOutputWithContext(ctx context.Context) ScraperSourceEksConfigurationPropertiesOutput { + return o +} + +func (o ScraperSourceEksConfigurationPropertiesOutput) ToScraperSourceEksConfigurationPropertiesPtrOutput() ScraperSourceEksConfigurationPropertiesPtrOutput { + return o.ToScraperSourceEksConfigurationPropertiesPtrOutputWithContext(context.Background()) +} + +func (o ScraperSourceEksConfigurationPropertiesOutput) ToScraperSourceEksConfigurationPropertiesPtrOutputWithContext(ctx context.Context) ScraperSourceEksConfigurationPropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ScraperSourceEksConfigurationProperties) *ScraperSourceEksConfigurationProperties { + return &v + }).(ScraperSourceEksConfigurationPropertiesPtrOutput) +} + +// ARN of an EKS cluster +func (o ScraperSourceEksConfigurationPropertiesOutput) ClusterArn() pulumi.StringOutput { + return o.ApplyT(func(v ScraperSourceEksConfigurationProperties) string { return v.ClusterArn }).(pulumi.StringOutput) +} + +// List of security group IDs +func (o ScraperSourceEksConfigurationPropertiesOutput) SecurityGroupIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v ScraperSourceEksConfigurationProperties) []string { return v.SecurityGroupIds }).(pulumi.StringArrayOutput) +} + +// List of subnet IDs +func (o ScraperSourceEksConfigurationPropertiesOutput) SubnetIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v ScraperSourceEksConfigurationProperties) []string { return v.SubnetIds }).(pulumi.StringArrayOutput) +} + +type ScraperSourceEksConfigurationPropertiesPtrOutput struct{ *pulumi.OutputState } + +func (ScraperSourceEksConfigurationPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ScraperSourceEksConfigurationProperties)(nil)).Elem() +} + +func (o ScraperSourceEksConfigurationPropertiesPtrOutput) ToScraperSourceEksConfigurationPropertiesPtrOutput() ScraperSourceEksConfigurationPropertiesPtrOutput { + return o +} + +func (o ScraperSourceEksConfigurationPropertiesPtrOutput) ToScraperSourceEksConfigurationPropertiesPtrOutputWithContext(ctx context.Context) ScraperSourceEksConfigurationPropertiesPtrOutput { + return o +} + +func (o ScraperSourceEksConfigurationPropertiesPtrOutput) Elem() ScraperSourceEksConfigurationPropertiesOutput { + return o.ApplyT(func(v *ScraperSourceEksConfigurationProperties) ScraperSourceEksConfigurationProperties { + if v != nil { + return *v + } + var ret ScraperSourceEksConfigurationProperties + return ret + }).(ScraperSourceEksConfigurationPropertiesOutput) +} + +// ARN of an EKS cluster +func (o ScraperSourceEksConfigurationPropertiesPtrOutput) ClusterArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ScraperSourceEksConfigurationProperties) *string { + if v == nil { + return nil + } + return &v.ClusterArn + }).(pulumi.StringPtrOutput) +} + +// List of security group IDs +func (o ScraperSourceEksConfigurationPropertiesPtrOutput) SecurityGroupIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ScraperSourceEksConfigurationProperties) []string { + if v == nil { + return nil + } + return v.SecurityGroupIds + }).(pulumi.StringArrayOutput) +} + +// List of subnet IDs +func (o ScraperSourceEksConfigurationPropertiesPtrOutput) SubnetIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ScraperSourceEksConfigurationProperties) []string { + if v == nil { + return nil + } + return v.SubnetIds + }).(pulumi.StringArrayOutput) +} + +// A key-value pair to associate with a resource. +type ScraperTag 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"` +} + // Logging configuration type WorkspaceLoggingConfiguration struct { // CloudWatch log group ARN @@ -170,8 +661,22 @@ type WorkspaceTag struct { } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ScraperDestinationInput)(nil)).Elem(), ScraperDestinationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScraperDestinationAmpConfigurationPropertiesInput)(nil)).Elem(), ScraperDestinationAmpConfigurationPropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScraperDestinationAmpConfigurationPropertiesPtrInput)(nil)).Elem(), ScraperDestinationAmpConfigurationPropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScraperScrapeConfigurationInput)(nil)).Elem(), ScraperScrapeConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScraperSourceInput)(nil)).Elem(), ScraperSourceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScraperSourceEksConfigurationPropertiesInput)(nil)).Elem(), ScraperSourceEksConfigurationPropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScraperSourceEksConfigurationPropertiesPtrInput)(nil)).Elem(), ScraperSourceEksConfigurationPropertiesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*WorkspaceLoggingConfigurationInput)(nil)).Elem(), WorkspaceLoggingConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*WorkspaceLoggingConfigurationPtrInput)(nil)).Elem(), WorkspaceLoggingConfigurationArgs{}) + pulumi.RegisterOutputType(ScraperDestinationOutput{}) + pulumi.RegisterOutputType(ScraperDestinationAmpConfigurationPropertiesOutput{}) + pulumi.RegisterOutputType(ScraperDestinationAmpConfigurationPropertiesPtrOutput{}) + pulumi.RegisterOutputType(ScraperScrapeConfigurationOutput{}) + pulumi.RegisterOutputType(ScraperSourceOutput{}) + pulumi.RegisterOutputType(ScraperSourceEksConfigurationPropertiesOutput{}) + pulumi.RegisterOutputType(ScraperSourceEksConfigurationPropertiesPtrOutput{}) pulumi.RegisterOutputType(WorkspaceLoggingConfigurationOutput{}) pulumi.RegisterOutputType(WorkspaceLoggingConfigurationPtrOutput{}) } diff --git a/sdk/go/aws/aps/scraper.go b/sdk/go/aws/aps/scraper.go new file mode 100644 index 0000000000..d057b4e970 --- /dev/null +++ b/sdk/go/aws/aps/scraper.go @@ -0,0 +1,188 @@ +// 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 aps + +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" +) + +// Resource Type definition for AWS::APS::Scraper +type Scraper struct { + pulumi.CustomResourceState + + // Scraper alias. + Alias pulumi.StringPtrOutput `pulumi:"alias"` + // Scraper ARN. + Arn pulumi.StringOutput `pulumi:"arn"` + Destination ScraperDestinationOutput `pulumi:"destination"` + // IAM role ARN for the scraper. + RoleArn pulumi.StringOutput `pulumi:"roleArn"` + ScrapeConfiguration ScraperScrapeConfigurationOutput `pulumi:"scrapeConfiguration"` + // Required to identify a specific scraper. + ScraperId pulumi.StringOutput `pulumi:"scraperId"` + Source ScraperSourceOutput `pulumi:"source"` + // An array of key-value pairs to apply to this resource. + Tags aws.TagArrayOutput `pulumi:"tags"` +} + +// NewScraper registers a new resource with the given unique name, arguments, and options. +func NewScraper(ctx *pulumi.Context, + name string, args *ScraperArgs, opts ...pulumi.ResourceOption) (*Scraper, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Destination == nil { + return nil, errors.New("invalid value for required argument 'Destination'") + } + if args.ScrapeConfiguration == nil { + return nil, errors.New("invalid value for required argument 'ScrapeConfiguration'") + } + if args.Source == nil { + return nil, errors.New("invalid value for required argument 'Source'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "alias", + "destination", + "scrapeConfiguration", + "source", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource Scraper + err := ctx.RegisterResource("aws-native:aps:Scraper", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetScraper gets an existing Scraper 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 GetScraper(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ScraperState, opts ...pulumi.ResourceOption) (*Scraper, error) { + var resource Scraper + err := ctx.ReadResource("aws-native:aps:Scraper", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Scraper resources. +type scraperState struct { +} + +type ScraperState struct { +} + +func (ScraperState) ElementType() reflect.Type { + return reflect.TypeOf((*scraperState)(nil)).Elem() +} + +type scraperArgs struct { + // Scraper alias. + Alias *string `pulumi:"alias"` + Destination ScraperDestination `pulumi:"destination"` + ScrapeConfiguration ScraperScrapeConfiguration `pulumi:"scrapeConfiguration"` + Source ScraperSource `pulumi:"source"` + // An array of key-value pairs to apply to this resource. + Tags []aws.Tag `pulumi:"tags"` +} + +// The set of arguments for constructing a Scraper resource. +type ScraperArgs struct { + // Scraper alias. + Alias pulumi.StringPtrInput + Destination ScraperDestinationInput + ScrapeConfiguration ScraperScrapeConfigurationInput + Source ScraperSourceInput + // An array of key-value pairs to apply to this resource. + Tags aws.TagArrayInput +} + +func (ScraperArgs) ElementType() reflect.Type { + return reflect.TypeOf((*scraperArgs)(nil)).Elem() +} + +type ScraperInput interface { + pulumi.Input + + ToScraperOutput() ScraperOutput + ToScraperOutputWithContext(ctx context.Context) ScraperOutput +} + +func (*Scraper) ElementType() reflect.Type { + return reflect.TypeOf((**Scraper)(nil)).Elem() +} + +func (i *Scraper) ToScraperOutput() ScraperOutput { + return i.ToScraperOutputWithContext(context.Background()) +} + +func (i *Scraper) ToScraperOutputWithContext(ctx context.Context) ScraperOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScraperOutput) +} + +type ScraperOutput struct{ *pulumi.OutputState } + +func (ScraperOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Scraper)(nil)).Elem() +} + +func (o ScraperOutput) ToScraperOutput() ScraperOutput { + return o +} + +func (o ScraperOutput) ToScraperOutputWithContext(ctx context.Context) ScraperOutput { + return o +} + +// Scraper alias. +func (o ScraperOutput) Alias() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Scraper) pulumi.StringPtrOutput { return v.Alias }).(pulumi.StringPtrOutput) +} + +// Scraper ARN. +func (o ScraperOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *Scraper) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +func (o ScraperOutput) Destination() ScraperDestinationOutput { + return o.ApplyT(func(v *Scraper) ScraperDestinationOutput { return v.Destination }).(ScraperDestinationOutput) +} + +// IAM role ARN for the scraper. +func (o ScraperOutput) RoleArn() pulumi.StringOutput { + return o.ApplyT(func(v *Scraper) pulumi.StringOutput { return v.RoleArn }).(pulumi.StringOutput) +} + +func (o ScraperOutput) ScrapeConfiguration() ScraperScrapeConfigurationOutput { + return o.ApplyT(func(v *Scraper) ScraperScrapeConfigurationOutput { return v.ScrapeConfiguration }).(ScraperScrapeConfigurationOutput) +} + +// Required to identify a specific scraper. +func (o ScraperOutput) ScraperId() pulumi.StringOutput { + return o.ApplyT(func(v *Scraper) pulumi.StringOutput { return v.ScraperId }).(pulumi.StringOutput) +} + +func (o ScraperOutput) Source() ScraperSourceOutput { + return o.ApplyT(func(v *Scraper) ScraperSourceOutput { return v.Source }).(ScraperSourceOutput) +} + +// An array of key-value pairs to apply to this resource. +func (o ScraperOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v *Scraper) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ScraperInput)(nil)).Elem(), &Scraper{}) + pulumi.RegisterOutputType(ScraperOutput{}) +} diff --git a/sdk/go/aws/bedrock/agent.go b/sdk/go/aws/bedrock/agent.go new file mode 100644 index 0000000000..9541c1a3a4 --- /dev/null +++ b/sdk/go/aws/bedrock/agent.go @@ -0,0 +1,302 @@ +// 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 bedrock + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Definition of AWS::Bedrock::Agent Resource Type +type Agent struct { + pulumi.CustomResourceState + + // List of ActionGroups + ActionGroups AgentActionGroupArrayOutput `pulumi:"actionGroups"` + // Arn representation of the Agent. + AgentArn pulumi.StringOutput `pulumi:"agentArn"` + // Identifier for a resource. + AgentId pulumi.StringOutput `pulumi:"agentId"` + // Name for a resource. + AgentName pulumi.StringOutput `pulumi:"agentName"` + // ARN of a IAM role. + AgentResourceRoleArn pulumi.StringPtrOutput `pulumi:"agentResourceRoleArn"` + AgentStatus AgentStatusOutput `pulumi:"agentStatus"` + // Draft Agent Version. + AgentVersion pulumi.StringOutput `pulumi:"agentVersion"` + // Specifies whether to automatically prepare after creating or updating the agent. + AutoPrepare pulumi.BoolPtrOutput `pulumi:"autoPrepare"` + // Time Stamp. + CreatedAt pulumi.StringOutput `pulumi:"createdAt"` + // A KMS key ARN + CustomerEncryptionKeyArn pulumi.StringPtrOutput `pulumi:"customerEncryptionKeyArn"` + // Description of the Resource. + Description pulumi.StringPtrOutput `pulumi:"description"` + // Failure Reasons for Error. + FailureReasons pulumi.StringArrayOutput `pulumi:"failureReasons"` + // ARN or name of a Bedrock model. + FoundationModel pulumi.StringPtrOutput `pulumi:"foundationModel"` + // Max Session Time. + IdleSessionTtlInSeconds pulumi.Float64PtrOutput `pulumi:"idleSessionTtlInSeconds"` + // Instruction for the agent. + Instruction pulumi.StringPtrOutput `pulumi:"instruction"` + // List of Agent Knowledge Bases + KnowledgeBases AgentKnowledgeBaseArrayOutput `pulumi:"knowledgeBases"` + // Time Stamp. + PreparedAt pulumi.StringOutput `pulumi:"preparedAt"` + PromptOverrideConfiguration AgentPromptOverrideConfigurationPtrOutput `pulumi:"promptOverrideConfiguration"` + // The recommended actions users can take to resolve an error in failureReasons. + RecommendedActions pulumi.StringArrayOutput `pulumi:"recommendedActions"` + // Specifies whether to allow deleting agent while it is in use. + SkipResourceInUseCheckOnDelete pulumi.BoolPtrOutput `pulumi:"skipResourceInUseCheckOnDelete"` + Tags pulumi.StringMapOutput `pulumi:"tags"` + // Time Stamp. + UpdatedAt pulumi.StringOutput `pulumi:"updatedAt"` +} + +// NewAgent registers a new resource with the given unique name, arguments, and options. +func NewAgent(ctx *pulumi.Context, + name string, args *AgentArgs, opts ...pulumi.ResourceOption) (*Agent, error) { + if args == nil { + args = &AgentArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource Agent + err := ctx.RegisterResource("aws-native:bedrock:Agent", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAgent gets an existing Agent 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 GetAgent(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AgentState, opts ...pulumi.ResourceOption) (*Agent, error) { + var resource Agent + err := ctx.ReadResource("aws-native:bedrock:Agent", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Agent resources. +type agentState struct { +} + +type AgentState struct { +} + +func (AgentState) ElementType() reflect.Type { + return reflect.TypeOf((*agentState)(nil)).Elem() +} + +type agentArgs struct { + // List of ActionGroups + ActionGroups []AgentActionGroup `pulumi:"actionGroups"` + // Name for a resource. + AgentName *string `pulumi:"agentName"` + // ARN of a IAM role. + AgentResourceRoleArn *string `pulumi:"agentResourceRoleArn"` + // Specifies whether to automatically prepare after creating or updating the agent. + AutoPrepare *bool `pulumi:"autoPrepare"` + // A KMS key ARN + CustomerEncryptionKeyArn *string `pulumi:"customerEncryptionKeyArn"` + // Description of the Resource. + Description *string `pulumi:"description"` + // ARN or name of a Bedrock model. + FoundationModel *string `pulumi:"foundationModel"` + // Max Session Time. + IdleSessionTtlInSeconds *float64 `pulumi:"idleSessionTtlInSeconds"` + // Instruction for the agent. + Instruction *string `pulumi:"instruction"` + // List of Agent Knowledge Bases + KnowledgeBases []AgentKnowledgeBase `pulumi:"knowledgeBases"` + PromptOverrideConfiguration *AgentPromptOverrideConfiguration `pulumi:"promptOverrideConfiguration"` + // Specifies whether to allow deleting agent while it is in use. + SkipResourceInUseCheckOnDelete *bool `pulumi:"skipResourceInUseCheckOnDelete"` + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a Agent resource. +type AgentArgs struct { + // List of ActionGroups + ActionGroups AgentActionGroupArrayInput + // Name for a resource. + AgentName pulumi.StringPtrInput + // ARN of a IAM role. + AgentResourceRoleArn pulumi.StringPtrInput + // Specifies whether to automatically prepare after creating or updating the agent. + AutoPrepare pulumi.BoolPtrInput + // A KMS key ARN + CustomerEncryptionKeyArn pulumi.StringPtrInput + // Description of the Resource. + Description pulumi.StringPtrInput + // ARN or name of a Bedrock model. + FoundationModel pulumi.StringPtrInput + // Max Session Time. + IdleSessionTtlInSeconds pulumi.Float64PtrInput + // Instruction for the agent. + Instruction pulumi.StringPtrInput + // List of Agent Knowledge Bases + KnowledgeBases AgentKnowledgeBaseArrayInput + PromptOverrideConfiguration AgentPromptOverrideConfigurationPtrInput + // Specifies whether to allow deleting agent while it is in use. + SkipResourceInUseCheckOnDelete pulumi.BoolPtrInput + Tags pulumi.StringMapInput +} + +func (AgentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*agentArgs)(nil)).Elem() +} + +type AgentInput interface { + pulumi.Input + + ToAgentOutput() AgentOutput + ToAgentOutputWithContext(ctx context.Context) AgentOutput +} + +func (*Agent) ElementType() reflect.Type { + return reflect.TypeOf((**Agent)(nil)).Elem() +} + +func (i *Agent) ToAgentOutput() AgentOutput { + return i.ToAgentOutputWithContext(context.Background()) +} + +func (i *Agent) ToAgentOutputWithContext(ctx context.Context) AgentOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentOutput) +} + +type AgentOutput struct{ *pulumi.OutputState } + +func (AgentOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Agent)(nil)).Elem() +} + +func (o AgentOutput) ToAgentOutput() AgentOutput { + return o +} + +func (o AgentOutput) ToAgentOutputWithContext(ctx context.Context) AgentOutput { + return o +} + +// List of ActionGroups +func (o AgentOutput) ActionGroups() AgentActionGroupArrayOutput { + return o.ApplyT(func(v *Agent) AgentActionGroupArrayOutput { return v.ActionGroups }).(AgentActionGroupArrayOutput) +} + +// Arn representation of the Agent. +func (o AgentOutput) AgentArn() pulumi.StringOutput { + return o.ApplyT(func(v *Agent) pulumi.StringOutput { return v.AgentArn }).(pulumi.StringOutput) +} + +// Identifier for a resource. +func (o AgentOutput) AgentId() pulumi.StringOutput { + return o.ApplyT(func(v *Agent) pulumi.StringOutput { return v.AgentId }).(pulumi.StringOutput) +} + +// Name for a resource. +func (o AgentOutput) AgentName() pulumi.StringOutput { + return o.ApplyT(func(v *Agent) pulumi.StringOutput { return v.AgentName }).(pulumi.StringOutput) +} + +// ARN of a IAM role. +func (o AgentOutput) AgentResourceRoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Agent) pulumi.StringPtrOutput { return v.AgentResourceRoleArn }).(pulumi.StringPtrOutput) +} + +func (o AgentOutput) AgentStatus() AgentStatusOutput { + return o.ApplyT(func(v *Agent) AgentStatusOutput { return v.AgentStatus }).(AgentStatusOutput) +} + +// Draft Agent Version. +func (o AgentOutput) AgentVersion() pulumi.StringOutput { + return o.ApplyT(func(v *Agent) pulumi.StringOutput { return v.AgentVersion }).(pulumi.StringOutput) +} + +// Specifies whether to automatically prepare after creating or updating the agent. +func (o AgentOutput) AutoPrepare() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Agent) pulumi.BoolPtrOutput { return v.AutoPrepare }).(pulumi.BoolPtrOutput) +} + +// Time Stamp. +func (o AgentOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *Agent) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) +} + +// A KMS key ARN +func (o AgentOutput) CustomerEncryptionKeyArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Agent) pulumi.StringPtrOutput { return v.CustomerEncryptionKeyArn }).(pulumi.StringPtrOutput) +} + +// Description of the Resource. +func (o AgentOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Agent) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// Failure Reasons for Error. +func (o AgentOutput) FailureReasons() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Agent) pulumi.StringArrayOutput { return v.FailureReasons }).(pulumi.StringArrayOutput) +} + +// ARN or name of a Bedrock model. +func (o AgentOutput) FoundationModel() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Agent) pulumi.StringPtrOutput { return v.FoundationModel }).(pulumi.StringPtrOutput) +} + +// Max Session Time. +func (o AgentOutput) IdleSessionTtlInSeconds() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *Agent) pulumi.Float64PtrOutput { return v.IdleSessionTtlInSeconds }).(pulumi.Float64PtrOutput) +} + +// Instruction for the agent. +func (o AgentOutput) Instruction() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Agent) pulumi.StringPtrOutput { return v.Instruction }).(pulumi.StringPtrOutput) +} + +// List of Agent Knowledge Bases +func (o AgentOutput) KnowledgeBases() AgentKnowledgeBaseArrayOutput { + return o.ApplyT(func(v *Agent) AgentKnowledgeBaseArrayOutput { return v.KnowledgeBases }).(AgentKnowledgeBaseArrayOutput) +} + +// Time Stamp. +func (o AgentOutput) PreparedAt() pulumi.StringOutput { + return o.ApplyT(func(v *Agent) pulumi.StringOutput { return v.PreparedAt }).(pulumi.StringOutput) +} + +func (o AgentOutput) PromptOverrideConfiguration() AgentPromptOverrideConfigurationPtrOutput { + return o.ApplyT(func(v *Agent) AgentPromptOverrideConfigurationPtrOutput { return v.PromptOverrideConfiguration }).(AgentPromptOverrideConfigurationPtrOutput) +} + +// The recommended actions users can take to resolve an error in failureReasons. +func (o AgentOutput) RecommendedActions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *Agent) pulumi.StringArrayOutput { return v.RecommendedActions }).(pulumi.StringArrayOutput) +} + +// Specifies whether to allow deleting agent while it is in use. +func (o AgentOutput) SkipResourceInUseCheckOnDelete() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Agent) pulumi.BoolPtrOutput { return v.SkipResourceInUseCheckOnDelete }).(pulumi.BoolPtrOutput) +} + +func (o AgentOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *Agent) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// Time Stamp. +func (o AgentOutput) UpdatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *Agent) pulumi.StringOutput { return v.UpdatedAt }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AgentInput)(nil)).Elem(), &Agent{}) + pulumi.RegisterOutputType(AgentOutput{}) +} diff --git a/sdk/go/aws/bedrock/agentAlias.go b/sdk/go/aws/bedrock/agentAlias.go new file mode 100644 index 0000000000..19cf29149a --- /dev/null +++ b/sdk/go/aws/bedrock/agentAlias.go @@ -0,0 +1,205 @@ +// 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 bedrock + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Definition of AWS::Bedrock::AgentAlias Resource Type +type AgentAlias struct { + pulumi.CustomResourceState + + // Arn representation of the Agent Alias. + AgentAliasArn pulumi.StringOutput `pulumi:"agentAliasArn"` + // The list of history events for an alias for an Agent. + AgentAliasHistoryEvents AgentAliasHistoryEventArrayOutput `pulumi:"agentAliasHistoryEvents"` + // Id for an Agent Alias generated at the server side. + AgentAliasId pulumi.StringOutput `pulumi:"agentAliasId"` + // Name for a resource. + AgentAliasName pulumi.StringOutput `pulumi:"agentAliasName"` + AgentAliasStatus AgentAliasStatusOutput `pulumi:"agentAliasStatus"` + // Identifier for a resource. + AgentId pulumi.StringOutput `pulumi:"agentId"` + // Time Stamp. + CreatedAt pulumi.StringOutput `pulumi:"createdAt"` + // Description of the Resource. + Description pulumi.StringPtrOutput `pulumi:"description"` + // Routing configuration for an Agent alias. + RoutingConfiguration AgentAliasRoutingConfigurationListItemArrayOutput `pulumi:"routingConfiguration"` + Tags pulumi.StringMapOutput `pulumi:"tags"` + // Time Stamp. + UpdatedAt pulumi.StringOutput `pulumi:"updatedAt"` +} + +// NewAgentAlias registers a new resource with the given unique name, arguments, and options. +func NewAgentAlias(ctx *pulumi.Context, + name string, args *AgentAliasArgs, opts ...pulumi.ResourceOption) (*AgentAlias, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AgentId == nil { + return nil, errors.New("invalid value for required argument 'AgentId'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "agentId", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource AgentAlias + err := ctx.RegisterResource("aws-native:bedrock:AgentAlias", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAgentAlias gets an existing AgentAlias 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 GetAgentAlias(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AgentAliasState, opts ...pulumi.ResourceOption) (*AgentAlias, error) { + var resource AgentAlias + err := ctx.ReadResource("aws-native:bedrock:AgentAlias", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering AgentAlias resources. +type agentAliasState struct { +} + +type AgentAliasState struct { +} + +func (AgentAliasState) ElementType() reflect.Type { + return reflect.TypeOf((*agentAliasState)(nil)).Elem() +} + +type agentAliasArgs struct { + // Name for a resource. + AgentAliasName *string `pulumi:"agentAliasName"` + // Identifier for a resource. + AgentId string `pulumi:"agentId"` + // Description of the Resource. + Description *string `pulumi:"description"` + // Routing configuration for an Agent alias. + RoutingConfiguration []AgentAliasRoutingConfigurationListItem `pulumi:"routingConfiguration"` + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a AgentAlias resource. +type AgentAliasArgs struct { + // Name for a resource. + AgentAliasName pulumi.StringPtrInput + // Identifier for a resource. + AgentId pulumi.StringInput + // Description of the Resource. + Description pulumi.StringPtrInput + // Routing configuration for an Agent alias. + RoutingConfiguration AgentAliasRoutingConfigurationListItemArrayInput + Tags pulumi.StringMapInput +} + +func (AgentAliasArgs) ElementType() reflect.Type { + return reflect.TypeOf((*agentAliasArgs)(nil)).Elem() +} + +type AgentAliasInput interface { + pulumi.Input + + ToAgentAliasOutput() AgentAliasOutput + ToAgentAliasOutputWithContext(ctx context.Context) AgentAliasOutput +} + +func (*AgentAlias) ElementType() reflect.Type { + return reflect.TypeOf((**AgentAlias)(nil)).Elem() +} + +func (i *AgentAlias) ToAgentAliasOutput() AgentAliasOutput { + return i.ToAgentAliasOutputWithContext(context.Background()) +} + +func (i *AgentAlias) ToAgentAliasOutputWithContext(ctx context.Context) AgentAliasOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentAliasOutput) +} + +type AgentAliasOutput struct{ *pulumi.OutputState } + +func (AgentAliasOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentAlias)(nil)).Elem() +} + +func (o AgentAliasOutput) ToAgentAliasOutput() AgentAliasOutput { + return o +} + +func (o AgentAliasOutput) ToAgentAliasOutputWithContext(ctx context.Context) AgentAliasOutput { + return o +} + +// Arn representation of the Agent Alias. +func (o AgentAliasOutput) AgentAliasArn() pulumi.StringOutput { + return o.ApplyT(func(v *AgentAlias) pulumi.StringOutput { return v.AgentAliasArn }).(pulumi.StringOutput) +} + +// The list of history events for an alias for an Agent. +func (o AgentAliasOutput) AgentAliasHistoryEvents() AgentAliasHistoryEventArrayOutput { + return o.ApplyT(func(v *AgentAlias) AgentAliasHistoryEventArrayOutput { return v.AgentAliasHistoryEvents }).(AgentAliasHistoryEventArrayOutput) +} + +// Id for an Agent Alias generated at the server side. +func (o AgentAliasOutput) AgentAliasId() pulumi.StringOutput { + return o.ApplyT(func(v *AgentAlias) pulumi.StringOutput { return v.AgentAliasId }).(pulumi.StringOutput) +} + +// Name for a resource. +func (o AgentAliasOutput) AgentAliasName() pulumi.StringOutput { + return o.ApplyT(func(v *AgentAlias) pulumi.StringOutput { return v.AgentAliasName }).(pulumi.StringOutput) +} + +func (o AgentAliasOutput) AgentAliasStatus() AgentAliasStatusOutput { + return o.ApplyT(func(v *AgentAlias) AgentAliasStatusOutput { return v.AgentAliasStatus }).(AgentAliasStatusOutput) +} + +// Identifier for a resource. +func (o AgentAliasOutput) AgentId() pulumi.StringOutput { + return o.ApplyT(func(v *AgentAlias) pulumi.StringOutput { return v.AgentId }).(pulumi.StringOutput) +} + +// Time Stamp. +func (o AgentAliasOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *AgentAlias) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) +} + +// Description of the Resource. +func (o AgentAliasOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AgentAlias) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// Routing configuration for an Agent alias. +func (o AgentAliasOutput) RoutingConfiguration() AgentAliasRoutingConfigurationListItemArrayOutput { + return o.ApplyT(func(v *AgentAlias) AgentAliasRoutingConfigurationListItemArrayOutput { return v.RoutingConfiguration }).(AgentAliasRoutingConfigurationListItemArrayOutput) +} + +func (o AgentAliasOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *AgentAlias) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// Time Stamp. +func (o AgentAliasOutput) UpdatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *AgentAlias) pulumi.StringOutput { return v.UpdatedAt }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AgentAliasInput)(nil)).Elem(), &AgentAlias{}) + pulumi.RegisterOutputType(AgentAliasOutput{}) +} diff --git a/sdk/go/aws/bedrock/getAgent.go b/sdk/go/aws/bedrock/getAgent.go new file mode 100644 index 0000000000..d153fef9bf --- /dev/null +++ b/sdk/go/aws/bedrock/getAgent.go @@ -0,0 +1,205 @@ +// 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 bedrock + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Definition of AWS::Bedrock::Agent Resource Type +func LookupAgent(ctx *pulumi.Context, args *LookupAgentArgs, opts ...pulumi.InvokeOption) (*LookupAgentResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupAgentResult + err := ctx.Invoke("aws-native:bedrock:getAgent", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupAgentArgs struct { + // Identifier for a resource. + AgentId string `pulumi:"agentId"` +} + +type LookupAgentResult struct { + // List of ActionGroups + ActionGroups []AgentActionGroup `pulumi:"actionGroups"` + // Arn representation of the Agent. + AgentArn *string `pulumi:"agentArn"` + // Identifier for a resource. + AgentId *string `pulumi:"agentId"` + // Name for a resource. + AgentName *string `pulumi:"agentName"` + // ARN of a IAM role. + AgentResourceRoleArn *string `pulumi:"agentResourceRoleArn"` + AgentStatus *AgentStatus `pulumi:"agentStatus"` + // Draft Agent Version. + AgentVersion *string `pulumi:"agentVersion"` + // Time Stamp. + CreatedAt *string `pulumi:"createdAt"` + // A KMS key ARN + CustomerEncryptionKeyArn *string `pulumi:"customerEncryptionKeyArn"` + // Description of the Resource. + Description *string `pulumi:"description"` + // Failure Reasons for Error. + FailureReasons []string `pulumi:"failureReasons"` + // ARN or name of a Bedrock model. + FoundationModel *string `pulumi:"foundationModel"` + // Max Session Time. + IdleSessionTtlInSeconds *float64 `pulumi:"idleSessionTtlInSeconds"` + // Instruction for the agent. + Instruction *string `pulumi:"instruction"` + // List of Agent Knowledge Bases + KnowledgeBases []AgentKnowledgeBase `pulumi:"knowledgeBases"` + // Time Stamp. + PreparedAt *string `pulumi:"preparedAt"` + PromptOverrideConfiguration *AgentPromptOverrideConfiguration `pulumi:"promptOverrideConfiguration"` + // The recommended actions users can take to resolve an error in failureReasons. + RecommendedActions []string `pulumi:"recommendedActions"` + Tags map[string]string `pulumi:"tags"` + // Time Stamp. + UpdatedAt *string `pulumi:"updatedAt"` +} + +func LookupAgentOutput(ctx *pulumi.Context, args LookupAgentOutputArgs, opts ...pulumi.InvokeOption) LookupAgentResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupAgentResult, error) { + args := v.(LookupAgentArgs) + r, err := LookupAgent(ctx, &args, opts...) + var s LookupAgentResult + if r != nil { + s = *r + } + return s, err + }).(LookupAgentResultOutput) +} + +type LookupAgentOutputArgs struct { + // Identifier for a resource. + AgentId pulumi.StringInput `pulumi:"agentId"` +} + +func (LookupAgentOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupAgentArgs)(nil)).Elem() +} + +type LookupAgentResultOutput struct{ *pulumi.OutputState } + +func (LookupAgentResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupAgentResult)(nil)).Elem() +} + +func (o LookupAgentResultOutput) ToLookupAgentResultOutput() LookupAgentResultOutput { + return o +} + +func (o LookupAgentResultOutput) ToLookupAgentResultOutputWithContext(ctx context.Context) LookupAgentResultOutput { + return o +} + +// List of ActionGroups +func (o LookupAgentResultOutput) ActionGroups() AgentActionGroupArrayOutput { + return o.ApplyT(func(v LookupAgentResult) []AgentActionGroup { return v.ActionGroups }).(AgentActionGroupArrayOutput) +} + +// Arn representation of the Agent. +func (o LookupAgentResultOutput) AgentArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAgentResult) *string { return v.AgentArn }).(pulumi.StringPtrOutput) +} + +// Identifier for a resource. +func (o LookupAgentResultOutput) AgentId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAgentResult) *string { return v.AgentId }).(pulumi.StringPtrOutput) +} + +// Name for a resource. +func (o LookupAgentResultOutput) AgentName() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAgentResult) *string { return v.AgentName }).(pulumi.StringPtrOutput) +} + +// ARN of a IAM role. +func (o LookupAgentResultOutput) AgentResourceRoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAgentResult) *string { return v.AgentResourceRoleArn }).(pulumi.StringPtrOutput) +} + +func (o LookupAgentResultOutput) AgentStatus() AgentStatusPtrOutput { + return o.ApplyT(func(v LookupAgentResult) *AgentStatus { return v.AgentStatus }).(AgentStatusPtrOutput) +} + +// Draft Agent Version. +func (o LookupAgentResultOutput) AgentVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAgentResult) *string { return v.AgentVersion }).(pulumi.StringPtrOutput) +} + +// Time Stamp. +func (o LookupAgentResultOutput) CreatedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAgentResult) *string { return v.CreatedAt }).(pulumi.StringPtrOutput) +} + +// A KMS key ARN +func (o LookupAgentResultOutput) CustomerEncryptionKeyArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAgentResult) *string { return v.CustomerEncryptionKeyArn }).(pulumi.StringPtrOutput) +} + +// Description of the Resource. +func (o LookupAgentResultOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAgentResult) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// Failure Reasons for Error. +func (o LookupAgentResultOutput) FailureReasons() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupAgentResult) []string { return v.FailureReasons }).(pulumi.StringArrayOutput) +} + +// ARN or name of a Bedrock model. +func (o LookupAgentResultOutput) FoundationModel() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAgentResult) *string { return v.FoundationModel }).(pulumi.StringPtrOutput) +} + +// Max Session Time. +func (o LookupAgentResultOutput) IdleSessionTtlInSeconds() pulumi.Float64PtrOutput { + return o.ApplyT(func(v LookupAgentResult) *float64 { return v.IdleSessionTtlInSeconds }).(pulumi.Float64PtrOutput) +} + +// Instruction for the agent. +func (o LookupAgentResultOutput) Instruction() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAgentResult) *string { return v.Instruction }).(pulumi.StringPtrOutput) +} + +// List of Agent Knowledge Bases +func (o LookupAgentResultOutput) KnowledgeBases() AgentKnowledgeBaseArrayOutput { + return o.ApplyT(func(v LookupAgentResult) []AgentKnowledgeBase { return v.KnowledgeBases }).(AgentKnowledgeBaseArrayOutput) +} + +// Time Stamp. +func (o LookupAgentResultOutput) PreparedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAgentResult) *string { return v.PreparedAt }).(pulumi.StringPtrOutput) +} + +func (o LookupAgentResultOutput) PromptOverrideConfiguration() AgentPromptOverrideConfigurationPtrOutput { + return o.ApplyT(func(v LookupAgentResult) *AgentPromptOverrideConfiguration { return v.PromptOverrideConfiguration }).(AgentPromptOverrideConfigurationPtrOutput) +} + +// The recommended actions users can take to resolve an error in failureReasons. +func (o LookupAgentResultOutput) RecommendedActions() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupAgentResult) []string { return v.RecommendedActions }).(pulumi.StringArrayOutput) +} + +func (o LookupAgentResultOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v LookupAgentResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Time Stamp. +func (o LookupAgentResultOutput) UpdatedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAgentResult) *string { return v.UpdatedAt }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupAgentResultOutput{}) +} diff --git a/sdk/go/aws/bedrock/getAgentAlias.go b/sdk/go/aws/bedrock/getAgentAlias.go new file mode 100644 index 0000000000..f103007aed --- /dev/null +++ b/sdk/go/aws/bedrock/getAgentAlias.go @@ -0,0 +1,141 @@ +// 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 bedrock + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Definition of AWS::Bedrock::AgentAlias Resource Type +func LookupAgentAlias(ctx *pulumi.Context, args *LookupAgentAliasArgs, opts ...pulumi.InvokeOption) (*LookupAgentAliasResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupAgentAliasResult + err := ctx.Invoke("aws-native:bedrock:getAgentAlias", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupAgentAliasArgs struct { + // Id for an Agent Alias generated at the server side. + AgentAliasId string `pulumi:"agentAliasId"` + // Identifier for a resource. + AgentId string `pulumi:"agentId"` +} + +type LookupAgentAliasResult struct { + // Arn representation of the Agent Alias. + AgentAliasArn *string `pulumi:"agentAliasArn"` + // The list of history events for an alias for an Agent. + AgentAliasHistoryEvents []AgentAliasHistoryEvent `pulumi:"agentAliasHistoryEvents"` + // Id for an Agent Alias generated at the server side. + AgentAliasId *string `pulumi:"agentAliasId"` + // Name for a resource. + AgentAliasName *string `pulumi:"agentAliasName"` + AgentAliasStatus *AgentAliasStatus `pulumi:"agentAliasStatus"` + // Time Stamp. + CreatedAt *string `pulumi:"createdAt"` + // Description of the Resource. + Description *string `pulumi:"description"` + // Routing configuration for an Agent alias. + RoutingConfiguration []AgentAliasRoutingConfigurationListItem `pulumi:"routingConfiguration"` + Tags map[string]string `pulumi:"tags"` + // Time Stamp. + UpdatedAt *string `pulumi:"updatedAt"` +} + +func LookupAgentAliasOutput(ctx *pulumi.Context, args LookupAgentAliasOutputArgs, opts ...pulumi.InvokeOption) LookupAgentAliasResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupAgentAliasResult, error) { + args := v.(LookupAgentAliasArgs) + r, err := LookupAgentAlias(ctx, &args, opts...) + var s LookupAgentAliasResult + if r != nil { + s = *r + } + return s, err + }).(LookupAgentAliasResultOutput) +} + +type LookupAgentAliasOutputArgs struct { + // Id for an Agent Alias generated at the server side. + AgentAliasId pulumi.StringInput `pulumi:"agentAliasId"` + // Identifier for a resource. + AgentId pulumi.StringInput `pulumi:"agentId"` +} + +func (LookupAgentAliasOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupAgentAliasArgs)(nil)).Elem() +} + +type LookupAgentAliasResultOutput struct{ *pulumi.OutputState } + +func (LookupAgentAliasResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupAgentAliasResult)(nil)).Elem() +} + +func (o LookupAgentAliasResultOutput) ToLookupAgentAliasResultOutput() LookupAgentAliasResultOutput { + return o +} + +func (o LookupAgentAliasResultOutput) ToLookupAgentAliasResultOutputWithContext(ctx context.Context) LookupAgentAliasResultOutput { + return o +} + +// Arn representation of the Agent Alias. +func (o LookupAgentAliasResultOutput) AgentAliasArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAgentAliasResult) *string { return v.AgentAliasArn }).(pulumi.StringPtrOutput) +} + +// The list of history events for an alias for an Agent. +func (o LookupAgentAliasResultOutput) AgentAliasHistoryEvents() AgentAliasHistoryEventArrayOutput { + return o.ApplyT(func(v LookupAgentAliasResult) []AgentAliasHistoryEvent { return v.AgentAliasHistoryEvents }).(AgentAliasHistoryEventArrayOutput) +} + +// Id for an Agent Alias generated at the server side. +func (o LookupAgentAliasResultOutput) AgentAliasId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAgentAliasResult) *string { return v.AgentAliasId }).(pulumi.StringPtrOutput) +} + +// Name for a resource. +func (o LookupAgentAliasResultOutput) AgentAliasName() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAgentAliasResult) *string { return v.AgentAliasName }).(pulumi.StringPtrOutput) +} + +func (o LookupAgentAliasResultOutput) AgentAliasStatus() AgentAliasStatusPtrOutput { + return o.ApplyT(func(v LookupAgentAliasResult) *AgentAliasStatus { return v.AgentAliasStatus }).(AgentAliasStatusPtrOutput) +} + +// Time Stamp. +func (o LookupAgentAliasResultOutput) CreatedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAgentAliasResult) *string { return v.CreatedAt }).(pulumi.StringPtrOutput) +} + +// Description of the Resource. +func (o LookupAgentAliasResultOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAgentAliasResult) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// Routing configuration for an Agent alias. +func (o LookupAgentAliasResultOutput) RoutingConfiguration() AgentAliasRoutingConfigurationListItemArrayOutput { + return o.ApplyT(func(v LookupAgentAliasResult) []AgentAliasRoutingConfigurationListItem { return v.RoutingConfiguration }).(AgentAliasRoutingConfigurationListItemArrayOutput) +} + +func (o LookupAgentAliasResultOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v LookupAgentAliasResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Time Stamp. +func (o LookupAgentAliasResultOutput) UpdatedAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupAgentAliasResult) *string { return v.UpdatedAt }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupAgentAliasResultOutput{}) +} diff --git a/sdk/go/aws/bedrock/init.go b/sdk/go/aws/bedrock/init.go new file mode 100644 index 0000000000..2daf90c326 --- /dev/null +++ b/sdk/go/aws/bedrock/init.go @@ -0,0 +1,46 @@ +// 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 bedrock + +import ( + "fmt" + + "github.com/blang/semver" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type module struct { + version semver.Version +} + +func (m *module) Version() semver.Version { + return m.version +} + +func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { + switch typ { + case "aws-native:bedrock:Agent": + r = &Agent{} + case "aws-native:bedrock:AgentAlias": + r = &AgentAlias{} + default: + return nil, fmt.Errorf("unknown resource type: %s", typ) + } + + err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return +} + +func init() { + version, err := internal.PkgVersion() + if err != nil { + version = semver.Version{Major: 1} + } + pulumi.RegisterResourceModule( + "aws-native", + "bedrock", + &module{version}, + ) +} diff --git a/sdk/go/aws/bedrock/pulumiEnums.go b/sdk/go/aws/bedrock/pulumiEnums.go new file mode 100644 index 0000000000..cf8f84fde8 --- /dev/null +++ b/sdk/go/aws/bedrock/pulumiEnums.go @@ -0,0 +1,1231 @@ +// 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 bedrock + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Action Group Signature for a BuiltIn Action +type AgentActionGroupSignature string + +const ( + AgentActionGroupSignatureAmazonUserInput = AgentActionGroupSignature("AMAZON.UserInput") +) + +func (AgentActionGroupSignature) ElementType() reflect.Type { + return reflect.TypeOf((*AgentActionGroupSignature)(nil)).Elem() +} + +func (e AgentActionGroupSignature) ToAgentActionGroupSignatureOutput() AgentActionGroupSignatureOutput { + return pulumi.ToOutput(e).(AgentActionGroupSignatureOutput) +} + +func (e AgentActionGroupSignature) ToAgentActionGroupSignatureOutputWithContext(ctx context.Context) AgentActionGroupSignatureOutput { + return pulumi.ToOutputWithContext(ctx, e).(AgentActionGroupSignatureOutput) +} + +func (e AgentActionGroupSignature) ToAgentActionGroupSignaturePtrOutput() AgentActionGroupSignaturePtrOutput { + return e.ToAgentActionGroupSignaturePtrOutputWithContext(context.Background()) +} + +func (e AgentActionGroupSignature) ToAgentActionGroupSignaturePtrOutputWithContext(ctx context.Context) AgentActionGroupSignaturePtrOutput { + return AgentActionGroupSignature(e).ToAgentActionGroupSignatureOutputWithContext(ctx).ToAgentActionGroupSignaturePtrOutputWithContext(ctx) +} + +func (e AgentActionGroupSignature) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e AgentActionGroupSignature) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e AgentActionGroupSignature) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e AgentActionGroupSignature) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type AgentActionGroupSignatureOutput struct{ *pulumi.OutputState } + +func (AgentActionGroupSignatureOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentActionGroupSignature)(nil)).Elem() +} + +func (o AgentActionGroupSignatureOutput) ToAgentActionGroupSignatureOutput() AgentActionGroupSignatureOutput { + return o +} + +func (o AgentActionGroupSignatureOutput) ToAgentActionGroupSignatureOutputWithContext(ctx context.Context) AgentActionGroupSignatureOutput { + return o +} + +func (o AgentActionGroupSignatureOutput) ToAgentActionGroupSignaturePtrOutput() AgentActionGroupSignaturePtrOutput { + return o.ToAgentActionGroupSignaturePtrOutputWithContext(context.Background()) +} + +func (o AgentActionGroupSignatureOutput) ToAgentActionGroupSignaturePtrOutputWithContext(ctx context.Context) AgentActionGroupSignaturePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentActionGroupSignature) *AgentActionGroupSignature { + return &v + }).(AgentActionGroupSignaturePtrOutput) +} + +func (o AgentActionGroupSignatureOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o AgentActionGroupSignatureOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e AgentActionGroupSignature) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o AgentActionGroupSignatureOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o AgentActionGroupSignatureOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e AgentActionGroupSignature) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type AgentActionGroupSignaturePtrOutput struct{ *pulumi.OutputState } + +func (AgentActionGroupSignaturePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentActionGroupSignature)(nil)).Elem() +} + +func (o AgentActionGroupSignaturePtrOutput) ToAgentActionGroupSignaturePtrOutput() AgentActionGroupSignaturePtrOutput { + return o +} + +func (o AgentActionGroupSignaturePtrOutput) ToAgentActionGroupSignaturePtrOutputWithContext(ctx context.Context) AgentActionGroupSignaturePtrOutput { + return o +} + +func (o AgentActionGroupSignaturePtrOutput) Elem() AgentActionGroupSignatureOutput { + return o.ApplyT(func(v *AgentActionGroupSignature) AgentActionGroupSignature { + if v != nil { + return *v + } + var ret AgentActionGroupSignature + return ret + }).(AgentActionGroupSignatureOutput) +} + +func (o AgentActionGroupSignaturePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o AgentActionGroupSignaturePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *AgentActionGroupSignature) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// AgentActionGroupSignatureInput is an input type that accepts values of the AgentActionGroupSignature enum +// A concrete instance of `AgentActionGroupSignatureInput` can be one of the following: +// +// AgentActionGroupSignatureAmazonUserInput +type AgentActionGroupSignatureInput interface { + pulumi.Input + + ToAgentActionGroupSignatureOutput() AgentActionGroupSignatureOutput + ToAgentActionGroupSignatureOutputWithContext(context.Context) AgentActionGroupSignatureOutput +} + +var agentActionGroupSignaturePtrType = reflect.TypeOf((**AgentActionGroupSignature)(nil)).Elem() + +type AgentActionGroupSignaturePtrInput interface { + pulumi.Input + + ToAgentActionGroupSignaturePtrOutput() AgentActionGroupSignaturePtrOutput + ToAgentActionGroupSignaturePtrOutputWithContext(context.Context) AgentActionGroupSignaturePtrOutput +} + +type agentActionGroupSignaturePtr string + +func AgentActionGroupSignaturePtr(v string) AgentActionGroupSignaturePtrInput { + return (*agentActionGroupSignaturePtr)(&v) +} + +func (*agentActionGroupSignaturePtr) ElementType() reflect.Type { + return agentActionGroupSignaturePtrType +} + +func (in *agentActionGroupSignaturePtr) ToAgentActionGroupSignaturePtrOutput() AgentActionGroupSignaturePtrOutput { + return pulumi.ToOutput(in).(AgentActionGroupSignaturePtrOutput) +} + +func (in *agentActionGroupSignaturePtr) ToAgentActionGroupSignaturePtrOutputWithContext(ctx context.Context) AgentActionGroupSignaturePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(AgentActionGroupSignaturePtrOutput) +} + +// State of the action group +type AgentActionGroupState string + +const ( + AgentActionGroupStateEnabled = AgentActionGroupState("ENABLED") + AgentActionGroupStateDisabled = AgentActionGroupState("DISABLED") +) + +func (AgentActionGroupState) ElementType() reflect.Type { + return reflect.TypeOf((*AgentActionGroupState)(nil)).Elem() +} + +func (e AgentActionGroupState) ToAgentActionGroupStateOutput() AgentActionGroupStateOutput { + return pulumi.ToOutput(e).(AgentActionGroupStateOutput) +} + +func (e AgentActionGroupState) ToAgentActionGroupStateOutputWithContext(ctx context.Context) AgentActionGroupStateOutput { + return pulumi.ToOutputWithContext(ctx, e).(AgentActionGroupStateOutput) +} + +func (e AgentActionGroupState) ToAgentActionGroupStatePtrOutput() AgentActionGroupStatePtrOutput { + return e.ToAgentActionGroupStatePtrOutputWithContext(context.Background()) +} + +func (e AgentActionGroupState) ToAgentActionGroupStatePtrOutputWithContext(ctx context.Context) AgentActionGroupStatePtrOutput { + return AgentActionGroupState(e).ToAgentActionGroupStateOutputWithContext(ctx).ToAgentActionGroupStatePtrOutputWithContext(ctx) +} + +func (e AgentActionGroupState) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e AgentActionGroupState) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e AgentActionGroupState) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e AgentActionGroupState) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type AgentActionGroupStateOutput struct{ *pulumi.OutputState } + +func (AgentActionGroupStateOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentActionGroupState)(nil)).Elem() +} + +func (o AgentActionGroupStateOutput) ToAgentActionGroupStateOutput() AgentActionGroupStateOutput { + return o +} + +func (o AgentActionGroupStateOutput) ToAgentActionGroupStateOutputWithContext(ctx context.Context) AgentActionGroupStateOutput { + return o +} + +func (o AgentActionGroupStateOutput) ToAgentActionGroupStatePtrOutput() AgentActionGroupStatePtrOutput { + return o.ToAgentActionGroupStatePtrOutputWithContext(context.Background()) +} + +func (o AgentActionGroupStateOutput) ToAgentActionGroupStatePtrOutputWithContext(ctx context.Context) AgentActionGroupStatePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentActionGroupState) *AgentActionGroupState { + return &v + }).(AgentActionGroupStatePtrOutput) +} + +func (o AgentActionGroupStateOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o AgentActionGroupStateOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e AgentActionGroupState) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o AgentActionGroupStateOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o AgentActionGroupStateOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e AgentActionGroupState) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type AgentActionGroupStatePtrOutput struct{ *pulumi.OutputState } + +func (AgentActionGroupStatePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentActionGroupState)(nil)).Elem() +} + +func (o AgentActionGroupStatePtrOutput) ToAgentActionGroupStatePtrOutput() AgentActionGroupStatePtrOutput { + return o +} + +func (o AgentActionGroupStatePtrOutput) ToAgentActionGroupStatePtrOutputWithContext(ctx context.Context) AgentActionGroupStatePtrOutput { + return o +} + +func (o AgentActionGroupStatePtrOutput) Elem() AgentActionGroupStateOutput { + return o.ApplyT(func(v *AgentActionGroupState) AgentActionGroupState { + if v != nil { + return *v + } + var ret AgentActionGroupState + return ret + }).(AgentActionGroupStateOutput) +} + +func (o AgentActionGroupStatePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o AgentActionGroupStatePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *AgentActionGroupState) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// AgentActionGroupStateInput is an input type that accepts values of the AgentActionGroupState enum +// A concrete instance of `AgentActionGroupStateInput` can be one of the following: +// +// AgentActionGroupStateEnabled +// AgentActionGroupStateDisabled +type AgentActionGroupStateInput interface { + pulumi.Input + + ToAgentActionGroupStateOutput() AgentActionGroupStateOutput + ToAgentActionGroupStateOutputWithContext(context.Context) AgentActionGroupStateOutput +} + +var agentActionGroupStatePtrType = reflect.TypeOf((**AgentActionGroupState)(nil)).Elem() + +type AgentActionGroupStatePtrInput interface { + pulumi.Input + + ToAgentActionGroupStatePtrOutput() AgentActionGroupStatePtrOutput + ToAgentActionGroupStatePtrOutputWithContext(context.Context) AgentActionGroupStatePtrOutput +} + +type agentActionGroupStatePtr string + +func AgentActionGroupStatePtr(v string) AgentActionGroupStatePtrInput { + return (*agentActionGroupStatePtr)(&v) +} + +func (*agentActionGroupStatePtr) ElementType() reflect.Type { + return agentActionGroupStatePtrType +} + +func (in *agentActionGroupStatePtr) ToAgentActionGroupStatePtrOutput() AgentActionGroupStatePtrOutput { + return pulumi.ToOutput(in).(AgentActionGroupStatePtrOutput) +} + +func (in *agentActionGroupStatePtr) ToAgentActionGroupStatePtrOutputWithContext(ctx context.Context) AgentActionGroupStatePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(AgentActionGroupStatePtrOutput) +} + +// The statuses an Agent Alias can be in. +type AgentAliasStatus string + +const ( + AgentAliasStatusCreating = AgentAliasStatus("CREATING") + AgentAliasStatusPrepared = AgentAliasStatus("PREPARED") + AgentAliasStatusFailed = AgentAliasStatus("FAILED") + AgentAliasStatusUpdating = AgentAliasStatus("UPDATING") + AgentAliasStatusDeleting = AgentAliasStatus("DELETING") +) + +type AgentAliasStatusOutput struct{ *pulumi.OutputState } + +func (AgentAliasStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentAliasStatus)(nil)).Elem() +} + +func (o AgentAliasStatusOutput) ToAgentAliasStatusOutput() AgentAliasStatusOutput { + return o +} + +func (o AgentAliasStatusOutput) ToAgentAliasStatusOutputWithContext(ctx context.Context) AgentAliasStatusOutput { + return o +} + +func (o AgentAliasStatusOutput) ToAgentAliasStatusPtrOutput() AgentAliasStatusPtrOutput { + return o.ToAgentAliasStatusPtrOutputWithContext(context.Background()) +} + +func (o AgentAliasStatusOutput) ToAgentAliasStatusPtrOutputWithContext(ctx context.Context) AgentAliasStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentAliasStatus) *AgentAliasStatus { + return &v + }).(AgentAliasStatusPtrOutput) +} + +func (o AgentAliasStatusOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o AgentAliasStatusOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e AgentAliasStatus) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o AgentAliasStatusOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o AgentAliasStatusOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e AgentAliasStatus) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type AgentAliasStatusPtrOutput struct{ *pulumi.OutputState } + +func (AgentAliasStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentAliasStatus)(nil)).Elem() +} + +func (o AgentAliasStatusPtrOutput) ToAgentAliasStatusPtrOutput() AgentAliasStatusPtrOutput { + return o +} + +func (o AgentAliasStatusPtrOutput) ToAgentAliasStatusPtrOutputWithContext(ctx context.Context) AgentAliasStatusPtrOutput { + return o +} + +func (o AgentAliasStatusPtrOutput) Elem() AgentAliasStatusOutput { + return o.ApplyT(func(v *AgentAliasStatus) AgentAliasStatus { + if v != nil { + return *v + } + var ret AgentAliasStatus + return ret + }).(AgentAliasStatusOutput) +} + +func (o AgentAliasStatusPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o AgentAliasStatusPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *AgentAliasStatus) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// Creation Mode for Prompt Configuration. +type AgentCreationMode string + +const ( + AgentCreationModeDefault = AgentCreationMode("DEFAULT") + AgentCreationModeOverridden = AgentCreationMode("OVERRIDDEN") +) + +func (AgentCreationMode) ElementType() reflect.Type { + return reflect.TypeOf((*AgentCreationMode)(nil)).Elem() +} + +func (e AgentCreationMode) ToAgentCreationModeOutput() AgentCreationModeOutput { + return pulumi.ToOutput(e).(AgentCreationModeOutput) +} + +func (e AgentCreationMode) ToAgentCreationModeOutputWithContext(ctx context.Context) AgentCreationModeOutput { + return pulumi.ToOutputWithContext(ctx, e).(AgentCreationModeOutput) +} + +func (e AgentCreationMode) ToAgentCreationModePtrOutput() AgentCreationModePtrOutput { + return e.ToAgentCreationModePtrOutputWithContext(context.Background()) +} + +func (e AgentCreationMode) ToAgentCreationModePtrOutputWithContext(ctx context.Context) AgentCreationModePtrOutput { + return AgentCreationMode(e).ToAgentCreationModeOutputWithContext(ctx).ToAgentCreationModePtrOutputWithContext(ctx) +} + +func (e AgentCreationMode) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e AgentCreationMode) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e AgentCreationMode) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e AgentCreationMode) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type AgentCreationModeOutput struct{ *pulumi.OutputState } + +func (AgentCreationModeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentCreationMode)(nil)).Elem() +} + +func (o AgentCreationModeOutput) ToAgentCreationModeOutput() AgentCreationModeOutput { + return o +} + +func (o AgentCreationModeOutput) ToAgentCreationModeOutputWithContext(ctx context.Context) AgentCreationModeOutput { + return o +} + +func (o AgentCreationModeOutput) ToAgentCreationModePtrOutput() AgentCreationModePtrOutput { + return o.ToAgentCreationModePtrOutputWithContext(context.Background()) +} + +func (o AgentCreationModeOutput) ToAgentCreationModePtrOutputWithContext(ctx context.Context) AgentCreationModePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentCreationMode) *AgentCreationMode { + return &v + }).(AgentCreationModePtrOutput) +} + +func (o AgentCreationModeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o AgentCreationModeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e AgentCreationMode) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o AgentCreationModeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o AgentCreationModeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e AgentCreationMode) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type AgentCreationModePtrOutput struct{ *pulumi.OutputState } + +func (AgentCreationModePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentCreationMode)(nil)).Elem() +} + +func (o AgentCreationModePtrOutput) ToAgentCreationModePtrOutput() AgentCreationModePtrOutput { + return o +} + +func (o AgentCreationModePtrOutput) ToAgentCreationModePtrOutputWithContext(ctx context.Context) AgentCreationModePtrOutput { + return o +} + +func (o AgentCreationModePtrOutput) Elem() AgentCreationModeOutput { + return o.ApplyT(func(v *AgentCreationMode) AgentCreationMode { + if v != nil { + return *v + } + var ret AgentCreationMode + return ret + }).(AgentCreationModeOutput) +} + +func (o AgentCreationModePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o AgentCreationModePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *AgentCreationMode) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// AgentCreationModeInput is an input type that accepts values of the AgentCreationMode enum +// A concrete instance of `AgentCreationModeInput` can be one of the following: +// +// AgentCreationModeDefault +// AgentCreationModeOverridden +type AgentCreationModeInput interface { + pulumi.Input + + ToAgentCreationModeOutput() AgentCreationModeOutput + ToAgentCreationModeOutputWithContext(context.Context) AgentCreationModeOutput +} + +var agentCreationModePtrType = reflect.TypeOf((**AgentCreationMode)(nil)).Elem() + +type AgentCreationModePtrInput interface { + pulumi.Input + + ToAgentCreationModePtrOutput() AgentCreationModePtrOutput + ToAgentCreationModePtrOutputWithContext(context.Context) AgentCreationModePtrOutput +} + +type agentCreationModePtr string + +func AgentCreationModePtr(v string) AgentCreationModePtrInput { + return (*agentCreationModePtr)(&v) +} + +func (*agentCreationModePtr) ElementType() reflect.Type { + return agentCreationModePtrType +} + +func (in *agentCreationModePtr) ToAgentCreationModePtrOutput() AgentCreationModePtrOutput { + return pulumi.ToOutput(in).(AgentCreationModePtrOutput) +} + +func (in *agentCreationModePtr) ToAgentCreationModePtrOutputWithContext(ctx context.Context) AgentCreationModePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(AgentCreationModePtrOutput) +} + +// State of the knowledge base; whether it is enabled or disabled +type AgentKnowledgeBaseState string + +const ( + AgentKnowledgeBaseStateEnabled = AgentKnowledgeBaseState("ENABLED") + AgentKnowledgeBaseStateDisabled = AgentKnowledgeBaseState("DISABLED") +) + +func (AgentKnowledgeBaseState) ElementType() reflect.Type { + return reflect.TypeOf((*AgentKnowledgeBaseState)(nil)).Elem() +} + +func (e AgentKnowledgeBaseState) ToAgentKnowledgeBaseStateOutput() AgentKnowledgeBaseStateOutput { + return pulumi.ToOutput(e).(AgentKnowledgeBaseStateOutput) +} + +func (e AgentKnowledgeBaseState) ToAgentKnowledgeBaseStateOutputWithContext(ctx context.Context) AgentKnowledgeBaseStateOutput { + return pulumi.ToOutputWithContext(ctx, e).(AgentKnowledgeBaseStateOutput) +} + +func (e AgentKnowledgeBaseState) ToAgentKnowledgeBaseStatePtrOutput() AgentKnowledgeBaseStatePtrOutput { + return e.ToAgentKnowledgeBaseStatePtrOutputWithContext(context.Background()) +} + +func (e AgentKnowledgeBaseState) ToAgentKnowledgeBaseStatePtrOutputWithContext(ctx context.Context) AgentKnowledgeBaseStatePtrOutput { + return AgentKnowledgeBaseState(e).ToAgentKnowledgeBaseStateOutputWithContext(ctx).ToAgentKnowledgeBaseStatePtrOutputWithContext(ctx) +} + +func (e AgentKnowledgeBaseState) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e AgentKnowledgeBaseState) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e AgentKnowledgeBaseState) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e AgentKnowledgeBaseState) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type AgentKnowledgeBaseStateOutput struct{ *pulumi.OutputState } + +func (AgentKnowledgeBaseStateOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentKnowledgeBaseState)(nil)).Elem() +} + +func (o AgentKnowledgeBaseStateOutput) ToAgentKnowledgeBaseStateOutput() AgentKnowledgeBaseStateOutput { + return o +} + +func (o AgentKnowledgeBaseStateOutput) ToAgentKnowledgeBaseStateOutputWithContext(ctx context.Context) AgentKnowledgeBaseStateOutput { + return o +} + +func (o AgentKnowledgeBaseStateOutput) ToAgentKnowledgeBaseStatePtrOutput() AgentKnowledgeBaseStatePtrOutput { + return o.ToAgentKnowledgeBaseStatePtrOutputWithContext(context.Background()) +} + +func (o AgentKnowledgeBaseStateOutput) ToAgentKnowledgeBaseStatePtrOutputWithContext(ctx context.Context) AgentKnowledgeBaseStatePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentKnowledgeBaseState) *AgentKnowledgeBaseState { + return &v + }).(AgentKnowledgeBaseStatePtrOutput) +} + +func (o AgentKnowledgeBaseStateOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o AgentKnowledgeBaseStateOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e AgentKnowledgeBaseState) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o AgentKnowledgeBaseStateOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o AgentKnowledgeBaseStateOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e AgentKnowledgeBaseState) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type AgentKnowledgeBaseStatePtrOutput struct{ *pulumi.OutputState } + +func (AgentKnowledgeBaseStatePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentKnowledgeBaseState)(nil)).Elem() +} + +func (o AgentKnowledgeBaseStatePtrOutput) ToAgentKnowledgeBaseStatePtrOutput() AgentKnowledgeBaseStatePtrOutput { + return o +} + +func (o AgentKnowledgeBaseStatePtrOutput) ToAgentKnowledgeBaseStatePtrOutputWithContext(ctx context.Context) AgentKnowledgeBaseStatePtrOutput { + return o +} + +func (o AgentKnowledgeBaseStatePtrOutput) Elem() AgentKnowledgeBaseStateOutput { + return o.ApplyT(func(v *AgentKnowledgeBaseState) AgentKnowledgeBaseState { + if v != nil { + return *v + } + var ret AgentKnowledgeBaseState + return ret + }).(AgentKnowledgeBaseStateOutput) +} + +func (o AgentKnowledgeBaseStatePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o AgentKnowledgeBaseStatePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *AgentKnowledgeBaseState) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// AgentKnowledgeBaseStateInput is an input type that accepts values of the AgentKnowledgeBaseState enum +// A concrete instance of `AgentKnowledgeBaseStateInput` can be one of the following: +// +// AgentKnowledgeBaseStateEnabled +// AgentKnowledgeBaseStateDisabled +type AgentKnowledgeBaseStateInput interface { + pulumi.Input + + ToAgentKnowledgeBaseStateOutput() AgentKnowledgeBaseStateOutput + ToAgentKnowledgeBaseStateOutputWithContext(context.Context) AgentKnowledgeBaseStateOutput +} + +var agentKnowledgeBaseStatePtrType = reflect.TypeOf((**AgentKnowledgeBaseState)(nil)).Elem() + +type AgentKnowledgeBaseStatePtrInput interface { + pulumi.Input + + ToAgentKnowledgeBaseStatePtrOutput() AgentKnowledgeBaseStatePtrOutput + ToAgentKnowledgeBaseStatePtrOutputWithContext(context.Context) AgentKnowledgeBaseStatePtrOutput +} + +type agentKnowledgeBaseStatePtr string + +func AgentKnowledgeBaseStatePtr(v string) AgentKnowledgeBaseStatePtrInput { + return (*agentKnowledgeBaseStatePtr)(&v) +} + +func (*agentKnowledgeBaseStatePtr) ElementType() reflect.Type { + return agentKnowledgeBaseStatePtrType +} + +func (in *agentKnowledgeBaseStatePtr) ToAgentKnowledgeBaseStatePtrOutput() AgentKnowledgeBaseStatePtrOutput { + return pulumi.ToOutput(in).(AgentKnowledgeBaseStatePtrOutput) +} + +func (in *agentKnowledgeBaseStatePtr) ToAgentKnowledgeBaseStatePtrOutputWithContext(ctx context.Context) AgentKnowledgeBaseStatePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(AgentKnowledgeBaseStatePtrOutput) +} + +// Prompt State. +type AgentPromptState string + +const ( + AgentPromptStateEnabled = AgentPromptState("ENABLED") + AgentPromptStateDisabled = AgentPromptState("DISABLED") +) + +func (AgentPromptState) ElementType() reflect.Type { + return reflect.TypeOf((*AgentPromptState)(nil)).Elem() +} + +func (e AgentPromptState) ToAgentPromptStateOutput() AgentPromptStateOutput { + return pulumi.ToOutput(e).(AgentPromptStateOutput) +} + +func (e AgentPromptState) ToAgentPromptStateOutputWithContext(ctx context.Context) AgentPromptStateOutput { + return pulumi.ToOutputWithContext(ctx, e).(AgentPromptStateOutput) +} + +func (e AgentPromptState) ToAgentPromptStatePtrOutput() AgentPromptStatePtrOutput { + return e.ToAgentPromptStatePtrOutputWithContext(context.Background()) +} + +func (e AgentPromptState) ToAgentPromptStatePtrOutputWithContext(ctx context.Context) AgentPromptStatePtrOutput { + return AgentPromptState(e).ToAgentPromptStateOutputWithContext(ctx).ToAgentPromptStatePtrOutputWithContext(ctx) +} + +func (e AgentPromptState) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e AgentPromptState) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e AgentPromptState) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e AgentPromptState) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type AgentPromptStateOutput struct{ *pulumi.OutputState } + +func (AgentPromptStateOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentPromptState)(nil)).Elem() +} + +func (o AgentPromptStateOutput) ToAgentPromptStateOutput() AgentPromptStateOutput { + return o +} + +func (o AgentPromptStateOutput) ToAgentPromptStateOutputWithContext(ctx context.Context) AgentPromptStateOutput { + return o +} + +func (o AgentPromptStateOutput) ToAgentPromptStatePtrOutput() AgentPromptStatePtrOutput { + return o.ToAgentPromptStatePtrOutputWithContext(context.Background()) +} + +func (o AgentPromptStateOutput) ToAgentPromptStatePtrOutputWithContext(ctx context.Context) AgentPromptStatePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentPromptState) *AgentPromptState { + return &v + }).(AgentPromptStatePtrOutput) +} + +func (o AgentPromptStateOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o AgentPromptStateOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e AgentPromptState) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o AgentPromptStateOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o AgentPromptStateOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e AgentPromptState) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type AgentPromptStatePtrOutput struct{ *pulumi.OutputState } + +func (AgentPromptStatePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentPromptState)(nil)).Elem() +} + +func (o AgentPromptStatePtrOutput) ToAgentPromptStatePtrOutput() AgentPromptStatePtrOutput { + return o +} + +func (o AgentPromptStatePtrOutput) ToAgentPromptStatePtrOutputWithContext(ctx context.Context) AgentPromptStatePtrOutput { + return o +} + +func (o AgentPromptStatePtrOutput) Elem() AgentPromptStateOutput { + return o.ApplyT(func(v *AgentPromptState) AgentPromptState { + if v != nil { + return *v + } + var ret AgentPromptState + return ret + }).(AgentPromptStateOutput) +} + +func (o AgentPromptStatePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o AgentPromptStatePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *AgentPromptState) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// AgentPromptStateInput is an input type that accepts values of the AgentPromptState enum +// A concrete instance of `AgentPromptStateInput` can be one of the following: +// +// AgentPromptStateEnabled +// AgentPromptStateDisabled +type AgentPromptStateInput interface { + pulumi.Input + + ToAgentPromptStateOutput() AgentPromptStateOutput + ToAgentPromptStateOutputWithContext(context.Context) AgentPromptStateOutput +} + +var agentPromptStatePtrType = reflect.TypeOf((**AgentPromptState)(nil)).Elem() + +type AgentPromptStatePtrInput interface { + pulumi.Input + + ToAgentPromptStatePtrOutput() AgentPromptStatePtrOutput + ToAgentPromptStatePtrOutputWithContext(context.Context) AgentPromptStatePtrOutput +} + +type agentPromptStatePtr string + +func AgentPromptStatePtr(v string) AgentPromptStatePtrInput { + return (*agentPromptStatePtr)(&v) +} + +func (*agentPromptStatePtr) ElementType() reflect.Type { + return agentPromptStatePtrType +} + +func (in *agentPromptStatePtr) ToAgentPromptStatePtrOutput() AgentPromptStatePtrOutput { + return pulumi.ToOutput(in).(AgentPromptStatePtrOutput) +} + +func (in *agentPromptStatePtr) ToAgentPromptStatePtrOutputWithContext(ctx context.Context) AgentPromptStatePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(AgentPromptStatePtrOutput) +} + +// Prompt Type. +type AgentPromptType string + +const ( + AgentPromptTypePreProcessing = AgentPromptType("PRE_PROCESSING") + AgentPromptTypeOrchestration = AgentPromptType("ORCHESTRATION") + AgentPromptTypePostProcessing = AgentPromptType("POST_PROCESSING") + AgentPromptTypeKnowledgeBaseResponseGeneration = AgentPromptType("KNOWLEDGE_BASE_RESPONSE_GENERATION") +) + +func (AgentPromptType) ElementType() reflect.Type { + return reflect.TypeOf((*AgentPromptType)(nil)).Elem() +} + +func (e AgentPromptType) ToAgentPromptTypeOutput() AgentPromptTypeOutput { + return pulumi.ToOutput(e).(AgentPromptTypeOutput) +} + +func (e AgentPromptType) ToAgentPromptTypeOutputWithContext(ctx context.Context) AgentPromptTypeOutput { + return pulumi.ToOutputWithContext(ctx, e).(AgentPromptTypeOutput) +} + +func (e AgentPromptType) ToAgentPromptTypePtrOutput() AgentPromptTypePtrOutput { + return e.ToAgentPromptTypePtrOutputWithContext(context.Background()) +} + +func (e AgentPromptType) ToAgentPromptTypePtrOutputWithContext(ctx context.Context) AgentPromptTypePtrOutput { + return AgentPromptType(e).ToAgentPromptTypeOutputWithContext(ctx).ToAgentPromptTypePtrOutputWithContext(ctx) +} + +func (e AgentPromptType) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e AgentPromptType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e AgentPromptType) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e AgentPromptType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type AgentPromptTypeOutput struct{ *pulumi.OutputState } + +func (AgentPromptTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentPromptType)(nil)).Elem() +} + +func (o AgentPromptTypeOutput) ToAgentPromptTypeOutput() AgentPromptTypeOutput { + return o +} + +func (o AgentPromptTypeOutput) ToAgentPromptTypeOutputWithContext(ctx context.Context) AgentPromptTypeOutput { + return o +} + +func (o AgentPromptTypeOutput) ToAgentPromptTypePtrOutput() AgentPromptTypePtrOutput { + return o.ToAgentPromptTypePtrOutputWithContext(context.Background()) +} + +func (o AgentPromptTypeOutput) ToAgentPromptTypePtrOutputWithContext(ctx context.Context) AgentPromptTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentPromptType) *AgentPromptType { + return &v + }).(AgentPromptTypePtrOutput) +} + +func (o AgentPromptTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o AgentPromptTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e AgentPromptType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o AgentPromptTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o AgentPromptTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e AgentPromptType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type AgentPromptTypePtrOutput struct{ *pulumi.OutputState } + +func (AgentPromptTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentPromptType)(nil)).Elem() +} + +func (o AgentPromptTypePtrOutput) ToAgentPromptTypePtrOutput() AgentPromptTypePtrOutput { + return o +} + +func (o AgentPromptTypePtrOutput) ToAgentPromptTypePtrOutputWithContext(ctx context.Context) AgentPromptTypePtrOutput { + return o +} + +func (o AgentPromptTypePtrOutput) Elem() AgentPromptTypeOutput { + return o.ApplyT(func(v *AgentPromptType) AgentPromptType { + if v != nil { + return *v + } + var ret AgentPromptType + return ret + }).(AgentPromptTypeOutput) +} + +func (o AgentPromptTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o AgentPromptTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *AgentPromptType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// AgentPromptTypeInput is an input type that accepts values of the AgentPromptType enum +// A concrete instance of `AgentPromptTypeInput` can be one of the following: +// +// AgentPromptTypePreProcessing +// AgentPromptTypeOrchestration +// AgentPromptTypePostProcessing +// AgentPromptTypeKnowledgeBaseResponseGeneration +type AgentPromptTypeInput interface { + pulumi.Input + + ToAgentPromptTypeOutput() AgentPromptTypeOutput + ToAgentPromptTypeOutputWithContext(context.Context) AgentPromptTypeOutput +} + +var agentPromptTypePtrType = reflect.TypeOf((**AgentPromptType)(nil)).Elem() + +type AgentPromptTypePtrInput interface { + pulumi.Input + + ToAgentPromptTypePtrOutput() AgentPromptTypePtrOutput + ToAgentPromptTypePtrOutputWithContext(context.Context) AgentPromptTypePtrOutput +} + +type agentPromptTypePtr string + +func AgentPromptTypePtr(v string) AgentPromptTypePtrInput { + return (*agentPromptTypePtr)(&v) +} + +func (*agentPromptTypePtr) ElementType() reflect.Type { + return agentPromptTypePtrType +} + +func (in *agentPromptTypePtr) ToAgentPromptTypePtrOutput() AgentPromptTypePtrOutput { + return pulumi.ToOutput(in).(AgentPromptTypePtrOutput) +} + +func (in *agentPromptTypePtr) ToAgentPromptTypePtrOutputWithContext(ctx context.Context) AgentPromptTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(AgentPromptTypePtrOutput) +} + +// Schema Type for Action APIs. +type AgentStatus string + +const ( + AgentStatusCreating = AgentStatus("CREATING") + AgentStatusPreparing = AgentStatus("PREPARING") + AgentStatusPrepared = AgentStatus("PREPARED") + AgentStatusNotPrepared = AgentStatus("NOT_PREPARED") + AgentStatusDeleting = AgentStatus("DELETING") + AgentStatusFailed = AgentStatus("FAILED") + AgentStatusVersioning = AgentStatus("VERSIONING") + AgentStatusUpdating = AgentStatus("UPDATING") +) + +type AgentStatusOutput struct{ *pulumi.OutputState } + +func (AgentStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentStatus)(nil)).Elem() +} + +func (o AgentStatusOutput) ToAgentStatusOutput() AgentStatusOutput { + return o +} + +func (o AgentStatusOutput) ToAgentStatusOutputWithContext(ctx context.Context) AgentStatusOutput { + return o +} + +func (o AgentStatusOutput) ToAgentStatusPtrOutput() AgentStatusPtrOutput { + return o.ToAgentStatusPtrOutputWithContext(context.Background()) +} + +func (o AgentStatusOutput) ToAgentStatusPtrOutputWithContext(ctx context.Context) AgentStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentStatus) *AgentStatus { + return &v + }).(AgentStatusPtrOutput) +} + +func (o AgentStatusOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o AgentStatusOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e AgentStatus) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o AgentStatusOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o AgentStatusOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e AgentStatus) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type AgentStatusPtrOutput struct{ *pulumi.OutputState } + +func (AgentStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentStatus)(nil)).Elem() +} + +func (o AgentStatusPtrOutput) ToAgentStatusPtrOutput() AgentStatusPtrOutput { + return o +} + +func (o AgentStatusPtrOutput) ToAgentStatusPtrOutputWithContext(ctx context.Context) AgentStatusPtrOutput { + return o +} + +func (o AgentStatusPtrOutput) Elem() AgentStatusOutput { + return o.ApplyT(func(v *AgentStatus) AgentStatus { + if v != nil { + return *v + } + var ret AgentStatus + return ret + }).(AgentStatusOutput) +} + +func (o AgentStatusPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o AgentStatusPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *AgentStatus) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AgentActionGroupSignatureInput)(nil)).Elem(), AgentActionGroupSignature("AMAZON.UserInput")) + pulumi.RegisterInputType(reflect.TypeOf((*AgentActionGroupSignaturePtrInput)(nil)).Elem(), AgentActionGroupSignature("AMAZON.UserInput")) + pulumi.RegisterInputType(reflect.TypeOf((*AgentActionGroupStateInput)(nil)).Elem(), AgentActionGroupState("ENABLED")) + pulumi.RegisterInputType(reflect.TypeOf((*AgentActionGroupStatePtrInput)(nil)).Elem(), AgentActionGroupState("ENABLED")) + pulumi.RegisterInputType(reflect.TypeOf((*AgentCreationModeInput)(nil)).Elem(), AgentCreationMode("DEFAULT")) + pulumi.RegisterInputType(reflect.TypeOf((*AgentCreationModePtrInput)(nil)).Elem(), AgentCreationMode("DEFAULT")) + pulumi.RegisterInputType(reflect.TypeOf((*AgentKnowledgeBaseStateInput)(nil)).Elem(), AgentKnowledgeBaseState("ENABLED")) + pulumi.RegisterInputType(reflect.TypeOf((*AgentKnowledgeBaseStatePtrInput)(nil)).Elem(), AgentKnowledgeBaseState("ENABLED")) + pulumi.RegisterInputType(reflect.TypeOf((*AgentPromptStateInput)(nil)).Elem(), AgentPromptState("ENABLED")) + pulumi.RegisterInputType(reflect.TypeOf((*AgentPromptStatePtrInput)(nil)).Elem(), AgentPromptState("ENABLED")) + pulumi.RegisterInputType(reflect.TypeOf((*AgentPromptTypeInput)(nil)).Elem(), AgentPromptType("PRE_PROCESSING")) + pulumi.RegisterInputType(reflect.TypeOf((*AgentPromptTypePtrInput)(nil)).Elem(), AgentPromptType("PRE_PROCESSING")) + pulumi.RegisterOutputType(AgentActionGroupSignatureOutput{}) + pulumi.RegisterOutputType(AgentActionGroupSignaturePtrOutput{}) + pulumi.RegisterOutputType(AgentActionGroupStateOutput{}) + pulumi.RegisterOutputType(AgentActionGroupStatePtrOutput{}) + pulumi.RegisterOutputType(AgentAliasStatusOutput{}) + pulumi.RegisterOutputType(AgentAliasStatusPtrOutput{}) + pulumi.RegisterOutputType(AgentCreationModeOutput{}) + pulumi.RegisterOutputType(AgentCreationModePtrOutput{}) + pulumi.RegisterOutputType(AgentKnowledgeBaseStateOutput{}) + pulumi.RegisterOutputType(AgentKnowledgeBaseStatePtrOutput{}) + pulumi.RegisterOutputType(AgentPromptStateOutput{}) + pulumi.RegisterOutputType(AgentPromptStatePtrOutput{}) + pulumi.RegisterOutputType(AgentPromptTypeOutput{}) + pulumi.RegisterOutputType(AgentPromptTypePtrOutput{}) + pulumi.RegisterOutputType(AgentStatusOutput{}) + pulumi.RegisterOutputType(AgentStatusPtrOutput{}) +} diff --git a/sdk/go/aws/bedrock/pulumiTypes.go b/sdk/go/aws/bedrock/pulumiTypes.go new file mode 100644 index 0000000000..7282bcf6b3 --- /dev/null +++ b/sdk/go/aws/bedrock/pulumiTypes.go @@ -0,0 +1,1553 @@ +// 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 bedrock + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +var _ = internal.GetEnvOrDefault + +// Contains the information of an Agent Action Group +type AgentActionGroup struct { + ActionGroupExecutor *AgentActionGroupExecutor `pulumi:"actionGroupExecutor"` + // Name of the action group + ActionGroupName string `pulumi:"actionGroupName"` + ActionGroupState *AgentActionGroupState `pulumi:"actionGroupState"` + ApiSchema interface{} `pulumi:"apiSchema"` + // Description of action group + Description *string `pulumi:"description"` + ParentActionGroupSignature *AgentActionGroupSignature `pulumi:"parentActionGroupSignature"` + // Specifies whether to allow deleting action group while it is in use. + SkipResourceInUseCheckOnDelete *bool `pulumi:"skipResourceInUseCheckOnDelete"` +} + +// AgentActionGroupInput is an input type that accepts AgentActionGroupArgs and AgentActionGroupOutput values. +// You can construct a concrete instance of `AgentActionGroupInput` via: +// +// AgentActionGroupArgs{...} +type AgentActionGroupInput interface { + pulumi.Input + + ToAgentActionGroupOutput() AgentActionGroupOutput + ToAgentActionGroupOutputWithContext(context.Context) AgentActionGroupOutput +} + +// Contains the information of an Agent Action Group +type AgentActionGroupArgs struct { + ActionGroupExecutor AgentActionGroupExecutorPtrInput `pulumi:"actionGroupExecutor"` + // Name of the action group + ActionGroupName pulumi.StringInput `pulumi:"actionGroupName"` + ActionGroupState AgentActionGroupStatePtrInput `pulumi:"actionGroupState"` + ApiSchema pulumi.Input `pulumi:"apiSchema"` + // Description of action group + Description pulumi.StringPtrInput `pulumi:"description"` + ParentActionGroupSignature AgentActionGroupSignaturePtrInput `pulumi:"parentActionGroupSignature"` + // Specifies whether to allow deleting action group while it is in use. + SkipResourceInUseCheckOnDelete pulumi.BoolPtrInput `pulumi:"skipResourceInUseCheckOnDelete"` +} + +func (AgentActionGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentActionGroup)(nil)).Elem() +} + +func (i AgentActionGroupArgs) ToAgentActionGroupOutput() AgentActionGroupOutput { + return i.ToAgentActionGroupOutputWithContext(context.Background()) +} + +func (i AgentActionGroupArgs) ToAgentActionGroupOutputWithContext(ctx context.Context) AgentActionGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentActionGroupOutput) +} + +// AgentActionGroupArrayInput is an input type that accepts AgentActionGroupArray and AgentActionGroupArrayOutput values. +// You can construct a concrete instance of `AgentActionGroupArrayInput` via: +// +// AgentActionGroupArray{ AgentActionGroupArgs{...} } +type AgentActionGroupArrayInput interface { + pulumi.Input + + ToAgentActionGroupArrayOutput() AgentActionGroupArrayOutput + ToAgentActionGroupArrayOutputWithContext(context.Context) AgentActionGroupArrayOutput +} + +type AgentActionGroupArray []AgentActionGroupInput + +func (AgentActionGroupArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AgentActionGroup)(nil)).Elem() +} + +func (i AgentActionGroupArray) ToAgentActionGroupArrayOutput() AgentActionGroupArrayOutput { + return i.ToAgentActionGroupArrayOutputWithContext(context.Background()) +} + +func (i AgentActionGroupArray) ToAgentActionGroupArrayOutputWithContext(ctx context.Context) AgentActionGroupArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentActionGroupArrayOutput) +} + +// Contains the information of an Agent Action Group +type AgentActionGroupOutput struct{ *pulumi.OutputState } + +func (AgentActionGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentActionGroup)(nil)).Elem() +} + +func (o AgentActionGroupOutput) ToAgentActionGroupOutput() AgentActionGroupOutput { + return o +} + +func (o AgentActionGroupOutput) ToAgentActionGroupOutputWithContext(ctx context.Context) AgentActionGroupOutput { + return o +} + +func (o AgentActionGroupOutput) ActionGroupExecutor() AgentActionGroupExecutorPtrOutput { + return o.ApplyT(func(v AgentActionGroup) *AgentActionGroupExecutor { return v.ActionGroupExecutor }).(AgentActionGroupExecutorPtrOutput) +} + +// Name of the action group +func (o AgentActionGroupOutput) ActionGroupName() pulumi.StringOutput { + return o.ApplyT(func(v AgentActionGroup) string { return v.ActionGroupName }).(pulumi.StringOutput) +} + +func (o AgentActionGroupOutput) ActionGroupState() AgentActionGroupStatePtrOutput { + return o.ApplyT(func(v AgentActionGroup) *AgentActionGroupState { return v.ActionGroupState }).(AgentActionGroupStatePtrOutput) +} + +func (o AgentActionGroupOutput) ApiSchema() pulumi.AnyOutput { + return o.ApplyT(func(v AgentActionGroup) interface{} { return v.ApiSchema }).(pulumi.AnyOutput) +} + +// Description of action group +func (o AgentActionGroupOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v AgentActionGroup) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +func (o AgentActionGroupOutput) ParentActionGroupSignature() AgentActionGroupSignaturePtrOutput { + return o.ApplyT(func(v AgentActionGroup) *AgentActionGroupSignature { return v.ParentActionGroupSignature }).(AgentActionGroupSignaturePtrOutput) +} + +// Specifies whether to allow deleting action group while it is in use. +func (o AgentActionGroupOutput) SkipResourceInUseCheckOnDelete() pulumi.BoolPtrOutput { + return o.ApplyT(func(v AgentActionGroup) *bool { return v.SkipResourceInUseCheckOnDelete }).(pulumi.BoolPtrOutput) +} + +type AgentActionGroupArrayOutput struct{ *pulumi.OutputState } + +func (AgentActionGroupArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AgentActionGroup)(nil)).Elem() +} + +func (o AgentActionGroupArrayOutput) ToAgentActionGroupArrayOutput() AgentActionGroupArrayOutput { + return o +} + +func (o AgentActionGroupArrayOutput) ToAgentActionGroupArrayOutputWithContext(ctx context.Context) AgentActionGroupArrayOutput { + return o +} + +func (o AgentActionGroupArrayOutput) Index(i pulumi.IntInput) AgentActionGroupOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AgentActionGroup { + return vs[0].([]AgentActionGroup)[vs[1].(int)] + }).(AgentActionGroupOutput) +} + +type AgentActionGroupExecutor struct { + // ARN of a Lambda. + Lambda string `pulumi:"lambda"` +} + +// AgentActionGroupExecutorInput is an input type that accepts AgentActionGroupExecutorArgs and AgentActionGroupExecutorOutput values. +// You can construct a concrete instance of `AgentActionGroupExecutorInput` via: +// +// AgentActionGroupExecutorArgs{...} +type AgentActionGroupExecutorInput interface { + pulumi.Input + + ToAgentActionGroupExecutorOutput() AgentActionGroupExecutorOutput + ToAgentActionGroupExecutorOutputWithContext(context.Context) AgentActionGroupExecutorOutput +} + +type AgentActionGroupExecutorArgs struct { + // ARN of a Lambda. + Lambda pulumi.StringInput `pulumi:"lambda"` +} + +func (AgentActionGroupExecutorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentActionGroupExecutor)(nil)).Elem() +} + +func (i AgentActionGroupExecutorArgs) ToAgentActionGroupExecutorOutput() AgentActionGroupExecutorOutput { + return i.ToAgentActionGroupExecutorOutputWithContext(context.Background()) +} + +func (i AgentActionGroupExecutorArgs) ToAgentActionGroupExecutorOutputWithContext(ctx context.Context) AgentActionGroupExecutorOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentActionGroupExecutorOutput) +} + +func (i AgentActionGroupExecutorArgs) ToAgentActionGroupExecutorPtrOutput() AgentActionGroupExecutorPtrOutput { + return i.ToAgentActionGroupExecutorPtrOutputWithContext(context.Background()) +} + +func (i AgentActionGroupExecutorArgs) ToAgentActionGroupExecutorPtrOutputWithContext(ctx context.Context) AgentActionGroupExecutorPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentActionGroupExecutorOutput).ToAgentActionGroupExecutorPtrOutputWithContext(ctx) +} + +// AgentActionGroupExecutorPtrInput is an input type that accepts AgentActionGroupExecutorArgs, AgentActionGroupExecutorPtr and AgentActionGroupExecutorPtrOutput values. +// You can construct a concrete instance of `AgentActionGroupExecutorPtrInput` via: +// +// AgentActionGroupExecutorArgs{...} +// +// or: +// +// nil +type AgentActionGroupExecutorPtrInput interface { + pulumi.Input + + ToAgentActionGroupExecutorPtrOutput() AgentActionGroupExecutorPtrOutput + ToAgentActionGroupExecutorPtrOutputWithContext(context.Context) AgentActionGroupExecutorPtrOutput +} + +type agentActionGroupExecutorPtrType AgentActionGroupExecutorArgs + +func AgentActionGroupExecutorPtr(v *AgentActionGroupExecutorArgs) AgentActionGroupExecutorPtrInput { + return (*agentActionGroupExecutorPtrType)(v) +} + +func (*agentActionGroupExecutorPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AgentActionGroupExecutor)(nil)).Elem() +} + +func (i *agentActionGroupExecutorPtrType) ToAgentActionGroupExecutorPtrOutput() AgentActionGroupExecutorPtrOutput { + return i.ToAgentActionGroupExecutorPtrOutputWithContext(context.Background()) +} + +func (i *agentActionGroupExecutorPtrType) ToAgentActionGroupExecutorPtrOutputWithContext(ctx context.Context) AgentActionGroupExecutorPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentActionGroupExecutorPtrOutput) +} + +type AgentActionGroupExecutorOutput struct{ *pulumi.OutputState } + +func (AgentActionGroupExecutorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentActionGroupExecutor)(nil)).Elem() +} + +func (o AgentActionGroupExecutorOutput) ToAgentActionGroupExecutorOutput() AgentActionGroupExecutorOutput { + return o +} + +func (o AgentActionGroupExecutorOutput) ToAgentActionGroupExecutorOutputWithContext(ctx context.Context) AgentActionGroupExecutorOutput { + return o +} + +func (o AgentActionGroupExecutorOutput) ToAgentActionGroupExecutorPtrOutput() AgentActionGroupExecutorPtrOutput { + return o.ToAgentActionGroupExecutorPtrOutputWithContext(context.Background()) +} + +func (o AgentActionGroupExecutorOutput) ToAgentActionGroupExecutorPtrOutputWithContext(ctx context.Context) AgentActionGroupExecutorPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentActionGroupExecutor) *AgentActionGroupExecutor { + return &v + }).(AgentActionGroupExecutorPtrOutput) +} + +// ARN of a Lambda. +func (o AgentActionGroupExecutorOutput) Lambda() pulumi.StringOutput { + return o.ApplyT(func(v AgentActionGroupExecutor) string { return v.Lambda }).(pulumi.StringOutput) +} + +type AgentActionGroupExecutorPtrOutput struct{ *pulumi.OutputState } + +func (AgentActionGroupExecutorPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentActionGroupExecutor)(nil)).Elem() +} + +func (o AgentActionGroupExecutorPtrOutput) ToAgentActionGroupExecutorPtrOutput() AgentActionGroupExecutorPtrOutput { + return o +} + +func (o AgentActionGroupExecutorPtrOutput) ToAgentActionGroupExecutorPtrOutputWithContext(ctx context.Context) AgentActionGroupExecutorPtrOutput { + return o +} + +func (o AgentActionGroupExecutorPtrOutput) Elem() AgentActionGroupExecutorOutput { + return o.ApplyT(func(v *AgentActionGroupExecutor) AgentActionGroupExecutor { + if v != nil { + return *v + } + var ret AgentActionGroupExecutor + return ret + }).(AgentActionGroupExecutorOutput) +} + +// ARN of a Lambda. +func (o AgentActionGroupExecutorPtrOutput) Lambda() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AgentActionGroupExecutor) *string { + if v == nil { + return nil + } + return &v.Lambda + }).(pulumi.StringPtrOutput) +} + +// History event for an alias for an Agent. +type AgentAliasHistoryEvent struct { + // Time Stamp. + EndDate *string `pulumi:"endDate"` + // Routing configuration for an Agent alias. + RoutingConfiguration []AgentAliasRoutingConfigurationListItem `pulumi:"routingConfiguration"` + // Time Stamp. + StartDate *string `pulumi:"startDate"` +} + +// History event for an alias for an Agent. +type AgentAliasHistoryEventOutput struct{ *pulumi.OutputState } + +func (AgentAliasHistoryEventOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentAliasHistoryEvent)(nil)).Elem() +} + +func (o AgentAliasHistoryEventOutput) ToAgentAliasHistoryEventOutput() AgentAliasHistoryEventOutput { + return o +} + +func (o AgentAliasHistoryEventOutput) ToAgentAliasHistoryEventOutputWithContext(ctx context.Context) AgentAliasHistoryEventOutput { + return o +} + +// Time Stamp. +func (o AgentAliasHistoryEventOutput) EndDate() pulumi.StringPtrOutput { + return o.ApplyT(func(v AgentAliasHistoryEvent) *string { return v.EndDate }).(pulumi.StringPtrOutput) +} + +// Routing configuration for an Agent alias. +func (o AgentAliasHistoryEventOutput) RoutingConfiguration() AgentAliasRoutingConfigurationListItemArrayOutput { + return o.ApplyT(func(v AgentAliasHistoryEvent) []AgentAliasRoutingConfigurationListItem { return v.RoutingConfiguration }).(AgentAliasRoutingConfigurationListItemArrayOutput) +} + +// Time Stamp. +func (o AgentAliasHistoryEventOutput) StartDate() pulumi.StringPtrOutput { + return o.ApplyT(func(v AgentAliasHistoryEvent) *string { return v.StartDate }).(pulumi.StringPtrOutput) +} + +type AgentAliasHistoryEventArrayOutput struct{ *pulumi.OutputState } + +func (AgentAliasHistoryEventArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AgentAliasHistoryEvent)(nil)).Elem() +} + +func (o AgentAliasHistoryEventArrayOutput) ToAgentAliasHistoryEventArrayOutput() AgentAliasHistoryEventArrayOutput { + return o +} + +func (o AgentAliasHistoryEventArrayOutput) ToAgentAliasHistoryEventArrayOutputWithContext(ctx context.Context) AgentAliasHistoryEventArrayOutput { + return o +} + +func (o AgentAliasHistoryEventArrayOutput) Index(i pulumi.IntInput) AgentAliasHistoryEventOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AgentAliasHistoryEvent { + return vs[0].([]AgentAliasHistoryEvent)[vs[1].(int)] + }).(AgentAliasHistoryEventOutput) +} + +// Details about the routing configuration for an Agent alias. +type AgentAliasRoutingConfigurationListItem struct { + // Agent Version. + AgentVersion string `pulumi:"agentVersion"` +} + +// AgentAliasRoutingConfigurationListItemInput is an input type that accepts AgentAliasRoutingConfigurationListItemArgs and AgentAliasRoutingConfigurationListItemOutput values. +// You can construct a concrete instance of `AgentAliasRoutingConfigurationListItemInput` via: +// +// AgentAliasRoutingConfigurationListItemArgs{...} +type AgentAliasRoutingConfigurationListItemInput interface { + pulumi.Input + + ToAgentAliasRoutingConfigurationListItemOutput() AgentAliasRoutingConfigurationListItemOutput + ToAgentAliasRoutingConfigurationListItemOutputWithContext(context.Context) AgentAliasRoutingConfigurationListItemOutput +} + +// Details about the routing configuration for an Agent alias. +type AgentAliasRoutingConfigurationListItemArgs struct { + // Agent Version. + AgentVersion pulumi.StringInput `pulumi:"agentVersion"` +} + +func (AgentAliasRoutingConfigurationListItemArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentAliasRoutingConfigurationListItem)(nil)).Elem() +} + +func (i AgentAliasRoutingConfigurationListItemArgs) ToAgentAliasRoutingConfigurationListItemOutput() AgentAliasRoutingConfigurationListItemOutput { + return i.ToAgentAliasRoutingConfigurationListItemOutputWithContext(context.Background()) +} + +func (i AgentAliasRoutingConfigurationListItemArgs) ToAgentAliasRoutingConfigurationListItemOutputWithContext(ctx context.Context) AgentAliasRoutingConfigurationListItemOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentAliasRoutingConfigurationListItemOutput) +} + +// AgentAliasRoutingConfigurationListItemArrayInput is an input type that accepts AgentAliasRoutingConfigurationListItemArray and AgentAliasRoutingConfigurationListItemArrayOutput values. +// You can construct a concrete instance of `AgentAliasRoutingConfigurationListItemArrayInput` via: +// +// AgentAliasRoutingConfigurationListItemArray{ AgentAliasRoutingConfigurationListItemArgs{...} } +type AgentAliasRoutingConfigurationListItemArrayInput interface { + pulumi.Input + + ToAgentAliasRoutingConfigurationListItemArrayOutput() AgentAliasRoutingConfigurationListItemArrayOutput + ToAgentAliasRoutingConfigurationListItemArrayOutputWithContext(context.Context) AgentAliasRoutingConfigurationListItemArrayOutput +} + +type AgentAliasRoutingConfigurationListItemArray []AgentAliasRoutingConfigurationListItemInput + +func (AgentAliasRoutingConfigurationListItemArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AgentAliasRoutingConfigurationListItem)(nil)).Elem() +} + +func (i AgentAliasRoutingConfigurationListItemArray) ToAgentAliasRoutingConfigurationListItemArrayOutput() AgentAliasRoutingConfigurationListItemArrayOutput { + return i.ToAgentAliasRoutingConfigurationListItemArrayOutputWithContext(context.Background()) +} + +func (i AgentAliasRoutingConfigurationListItemArray) ToAgentAliasRoutingConfigurationListItemArrayOutputWithContext(ctx context.Context) AgentAliasRoutingConfigurationListItemArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentAliasRoutingConfigurationListItemArrayOutput) +} + +// Details about the routing configuration for an Agent alias. +type AgentAliasRoutingConfigurationListItemOutput struct{ *pulumi.OutputState } + +func (AgentAliasRoutingConfigurationListItemOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentAliasRoutingConfigurationListItem)(nil)).Elem() +} + +func (o AgentAliasRoutingConfigurationListItemOutput) ToAgentAliasRoutingConfigurationListItemOutput() AgentAliasRoutingConfigurationListItemOutput { + return o +} + +func (o AgentAliasRoutingConfigurationListItemOutput) ToAgentAliasRoutingConfigurationListItemOutputWithContext(ctx context.Context) AgentAliasRoutingConfigurationListItemOutput { + return o +} + +// Agent Version. +func (o AgentAliasRoutingConfigurationListItemOutput) AgentVersion() pulumi.StringOutput { + return o.ApplyT(func(v AgentAliasRoutingConfigurationListItem) string { return v.AgentVersion }).(pulumi.StringOutput) +} + +type AgentAliasRoutingConfigurationListItemArrayOutput struct{ *pulumi.OutputState } + +func (AgentAliasRoutingConfigurationListItemArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AgentAliasRoutingConfigurationListItem)(nil)).Elem() +} + +func (o AgentAliasRoutingConfigurationListItemArrayOutput) ToAgentAliasRoutingConfigurationListItemArrayOutput() AgentAliasRoutingConfigurationListItemArrayOutput { + return o +} + +func (o AgentAliasRoutingConfigurationListItemArrayOutput) ToAgentAliasRoutingConfigurationListItemArrayOutputWithContext(ctx context.Context) AgentAliasRoutingConfigurationListItemArrayOutput { + return o +} + +func (o AgentAliasRoutingConfigurationListItemArrayOutput) Index(i pulumi.IntInput) AgentAliasRoutingConfigurationListItemOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AgentAliasRoutingConfigurationListItem { + return vs[0].([]AgentAliasRoutingConfigurationListItem)[vs[1].(int)] + }).(AgentAliasRoutingConfigurationListItemOutput) +} + +// Contains information about the API Schema for the Action Group +type AgentApiSchema0Properties struct { + S3 AgentS3Identifier `pulumi:"s3"` +} + +// AgentApiSchema0PropertiesInput is an input type that accepts AgentApiSchema0PropertiesArgs and AgentApiSchema0PropertiesOutput values. +// You can construct a concrete instance of `AgentApiSchema0PropertiesInput` via: +// +// AgentApiSchema0PropertiesArgs{...} +type AgentApiSchema0PropertiesInput interface { + pulumi.Input + + ToAgentApiSchema0PropertiesOutput() AgentApiSchema0PropertiesOutput + ToAgentApiSchema0PropertiesOutputWithContext(context.Context) AgentApiSchema0PropertiesOutput +} + +// Contains information about the API Schema for the Action Group +type AgentApiSchema0PropertiesArgs struct { + S3 AgentS3IdentifierInput `pulumi:"s3"` +} + +func (AgentApiSchema0PropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentApiSchema0Properties)(nil)).Elem() +} + +func (i AgentApiSchema0PropertiesArgs) ToAgentApiSchema0PropertiesOutput() AgentApiSchema0PropertiesOutput { + return i.ToAgentApiSchema0PropertiesOutputWithContext(context.Background()) +} + +func (i AgentApiSchema0PropertiesArgs) ToAgentApiSchema0PropertiesOutputWithContext(ctx context.Context) AgentApiSchema0PropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentApiSchema0PropertiesOutput) +} + +func (i AgentApiSchema0PropertiesArgs) ToAgentApiSchema0PropertiesPtrOutput() AgentApiSchema0PropertiesPtrOutput { + return i.ToAgentApiSchema0PropertiesPtrOutputWithContext(context.Background()) +} + +func (i AgentApiSchema0PropertiesArgs) ToAgentApiSchema0PropertiesPtrOutputWithContext(ctx context.Context) AgentApiSchema0PropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentApiSchema0PropertiesOutput).ToAgentApiSchema0PropertiesPtrOutputWithContext(ctx) +} + +// AgentApiSchema0PropertiesPtrInput is an input type that accepts AgentApiSchema0PropertiesArgs, AgentApiSchema0PropertiesPtr and AgentApiSchema0PropertiesPtrOutput values. +// You can construct a concrete instance of `AgentApiSchema0PropertiesPtrInput` via: +// +// AgentApiSchema0PropertiesArgs{...} +// +// or: +// +// nil +type AgentApiSchema0PropertiesPtrInput interface { + pulumi.Input + + ToAgentApiSchema0PropertiesPtrOutput() AgentApiSchema0PropertiesPtrOutput + ToAgentApiSchema0PropertiesPtrOutputWithContext(context.Context) AgentApiSchema0PropertiesPtrOutput +} + +type agentApiSchema0PropertiesPtrType AgentApiSchema0PropertiesArgs + +func AgentApiSchema0PropertiesPtr(v *AgentApiSchema0PropertiesArgs) AgentApiSchema0PropertiesPtrInput { + return (*agentApiSchema0PropertiesPtrType)(v) +} + +func (*agentApiSchema0PropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AgentApiSchema0Properties)(nil)).Elem() +} + +func (i *agentApiSchema0PropertiesPtrType) ToAgentApiSchema0PropertiesPtrOutput() AgentApiSchema0PropertiesPtrOutput { + return i.ToAgentApiSchema0PropertiesPtrOutputWithContext(context.Background()) +} + +func (i *agentApiSchema0PropertiesPtrType) ToAgentApiSchema0PropertiesPtrOutputWithContext(ctx context.Context) AgentApiSchema0PropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentApiSchema0PropertiesPtrOutput) +} + +// Contains information about the API Schema for the Action Group +type AgentApiSchema0PropertiesOutput struct{ *pulumi.OutputState } + +func (AgentApiSchema0PropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentApiSchema0Properties)(nil)).Elem() +} + +func (o AgentApiSchema0PropertiesOutput) ToAgentApiSchema0PropertiesOutput() AgentApiSchema0PropertiesOutput { + return o +} + +func (o AgentApiSchema0PropertiesOutput) ToAgentApiSchema0PropertiesOutputWithContext(ctx context.Context) AgentApiSchema0PropertiesOutput { + return o +} + +func (o AgentApiSchema0PropertiesOutput) ToAgentApiSchema0PropertiesPtrOutput() AgentApiSchema0PropertiesPtrOutput { + return o.ToAgentApiSchema0PropertiesPtrOutputWithContext(context.Background()) +} + +func (o AgentApiSchema0PropertiesOutput) ToAgentApiSchema0PropertiesPtrOutputWithContext(ctx context.Context) AgentApiSchema0PropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentApiSchema0Properties) *AgentApiSchema0Properties { + return &v + }).(AgentApiSchema0PropertiesPtrOutput) +} + +func (o AgentApiSchema0PropertiesOutput) S3() AgentS3IdentifierOutput { + return o.ApplyT(func(v AgentApiSchema0Properties) AgentS3Identifier { return v.S3 }).(AgentS3IdentifierOutput) +} + +type AgentApiSchema0PropertiesPtrOutput struct{ *pulumi.OutputState } + +func (AgentApiSchema0PropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentApiSchema0Properties)(nil)).Elem() +} + +func (o AgentApiSchema0PropertiesPtrOutput) ToAgentApiSchema0PropertiesPtrOutput() AgentApiSchema0PropertiesPtrOutput { + return o +} + +func (o AgentApiSchema0PropertiesPtrOutput) ToAgentApiSchema0PropertiesPtrOutputWithContext(ctx context.Context) AgentApiSchema0PropertiesPtrOutput { + return o +} + +func (o AgentApiSchema0PropertiesPtrOutput) Elem() AgentApiSchema0PropertiesOutput { + return o.ApplyT(func(v *AgentApiSchema0Properties) AgentApiSchema0Properties { + if v != nil { + return *v + } + var ret AgentApiSchema0Properties + return ret + }).(AgentApiSchema0PropertiesOutput) +} + +func (o AgentApiSchema0PropertiesPtrOutput) S3() AgentS3IdentifierPtrOutput { + return o.ApplyT(func(v *AgentApiSchema0Properties) *AgentS3Identifier { + if v == nil { + return nil + } + return &v.S3 + }).(AgentS3IdentifierPtrOutput) +} + +// Contains information about the API Schema for the Action Group +type AgentApiSchema1Properties struct { + // String OpenAPI Payload + Payload string `pulumi:"payload"` +} + +// AgentApiSchema1PropertiesInput is an input type that accepts AgentApiSchema1PropertiesArgs and AgentApiSchema1PropertiesOutput values. +// You can construct a concrete instance of `AgentApiSchema1PropertiesInput` via: +// +// AgentApiSchema1PropertiesArgs{...} +type AgentApiSchema1PropertiesInput interface { + pulumi.Input + + ToAgentApiSchema1PropertiesOutput() AgentApiSchema1PropertiesOutput + ToAgentApiSchema1PropertiesOutputWithContext(context.Context) AgentApiSchema1PropertiesOutput +} + +// Contains information about the API Schema for the Action Group +type AgentApiSchema1PropertiesArgs struct { + // String OpenAPI Payload + Payload pulumi.StringInput `pulumi:"payload"` +} + +func (AgentApiSchema1PropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentApiSchema1Properties)(nil)).Elem() +} + +func (i AgentApiSchema1PropertiesArgs) ToAgentApiSchema1PropertiesOutput() AgentApiSchema1PropertiesOutput { + return i.ToAgentApiSchema1PropertiesOutputWithContext(context.Background()) +} + +func (i AgentApiSchema1PropertiesArgs) ToAgentApiSchema1PropertiesOutputWithContext(ctx context.Context) AgentApiSchema1PropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentApiSchema1PropertiesOutput) +} + +func (i AgentApiSchema1PropertiesArgs) ToAgentApiSchema1PropertiesPtrOutput() AgentApiSchema1PropertiesPtrOutput { + return i.ToAgentApiSchema1PropertiesPtrOutputWithContext(context.Background()) +} + +func (i AgentApiSchema1PropertiesArgs) ToAgentApiSchema1PropertiesPtrOutputWithContext(ctx context.Context) AgentApiSchema1PropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentApiSchema1PropertiesOutput).ToAgentApiSchema1PropertiesPtrOutputWithContext(ctx) +} + +// AgentApiSchema1PropertiesPtrInput is an input type that accepts AgentApiSchema1PropertiesArgs, AgentApiSchema1PropertiesPtr and AgentApiSchema1PropertiesPtrOutput values. +// You can construct a concrete instance of `AgentApiSchema1PropertiesPtrInput` via: +// +// AgentApiSchema1PropertiesArgs{...} +// +// or: +// +// nil +type AgentApiSchema1PropertiesPtrInput interface { + pulumi.Input + + ToAgentApiSchema1PropertiesPtrOutput() AgentApiSchema1PropertiesPtrOutput + ToAgentApiSchema1PropertiesPtrOutputWithContext(context.Context) AgentApiSchema1PropertiesPtrOutput +} + +type agentApiSchema1PropertiesPtrType AgentApiSchema1PropertiesArgs + +func AgentApiSchema1PropertiesPtr(v *AgentApiSchema1PropertiesArgs) AgentApiSchema1PropertiesPtrInput { + return (*agentApiSchema1PropertiesPtrType)(v) +} + +func (*agentApiSchema1PropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AgentApiSchema1Properties)(nil)).Elem() +} + +func (i *agentApiSchema1PropertiesPtrType) ToAgentApiSchema1PropertiesPtrOutput() AgentApiSchema1PropertiesPtrOutput { + return i.ToAgentApiSchema1PropertiesPtrOutputWithContext(context.Background()) +} + +func (i *agentApiSchema1PropertiesPtrType) ToAgentApiSchema1PropertiesPtrOutputWithContext(ctx context.Context) AgentApiSchema1PropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentApiSchema1PropertiesPtrOutput) +} + +// Contains information about the API Schema for the Action Group +type AgentApiSchema1PropertiesOutput struct{ *pulumi.OutputState } + +func (AgentApiSchema1PropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentApiSchema1Properties)(nil)).Elem() +} + +func (o AgentApiSchema1PropertiesOutput) ToAgentApiSchema1PropertiesOutput() AgentApiSchema1PropertiesOutput { + return o +} + +func (o AgentApiSchema1PropertiesOutput) ToAgentApiSchema1PropertiesOutputWithContext(ctx context.Context) AgentApiSchema1PropertiesOutput { + return o +} + +func (o AgentApiSchema1PropertiesOutput) ToAgentApiSchema1PropertiesPtrOutput() AgentApiSchema1PropertiesPtrOutput { + return o.ToAgentApiSchema1PropertiesPtrOutputWithContext(context.Background()) +} + +func (o AgentApiSchema1PropertiesOutput) ToAgentApiSchema1PropertiesPtrOutputWithContext(ctx context.Context) AgentApiSchema1PropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentApiSchema1Properties) *AgentApiSchema1Properties { + return &v + }).(AgentApiSchema1PropertiesPtrOutput) +} + +// String OpenAPI Payload +func (o AgentApiSchema1PropertiesOutput) Payload() pulumi.StringOutput { + return o.ApplyT(func(v AgentApiSchema1Properties) string { return v.Payload }).(pulumi.StringOutput) +} + +type AgentApiSchema1PropertiesPtrOutput struct{ *pulumi.OutputState } + +func (AgentApiSchema1PropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentApiSchema1Properties)(nil)).Elem() +} + +func (o AgentApiSchema1PropertiesPtrOutput) ToAgentApiSchema1PropertiesPtrOutput() AgentApiSchema1PropertiesPtrOutput { + return o +} + +func (o AgentApiSchema1PropertiesPtrOutput) ToAgentApiSchema1PropertiesPtrOutputWithContext(ctx context.Context) AgentApiSchema1PropertiesPtrOutput { + return o +} + +func (o AgentApiSchema1PropertiesPtrOutput) Elem() AgentApiSchema1PropertiesOutput { + return o.ApplyT(func(v *AgentApiSchema1Properties) AgentApiSchema1Properties { + if v != nil { + return *v + } + var ret AgentApiSchema1Properties + return ret + }).(AgentApiSchema1PropertiesOutput) +} + +// String OpenAPI Payload +func (o AgentApiSchema1PropertiesPtrOutput) Payload() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AgentApiSchema1Properties) *string { + if v == nil { + return nil + } + return &v.Payload + }).(pulumi.StringPtrOutput) +} + +// Configuration for inference in prompt configuration +type AgentInferenceConfiguration struct { + // Maximum length of output + MaximumLength *float64 `pulumi:"maximumLength"` + // List of stop sequences + StopSequences []string `pulumi:"stopSequences"` + // Controls randomness, higher values increase diversity + Temperature *float64 `pulumi:"temperature"` + // Sample from the k most likely next tokens + TopK *float64 `pulumi:"topK"` + // Cumulative probability cutoff for token selection + TopP *float64 `pulumi:"topP"` +} + +// AgentInferenceConfigurationInput is an input type that accepts AgentInferenceConfigurationArgs and AgentInferenceConfigurationOutput values. +// You can construct a concrete instance of `AgentInferenceConfigurationInput` via: +// +// AgentInferenceConfigurationArgs{...} +type AgentInferenceConfigurationInput interface { + pulumi.Input + + ToAgentInferenceConfigurationOutput() AgentInferenceConfigurationOutput + ToAgentInferenceConfigurationOutputWithContext(context.Context) AgentInferenceConfigurationOutput +} + +// Configuration for inference in prompt configuration +type AgentInferenceConfigurationArgs struct { + // Maximum length of output + MaximumLength pulumi.Float64PtrInput `pulumi:"maximumLength"` + // List of stop sequences + StopSequences pulumi.StringArrayInput `pulumi:"stopSequences"` + // Controls randomness, higher values increase diversity + Temperature pulumi.Float64PtrInput `pulumi:"temperature"` + // Sample from the k most likely next tokens + TopK pulumi.Float64PtrInput `pulumi:"topK"` + // Cumulative probability cutoff for token selection + TopP pulumi.Float64PtrInput `pulumi:"topP"` +} + +func (AgentInferenceConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentInferenceConfiguration)(nil)).Elem() +} + +func (i AgentInferenceConfigurationArgs) ToAgentInferenceConfigurationOutput() AgentInferenceConfigurationOutput { + return i.ToAgentInferenceConfigurationOutputWithContext(context.Background()) +} + +func (i AgentInferenceConfigurationArgs) ToAgentInferenceConfigurationOutputWithContext(ctx context.Context) AgentInferenceConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentInferenceConfigurationOutput) +} + +func (i AgentInferenceConfigurationArgs) ToAgentInferenceConfigurationPtrOutput() AgentInferenceConfigurationPtrOutput { + return i.ToAgentInferenceConfigurationPtrOutputWithContext(context.Background()) +} + +func (i AgentInferenceConfigurationArgs) ToAgentInferenceConfigurationPtrOutputWithContext(ctx context.Context) AgentInferenceConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentInferenceConfigurationOutput).ToAgentInferenceConfigurationPtrOutputWithContext(ctx) +} + +// AgentInferenceConfigurationPtrInput is an input type that accepts AgentInferenceConfigurationArgs, AgentInferenceConfigurationPtr and AgentInferenceConfigurationPtrOutput values. +// You can construct a concrete instance of `AgentInferenceConfigurationPtrInput` via: +// +// AgentInferenceConfigurationArgs{...} +// +// or: +// +// nil +type AgentInferenceConfigurationPtrInput interface { + pulumi.Input + + ToAgentInferenceConfigurationPtrOutput() AgentInferenceConfigurationPtrOutput + ToAgentInferenceConfigurationPtrOutputWithContext(context.Context) AgentInferenceConfigurationPtrOutput +} + +type agentInferenceConfigurationPtrType AgentInferenceConfigurationArgs + +func AgentInferenceConfigurationPtr(v *AgentInferenceConfigurationArgs) AgentInferenceConfigurationPtrInput { + return (*agentInferenceConfigurationPtrType)(v) +} + +func (*agentInferenceConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AgentInferenceConfiguration)(nil)).Elem() +} + +func (i *agentInferenceConfigurationPtrType) ToAgentInferenceConfigurationPtrOutput() AgentInferenceConfigurationPtrOutput { + return i.ToAgentInferenceConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *agentInferenceConfigurationPtrType) ToAgentInferenceConfigurationPtrOutputWithContext(ctx context.Context) AgentInferenceConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentInferenceConfigurationPtrOutput) +} + +// Configuration for inference in prompt configuration +type AgentInferenceConfigurationOutput struct{ *pulumi.OutputState } + +func (AgentInferenceConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentInferenceConfiguration)(nil)).Elem() +} + +func (o AgentInferenceConfigurationOutput) ToAgentInferenceConfigurationOutput() AgentInferenceConfigurationOutput { + return o +} + +func (o AgentInferenceConfigurationOutput) ToAgentInferenceConfigurationOutputWithContext(ctx context.Context) AgentInferenceConfigurationOutput { + return o +} + +func (o AgentInferenceConfigurationOutput) ToAgentInferenceConfigurationPtrOutput() AgentInferenceConfigurationPtrOutput { + return o.ToAgentInferenceConfigurationPtrOutputWithContext(context.Background()) +} + +func (o AgentInferenceConfigurationOutput) ToAgentInferenceConfigurationPtrOutputWithContext(ctx context.Context) AgentInferenceConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentInferenceConfiguration) *AgentInferenceConfiguration { + return &v + }).(AgentInferenceConfigurationPtrOutput) +} + +// Maximum length of output +func (o AgentInferenceConfigurationOutput) MaximumLength() pulumi.Float64PtrOutput { + return o.ApplyT(func(v AgentInferenceConfiguration) *float64 { return v.MaximumLength }).(pulumi.Float64PtrOutput) +} + +// List of stop sequences +func (o AgentInferenceConfigurationOutput) StopSequences() pulumi.StringArrayOutput { + return o.ApplyT(func(v AgentInferenceConfiguration) []string { return v.StopSequences }).(pulumi.StringArrayOutput) +} + +// Controls randomness, higher values increase diversity +func (o AgentInferenceConfigurationOutput) Temperature() pulumi.Float64PtrOutput { + return o.ApplyT(func(v AgentInferenceConfiguration) *float64 { return v.Temperature }).(pulumi.Float64PtrOutput) +} + +// Sample from the k most likely next tokens +func (o AgentInferenceConfigurationOutput) TopK() pulumi.Float64PtrOutput { + return o.ApplyT(func(v AgentInferenceConfiguration) *float64 { return v.TopK }).(pulumi.Float64PtrOutput) +} + +// Cumulative probability cutoff for token selection +func (o AgentInferenceConfigurationOutput) TopP() pulumi.Float64PtrOutput { + return o.ApplyT(func(v AgentInferenceConfiguration) *float64 { return v.TopP }).(pulumi.Float64PtrOutput) +} + +type AgentInferenceConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (AgentInferenceConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentInferenceConfiguration)(nil)).Elem() +} + +func (o AgentInferenceConfigurationPtrOutput) ToAgentInferenceConfigurationPtrOutput() AgentInferenceConfigurationPtrOutput { + return o +} + +func (o AgentInferenceConfigurationPtrOutput) ToAgentInferenceConfigurationPtrOutputWithContext(ctx context.Context) AgentInferenceConfigurationPtrOutput { + return o +} + +func (o AgentInferenceConfigurationPtrOutput) Elem() AgentInferenceConfigurationOutput { + return o.ApplyT(func(v *AgentInferenceConfiguration) AgentInferenceConfiguration { + if v != nil { + return *v + } + var ret AgentInferenceConfiguration + return ret + }).(AgentInferenceConfigurationOutput) +} + +// Maximum length of output +func (o AgentInferenceConfigurationPtrOutput) MaximumLength() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *AgentInferenceConfiguration) *float64 { + if v == nil { + return nil + } + return v.MaximumLength + }).(pulumi.Float64PtrOutput) +} + +// List of stop sequences +func (o AgentInferenceConfigurationPtrOutput) StopSequences() pulumi.StringArrayOutput { + return o.ApplyT(func(v *AgentInferenceConfiguration) []string { + if v == nil { + return nil + } + return v.StopSequences + }).(pulumi.StringArrayOutput) +} + +// Controls randomness, higher values increase diversity +func (o AgentInferenceConfigurationPtrOutput) Temperature() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *AgentInferenceConfiguration) *float64 { + if v == nil { + return nil + } + return v.Temperature + }).(pulumi.Float64PtrOutput) +} + +// Sample from the k most likely next tokens +func (o AgentInferenceConfigurationPtrOutput) TopK() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *AgentInferenceConfiguration) *float64 { + if v == nil { + return nil + } + return v.TopK + }).(pulumi.Float64PtrOutput) +} + +// Cumulative probability cutoff for token selection +func (o AgentInferenceConfigurationPtrOutput) TopP() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *AgentInferenceConfiguration) *float64 { + if v == nil { + return nil + } + return v.TopP + }).(pulumi.Float64PtrOutput) +} + +// Agent Knowledge Base +type AgentKnowledgeBase struct { + // Description of the Resource. + Description string `pulumi:"description"` + // Identifier for a resource. + KnowledgeBaseId string `pulumi:"knowledgeBaseId"` + KnowledgeBaseState *AgentKnowledgeBaseState `pulumi:"knowledgeBaseState"` +} + +// AgentKnowledgeBaseInput is an input type that accepts AgentKnowledgeBaseArgs and AgentKnowledgeBaseOutput values. +// You can construct a concrete instance of `AgentKnowledgeBaseInput` via: +// +// AgentKnowledgeBaseArgs{...} +type AgentKnowledgeBaseInput interface { + pulumi.Input + + ToAgentKnowledgeBaseOutput() AgentKnowledgeBaseOutput + ToAgentKnowledgeBaseOutputWithContext(context.Context) AgentKnowledgeBaseOutput +} + +// Agent Knowledge Base +type AgentKnowledgeBaseArgs struct { + // Description of the Resource. + Description pulumi.StringInput `pulumi:"description"` + // Identifier for a resource. + KnowledgeBaseId pulumi.StringInput `pulumi:"knowledgeBaseId"` + KnowledgeBaseState AgentKnowledgeBaseStatePtrInput `pulumi:"knowledgeBaseState"` +} + +func (AgentKnowledgeBaseArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentKnowledgeBase)(nil)).Elem() +} + +func (i AgentKnowledgeBaseArgs) ToAgentKnowledgeBaseOutput() AgentKnowledgeBaseOutput { + return i.ToAgentKnowledgeBaseOutputWithContext(context.Background()) +} + +func (i AgentKnowledgeBaseArgs) ToAgentKnowledgeBaseOutputWithContext(ctx context.Context) AgentKnowledgeBaseOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentKnowledgeBaseOutput) +} + +// AgentKnowledgeBaseArrayInput is an input type that accepts AgentKnowledgeBaseArray and AgentKnowledgeBaseArrayOutput values. +// You can construct a concrete instance of `AgentKnowledgeBaseArrayInput` via: +// +// AgentKnowledgeBaseArray{ AgentKnowledgeBaseArgs{...} } +type AgentKnowledgeBaseArrayInput interface { + pulumi.Input + + ToAgentKnowledgeBaseArrayOutput() AgentKnowledgeBaseArrayOutput + ToAgentKnowledgeBaseArrayOutputWithContext(context.Context) AgentKnowledgeBaseArrayOutput +} + +type AgentKnowledgeBaseArray []AgentKnowledgeBaseInput + +func (AgentKnowledgeBaseArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AgentKnowledgeBase)(nil)).Elem() +} + +func (i AgentKnowledgeBaseArray) ToAgentKnowledgeBaseArrayOutput() AgentKnowledgeBaseArrayOutput { + return i.ToAgentKnowledgeBaseArrayOutputWithContext(context.Background()) +} + +func (i AgentKnowledgeBaseArray) ToAgentKnowledgeBaseArrayOutputWithContext(ctx context.Context) AgentKnowledgeBaseArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentKnowledgeBaseArrayOutput) +} + +// Agent Knowledge Base +type AgentKnowledgeBaseOutput struct{ *pulumi.OutputState } + +func (AgentKnowledgeBaseOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentKnowledgeBase)(nil)).Elem() +} + +func (o AgentKnowledgeBaseOutput) ToAgentKnowledgeBaseOutput() AgentKnowledgeBaseOutput { + return o +} + +func (o AgentKnowledgeBaseOutput) ToAgentKnowledgeBaseOutputWithContext(ctx context.Context) AgentKnowledgeBaseOutput { + return o +} + +// Description of the Resource. +func (o AgentKnowledgeBaseOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v AgentKnowledgeBase) string { return v.Description }).(pulumi.StringOutput) +} + +// Identifier for a resource. +func (o AgentKnowledgeBaseOutput) KnowledgeBaseId() pulumi.StringOutput { + return o.ApplyT(func(v AgentKnowledgeBase) string { return v.KnowledgeBaseId }).(pulumi.StringOutput) +} + +func (o AgentKnowledgeBaseOutput) KnowledgeBaseState() AgentKnowledgeBaseStatePtrOutput { + return o.ApplyT(func(v AgentKnowledgeBase) *AgentKnowledgeBaseState { return v.KnowledgeBaseState }).(AgentKnowledgeBaseStatePtrOutput) +} + +type AgentKnowledgeBaseArrayOutput struct{ *pulumi.OutputState } + +func (AgentKnowledgeBaseArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AgentKnowledgeBase)(nil)).Elem() +} + +func (o AgentKnowledgeBaseArrayOutput) ToAgentKnowledgeBaseArrayOutput() AgentKnowledgeBaseArrayOutput { + return o +} + +func (o AgentKnowledgeBaseArrayOutput) ToAgentKnowledgeBaseArrayOutputWithContext(ctx context.Context) AgentKnowledgeBaseArrayOutput { + return o +} + +func (o AgentKnowledgeBaseArrayOutput) Index(i pulumi.IntInput) AgentKnowledgeBaseOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AgentKnowledgeBase { + return vs[0].([]AgentKnowledgeBase)[vs[1].(int)] + }).(AgentKnowledgeBaseOutput) +} + +// BasePromptConfiguration per Prompt Type. +type AgentPromptConfiguration struct { + // Base Prompt Template. + BasePromptTemplate *string `pulumi:"basePromptTemplate"` + InferenceConfiguration *AgentInferenceConfiguration `pulumi:"inferenceConfiguration"` + ParserMode *AgentCreationMode `pulumi:"parserMode"` + PromptCreationMode *AgentCreationMode `pulumi:"promptCreationMode"` + PromptState *AgentPromptState `pulumi:"promptState"` + PromptType *AgentPromptType `pulumi:"promptType"` +} + +// AgentPromptConfigurationInput is an input type that accepts AgentPromptConfigurationArgs and AgentPromptConfigurationOutput values. +// You can construct a concrete instance of `AgentPromptConfigurationInput` via: +// +// AgentPromptConfigurationArgs{...} +type AgentPromptConfigurationInput interface { + pulumi.Input + + ToAgentPromptConfigurationOutput() AgentPromptConfigurationOutput + ToAgentPromptConfigurationOutputWithContext(context.Context) AgentPromptConfigurationOutput +} + +// BasePromptConfiguration per Prompt Type. +type AgentPromptConfigurationArgs struct { + // Base Prompt Template. + BasePromptTemplate pulumi.StringPtrInput `pulumi:"basePromptTemplate"` + InferenceConfiguration AgentInferenceConfigurationPtrInput `pulumi:"inferenceConfiguration"` + ParserMode AgentCreationModePtrInput `pulumi:"parserMode"` + PromptCreationMode AgentCreationModePtrInput `pulumi:"promptCreationMode"` + PromptState AgentPromptStatePtrInput `pulumi:"promptState"` + PromptType AgentPromptTypePtrInput `pulumi:"promptType"` +} + +func (AgentPromptConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentPromptConfiguration)(nil)).Elem() +} + +func (i AgentPromptConfigurationArgs) ToAgentPromptConfigurationOutput() AgentPromptConfigurationOutput { + return i.ToAgentPromptConfigurationOutputWithContext(context.Background()) +} + +func (i AgentPromptConfigurationArgs) ToAgentPromptConfigurationOutputWithContext(ctx context.Context) AgentPromptConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentPromptConfigurationOutput) +} + +// AgentPromptConfigurationArrayInput is an input type that accepts AgentPromptConfigurationArray and AgentPromptConfigurationArrayOutput values. +// You can construct a concrete instance of `AgentPromptConfigurationArrayInput` via: +// +// AgentPromptConfigurationArray{ AgentPromptConfigurationArgs{...} } +type AgentPromptConfigurationArrayInput interface { + pulumi.Input + + ToAgentPromptConfigurationArrayOutput() AgentPromptConfigurationArrayOutput + ToAgentPromptConfigurationArrayOutputWithContext(context.Context) AgentPromptConfigurationArrayOutput +} + +type AgentPromptConfigurationArray []AgentPromptConfigurationInput + +func (AgentPromptConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AgentPromptConfiguration)(nil)).Elem() +} + +func (i AgentPromptConfigurationArray) ToAgentPromptConfigurationArrayOutput() AgentPromptConfigurationArrayOutput { + return i.ToAgentPromptConfigurationArrayOutputWithContext(context.Background()) +} + +func (i AgentPromptConfigurationArray) ToAgentPromptConfigurationArrayOutputWithContext(ctx context.Context) AgentPromptConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentPromptConfigurationArrayOutput) +} + +// BasePromptConfiguration per Prompt Type. +type AgentPromptConfigurationOutput struct{ *pulumi.OutputState } + +func (AgentPromptConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentPromptConfiguration)(nil)).Elem() +} + +func (o AgentPromptConfigurationOutput) ToAgentPromptConfigurationOutput() AgentPromptConfigurationOutput { + return o +} + +func (o AgentPromptConfigurationOutput) ToAgentPromptConfigurationOutputWithContext(ctx context.Context) AgentPromptConfigurationOutput { + return o +} + +// Base Prompt Template. +func (o AgentPromptConfigurationOutput) BasePromptTemplate() pulumi.StringPtrOutput { + return o.ApplyT(func(v AgentPromptConfiguration) *string { return v.BasePromptTemplate }).(pulumi.StringPtrOutput) +} + +func (o AgentPromptConfigurationOutput) InferenceConfiguration() AgentInferenceConfigurationPtrOutput { + return o.ApplyT(func(v AgentPromptConfiguration) *AgentInferenceConfiguration { return v.InferenceConfiguration }).(AgentInferenceConfigurationPtrOutput) +} + +func (o AgentPromptConfigurationOutput) ParserMode() AgentCreationModePtrOutput { + return o.ApplyT(func(v AgentPromptConfiguration) *AgentCreationMode { return v.ParserMode }).(AgentCreationModePtrOutput) +} + +func (o AgentPromptConfigurationOutput) PromptCreationMode() AgentCreationModePtrOutput { + return o.ApplyT(func(v AgentPromptConfiguration) *AgentCreationMode { return v.PromptCreationMode }).(AgentCreationModePtrOutput) +} + +func (o AgentPromptConfigurationOutput) PromptState() AgentPromptStatePtrOutput { + return o.ApplyT(func(v AgentPromptConfiguration) *AgentPromptState { return v.PromptState }).(AgentPromptStatePtrOutput) +} + +func (o AgentPromptConfigurationOutput) PromptType() AgentPromptTypePtrOutput { + return o.ApplyT(func(v AgentPromptConfiguration) *AgentPromptType { return v.PromptType }).(AgentPromptTypePtrOutput) +} + +type AgentPromptConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (AgentPromptConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AgentPromptConfiguration)(nil)).Elem() +} + +func (o AgentPromptConfigurationArrayOutput) ToAgentPromptConfigurationArrayOutput() AgentPromptConfigurationArrayOutput { + return o +} + +func (o AgentPromptConfigurationArrayOutput) ToAgentPromptConfigurationArrayOutputWithContext(ctx context.Context) AgentPromptConfigurationArrayOutput { + return o +} + +func (o AgentPromptConfigurationArrayOutput) Index(i pulumi.IntInput) AgentPromptConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AgentPromptConfiguration { + return vs[0].([]AgentPromptConfiguration)[vs[1].(int)] + }).(AgentPromptConfigurationOutput) +} + +// Configuration for prompt override. +type AgentPromptOverrideConfiguration struct { + // ARN of a Lambda. + OverrideLambda *string `pulumi:"overrideLambda"` + // List of BasePromptConfiguration + PromptConfigurations []AgentPromptConfiguration `pulumi:"promptConfigurations"` +} + +// AgentPromptOverrideConfigurationInput is an input type that accepts AgentPromptOverrideConfigurationArgs and AgentPromptOverrideConfigurationOutput values. +// You can construct a concrete instance of `AgentPromptOverrideConfigurationInput` via: +// +// AgentPromptOverrideConfigurationArgs{...} +type AgentPromptOverrideConfigurationInput interface { + pulumi.Input + + ToAgentPromptOverrideConfigurationOutput() AgentPromptOverrideConfigurationOutput + ToAgentPromptOverrideConfigurationOutputWithContext(context.Context) AgentPromptOverrideConfigurationOutput +} + +// Configuration for prompt override. +type AgentPromptOverrideConfigurationArgs struct { + // ARN of a Lambda. + OverrideLambda pulumi.StringPtrInput `pulumi:"overrideLambda"` + // List of BasePromptConfiguration + PromptConfigurations AgentPromptConfigurationArrayInput `pulumi:"promptConfigurations"` +} + +func (AgentPromptOverrideConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentPromptOverrideConfiguration)(nil)).Elem() +} + +func (i AgentPromptOverrideConfigurationArgs) ToAgentPromptOverrideConfigurationOutput() AgentPromptOverrideConfigurationOutput { + return i.ToAgentPromptOverrideConfigurationOutputWithContext(context.Background()) +} + +func (i AgentPromptOverrideConfigurationArgs) ToAgentPromptOverrideConfigurationOutputWithContext(ctx context.Context) AgentPromptOverrideConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentPromptOverrideConfigurationOutput) +} + +func (i AgentPromptOverrideConfigurationArgs) ToAgentPromptOverrideConfigurationPtrOutput() AgentPromptOverrideConfigurationPtrOutput { + return i.ToAgentPromptOverrideConfigurationPtrOutputWithContext(context.Background()) +} + +func (i AgentPromptOverrideConfigurationArgs) ToAgentPromptOverrideConfigurationPtrOutputWithContext(ctx context.Context) AgentPromptOverrideConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentPromptOverrideConfigurationOutput).ToAgentPromptOverrideConfigurationPtrOutputWithContext(ctx) +} + +// AgentPromptOverrideConfigurationPtrInput is an input type that accepts AgentPromptOverrideConfigurationArgs, AgentPromptOverrideConfigurationPtr and AgentPromptOverrideConfigurationPtrOutput values. +// You can construct a concrete instance of `AgentPromptOverrideConfigurationPtrInput` via: +// +// AgentPromptOverrideConfigurationArgs{...} +// +// or: +// +// nil +type AgentPromptOverrideConfigurationPtrInput interface { + pulumi.Input + + ToAgentPromptOverrideConfigurationPtrOutput() AgentPromptOverrideConfigurationPtrOutput + ToAgentPromptOverrideConfigurationPtrOutputWithContext(context.Context) AgentPromptOverrideConfigurationPtrOutput +} + +type agentPromptOverrideConfigurationPtrType AgentPromptOverrideConfigurationArgs + +func AgentPromptOverrideConfigurationPtr(v *AgentPromptOverrideConfigurationArgs) AgentPromptOverrideConfigurationPtrInput { + return (*agentPromptOverrideConfigurationPtrType)(v) +} + +func (*agentPromptOverrideConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AgentPromptOverrideConfiguration)(nil)).Elem() +} + +func (i *agentPromptOverrideConfigurationPtrType) ToAgentPromptOverrideConfigurationPtrOutput() AgentPromptOverrideConfigurationPtrOutput { + return i.ToAgentPromptOverrideConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *agentPromptOverrideConfigurationPtrType) ToAgentPromptOverrideConfigurationPtrOutputWithContext(ctx context.Context) AgentPromptOverrideConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentPromptOverrideConfigurationPtrOutput) +} + +// Configuration for prompt override. +type AgentPromptOverrideConfigurationOutput struct{ *pulumi.OutputState } + +func (AgentPromptOverrideConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentPromptOverrideConfiguration)(nil)).Elem() +} + +func (o AgentPromptOverrideConfigurationOutput) ToAgentPromptOverrideConfigurationOutput() AgentPromptOverrideConfigurationOutput { + return o +} + +func (o AgentPromptOverrideConfigurationOutput) ToAgentPromptOverrideConfigurationOutputWithContext(ctx context.Context) AgentPromptOverrideConfigurationOutput { + return o +} + +func (o AgentPromptOverrideConfigurationOutput) ToAgentPromptOverrideConfigurationPtrOutput() AgentPromptOverrideConfigurationPtrOutput { + return o.ToAgentPromptOverrideConfigurationPtrOutputWithContext(context.Background()) +} + +func (o AgentPromptOverrideConfigurationOutput) ToAgentPromptOverrideConfigurationPtrOutputWithContext(ctx context.Context) AgentPromptOverrideConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentPromptOverrideConfiguration) *AgentPromptOverrideConfiguration { + return &v + }).(AgentPromptOverrideConfigurationPtrOutput) +} + +// ARN of a Lambda. +func (o AgentPromptOverrideConfigurationOutput) OverrideLambda() pulumi.StringPtrOutput { + return o.ApplyT(func(v AgentPromptOverrideConfiguration) *string { return v.OverrideLambda }).(pulumi.StringPtrOutput) +} + +// List of BasePromptConfiguration +func (o AgentPromptOverrideConfigurationOutput) PromptConfigurations() AgentPromptConfigurationArrayOutput { + return o.ApplyT(func(v AgentPromptOverrideConfiguration) []AgentPromptConfiguration { return v.PromptConfigurations }).(AgentPromptConfigurationArrayOutput) +} + +type AgentPromptOverrideConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (AgentPromptOverrideConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentPromptOverrideConfiguration)(nil)).Elem() +} + +func (o AgentPromptOverrideConfigurationPtrOutput) ToAgentPromptOverrideConfigurationPtrOutput() AgentPromptOverrideConfigurationPtrOutput { + return o +} + +func (o AgentPromptOverrideConfigurationPtrOutput) ToAgentPromptOverrideConfigurationPtrOutputWithContext(ctx context.Context) AgentPromptOverrideConfigurationPtrOutput { + return o +} + +func (o AgentPromptOverrideConfigurationPtrOutput) Elem() AgentPromptOverrideConfigurationOutput { + return o.ApplyT(func(v *AgentPromptOverrideConfiguration) AgentPromptOverrideConfiguration { + if v != nil { + return *v + } + var ret AgentPromptOverrideConfiguration + return ret + }).(AgentPromptOverrideConfigurationOutput) +} + +// ARN of a Lambda. +func (o AgentPromptOverrideConfigurationPtrOutput) OverrideLambda() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AgentPromptOverrideConfiguration) *string { + if v == nil { + return nil + } + return v.OverrideLambda + }).(pulumi.StringPtrOutput) +} + +// List of BasePromptConfiguration +func (o AgentPromptOverrideConfigurationPtrOutput) PromptConfigurations() AgentPromptConfigurationArrayOutput { + return o.ApplyT(func(v *AgentPromptOverrideConfiguration) []AgentPromptConfiguration { + if v == nil { + return nil + } + return v.PromptConfigurations + }).(AgentPromptConfigurationArrayOutput) +} + +// The identifier for the S3 resource. +type AgentS3Identifier struct { + // A bucket in S3. + S3BucketName *string `pulumi:"s3BucketName"` + // A object key in S3. + S3ObjectKey *string `pulumi:"s3ObjectKey"` +} + +// AgentS3IdentifierInput is an input type that accepts AgentS3IdentifierArgs and AgentS3IdentifierOutput values. +// You can construct a concrete instance of `AgentS3IdentifierInput` via: +// +// AgentS3IdentifierArgs{...} +type AgentS3IdentifierInput interface { + pulumi.Input + + ToAgentS3IdentifierOutput() AgentS3IdentifierOutput + ToAgentS3IdentifierOutputWithContext(context.Context) AgentS3IdentifierOutput +} + +// The identifier for the S3 resource. +type AgentS3IdentifierArgs struct { + // A bucket in S3. + S3BucketName pulumi.StringPtrInput `pulumi:"s3BucketName"` + // A object key in S3. + S3ObjectKey pulumi.StringPtrInput `pulumi:"s3ObjectKey"` +} + +func (AgentS3IdentifierArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AgentS3Identifier)(nil)).Elem() +} + +func (i AgentS3IdentifierArgs) ToAgentS3IdentifierOutput() AgentS3IdentifierOutput { + return i.ToAgentS3IdentifierOutputWithContext(context.Background()) +} + +func (i AgentS3IdentifierArgs) ToAgentS3IdentifierOutputWithContext(ctx context.Context) AgentS3IdentifierOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentS3IdentifierOutput) +} + +func (i AgentS3IdentifierArgs) ToAgentS3IdentifierPtrOutput() AgentS3IdentifierPtrOutput { + return i.ToAgentS3IdentifierPtrOutputWithContext(context.Background()) +} + +func (i AgentS3IdentifierArgs) ToAgentS3IdentifierPtrOutputWithContext(ctx context.Context) AgentS3IdentifierPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentS3IdentifierOutput).ToAgentS3IdentifierPtrOutputWithContext(ctx) +} + +// AgentS3IdentifierPtrInput is an input type that accepts AgentS3IdentifierArgs, AgentS3IdentifierPtr and AgentS3IdentifierPtrOutput values. +// You can construct a concrete instance of `AgentS3IdentifierPtrInput` via: +// +// AgentS3IdentifierArgs{...} +// +// or: +// +// nil +type AgentS3IdentifierPtrInput interface { + pulumi.Input + + ToAgentS3IdentifierPtrOutput() AgentS3IdentifierPtrOutput + ToAgentS3IdentifierPtrOutputWithContext(context.Context) AgentS3IdentifierPtrOutput +} + +type agentS3IdentifierPtrType AgentS3IdentifierArgs + +func AgentS3IdentifierPtr(v *AgentS3IdentifierArgs) AgentS3IdentifierPtrInput { + return (*agentS3IdentifierPtrType)(v) +} + +func (*agentS3IdentifierPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AgentS3Identifier)(nil)).Elem() +} + +func (i *agentS3IdentifierPtrType) ToAgentS3IdentifierPtrOutput() AgentS3IdentifierPtrOutput { + return i.ToAgentS3IdentifierPtrOutputWithContext(context.Background()) +} + +func (i *agentS3IdentifierPtrType) ToAgentS3IdentifierPtrOutputWithContext(ctx context.Context) AgentS3IdentifierPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AgentS3IdentifierPtrOutput) +} + +// The identifier for the S3 resource. +type AgentS3IdentifierOutput struct{ *pulumi.OutputState } + +func (AgentS3IdentifierOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AgentS3Identifier)(nil)).Elem() +} + +func (o AgentS3IdentifierOutput) ToAgentS3IdentifierOutput() AgentS3IdentifierOutput { + return o +} + +func (o AgentS3IdentifierOutput) ToAgentS3IdentifierOutputWithContext(ctx context.Context) AgentS3IdentifierOutput { + return o +} + +func (o AgentS3IdentifierOutput) ToAgentS3IdentifierPtrOutput() AgentS3IdentifierPtrOutput { + return o.ToAgentS3IdentifierPtrOutputWithContext(context.Background()) +} + +func (o AgentS3IdentifierOutput) ToAgentS3IdentifierPtrOutputWithContext(ctx context.Context) AgentS3IdentifierPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AgentS3Identifier) *AgentS3Identifier { + return &v + }).(AgentS3IdentifierPtrOutput) +} + +// A bucket in S3. +func (o AgentS3IdentifierOutput) S3BucketName() pulumi.StringPtrOutput { + return o.ApplyT(func(v AgentS3Identifier) *string { return v.S3BucketName }).(pulumi.StringPtrOutput) +} + +// A object key in S3. +func (o AgentS3IdentifierOutput) S3ObjectKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v AgentS3Identifier) *string { return v.S3ObjectKey }).(pulumi.StringPtrOutput) +} + +type AgentS3IdentifierPtrOutput struct{ *pulumi.OutputState } + +func (AgentS3IdentifierPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AgentS3Identifier)(nil)).Elem() +} + +func (o AgentS3IdentifierPtrOutput) ToAgentS3IdentifierPtrOutput() AgentS3IdentifierPtrOutput { + return o +} + +func (o AgentS3IdentifierPtrOutput) ToAgentS3IdentifierPtrOutputWithContext(ctx context.Context) AgentS3IdentifierPtrOutput { + return o +} + +func (o AgentS3IdentifierPtrOutput) Elem() AgentS3IdentifierOutput { + return o.ApplyT(func(v *AgentS3Identifier) AgentS3Identifier { + if v != nil { + return *v + } + var ret AgentS3Identifier + return ret + }).(AgentS3IdentifierOutput) +} + +// A bucket in S3. +func (o AgentS3IdentifierPtrOutput) S3BucketName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AgentS3Identifier) *string { + if v == nil { + return nil + } + return v.S3BucketName + }).(pulumi.StringPtrOutput) +} + +// A object key in S3. +func (o AgentS3IdentifierPtrOutput) S3ObjectKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AgentS3Identifier) *string { + if v == nil { + return nil + } + return v.S3ObjectKey + }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AgentActionGroupInput)(nil)).Elem(), AgentActionGroupArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentActionGroupArrayInput)(nil)).Elem(), AgentActionGroupArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentActionGroupExecutorInput)(nil)).Elem(), AgentActionGroupExecutorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentActionGroupExecutorPtrInput)(nil)).Elem(), AgentActionGroupExecutorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentAliasRoutingConfigurationListItemInput)(nil)).Elem(), AgentAliasRoutingConfigurationListItemArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentAliasRoutingConfigurationListItemArrayInput)(nil)).Elem(), AgentAliasRoutingConfigurationListItemArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentApiSchema0PropertiesInput)(nil)).Elem(), AgentApiSchema0PropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentApiSchema0PropertiesPtrInput)(nil)).Elem(), AgentApiSchema0PropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentApiSchema1PropertiesInput)(nil)).Elem(), AgentApiSchema1PropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentApiSchema1PropertiesPtrInput)(nil)).Elem(), AgentApiSchema1PropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentInferenceConfigurationInput)(nil)).Elem(), AgentInferenceConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentInferenceConfigurationPtrInput)(nil)).Elem(), AgentInferenceConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentKnowledgeBaseInput)(nil)).Elem(), AgentKnowledgeBaseArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentKnowledgeBaseArrayInput)(nil)).Elem(), AgentKnowledgeBaseArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentPromptConfigurationInput)(nil)).Elem(), AgentPromptConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentPromptConfigurationArrayInput)(nil)).Elem(), AgentPromptConfigurationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentPromptOverrideConfigurationInput)(nil)).Elem(), AgentPromptOverrideConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentPromptOverrideConfigurationPtrInput)(nil)).Elem(), AgentPromptOverrideConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentS3IdentifierInput)(nil)).Elem(), AgentS3IdentifierArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AgentS3IdentifierPtrInput)(nil)).Elem(), AgentS3IdentifierArgs{}) + pulumi.RegisterOutputType(AgentActionGroupOutput{}) + pulumi.RegisterOutputType(AgentActionGroupArrayOutput{}) + pulumi.RegisterOutputType(AgentActionGroupExecutorOutput{}) + pulumi.RegisterOutputType(AgentActionGroupExecutorPtrOutput{}) + pulumi.RegisterOutputType(AgentAliasHistoryEventOutput{}) + pulumi.RegisterOutputType(AgentAliasHistoryEventArrayOutput{}) + pulumi.RegisterOutputType(AgentAliasRoutingConfigurationListItemOutput{}) + pulumi.RegisterOutputType(AgentAliasRoutingConfigurationListItemArrayOutput{}) + pulumi.RegisterOutputType(AgentApiSchema0PropertiesOutput{}) + pulumi.RegisterOutputType(AgentApiSchema0PropertiesPtrOutput{}) + pulumi.RegisterOutputType(AgentApiSchema1PropertiesOutput{}) + pulumi.RegisterOutputType(AgentApiSchema1PropertiesPtrOutput{}) + pulumi.RegisterOutputType(AgentInferenceConfigurationOutput{}) + pulumi.RegisterOutputType(AgentInferenceConfigurationPtrOutput{}) + pulumi.RegisterOutputType(AgentKnowledgeBaseOutput{}) + pulumi.RegisterOutputType(AgentKnowledgeBaseArrayOutput{}) + pulumi.RegisterOutputType(AgentPromptConfigurationOutput{}) + pulumi.RegisterOutputType(AgentPromptConfigurationArrayOutput{}) + pulumi.RegisterOutputType(AgentPromptOverrideConfigurationOutput{}) + pulumi.RegisterOutputType(AgentPromptOverrideConfigurationPtrOutput{}) + pulumi.RegisterOutputType(AgentS3IdentifierOutput{}) + pulumi.RegisterOutputType(AgentS3IdentifierPtrOutput{}) +} diff --git a/sdk/go/aws/cleanrooms/pulumiEnums.go b/sdk/go/aws/cleanrooms/pulumiEnums.go index 531f86154a..ffa86de2c9 100644 --- a/sdk/go/aws/cleanrooms/pulumiEnums.go +++ b/sdk/go/aws/cleanrooms/pulumiEnums.go @@ -1779,19 +1779,30 @@ func (in *configuredTableJoinRequiredOptionPtr) ToConfiguredTableJoinRequiredOpt type ConfiguredTableScalarFunctions string const ( - ConfiguredTableScalarFunctionsTrunc = ConfiguredTableScalarFunctions("TRUNC") - ConfiguredTableScalarFunctionsAbs = ConfiguredTableScalarFunctions("ABS") - ConfiguredTableScalarFunctionsCeiling = ConfiguredTableScalarFunctions("CEILING") - ConfiguredTableScalarFunctionsFloor = ConfiguredTableScalarFunctions("FLOOR") - ConfiguredTableScalarFunctionsLn = ConfiguredTableScalarFunctions("LN") - ConfiguredTableScalarFunctionsLog = ConfiguredTableScalarFunctions("LOG") - ConfiguredTableScalarFunctionsRound = ConfiguredTableScalarFunctions("ROUND") - ConfiguredTableScalarFunctionsSqrt = ConfiguredTableScalarFunctions("SQRT") - ConfiguredTableScalarFunctionsCast = ConfiguredTableScalarFunctions("CAST") - ConfiguredTableScalarFunctionsLower = ConfiguredTableScalarFunctions("LOWER") - ConfiguredTableScalarFunctionsRtrim = ConfiguredTableScalarFunctions("RTRIM") - ConfiguredTableScalarFunctionsUpper = ConfiguredTableScalarFunctions("UPPER") - ConfiguredTableScalarFunctionsCoalesce = ConfiguredTableScalarFunctions("COALESCE") + ConfiguredTableScalarFunctionsTrunc = ConfiguredTableScalarFunctions("TRUNC") + ConfiguredTableScalarFunctionsAbs = ConfiguredTableScalarFunctions("ABS") + ConfiguredTableScalarFunctionsCeiling = ConfiguredTableScalarFunctions("CEILING") + ConfiguredTableScalarFunctionsFloor = ConfiguredTableScalarFunctions("FLOOR") + ConfiguredTableScalarFunctionsLn = ConfiguredTableScalarFunctions("LN") + ConfiguredTableScalarFunctionsLog = ConfiguredTableScalarFunctions("LOG") + ConfiguredTableScalarFunctionsRound = ConfiguredTableScalarFunctions("ROUND") + ConfiguredTableScalarFunctionsSqrt = ConfiguredTableScalarFunctions("SQRT") + ConfiguredTableScalarFunctionsCast = ConfiguredTableScalarFunctions("CAST") + ConfiguredTableScalarFunctionsLower = ConfiguredTableScalarFunctions("LOWER") + ConfiguredTableScalarFunctionsRtrim = ConfiguredTableScalarFunctions("RTRIM") + ConfiguredTableScalarFunctionsUpper = ConfiguredTableScalarFunctions("UPPER") + ConfiguredTableScalarFunctionsCoalesce = ConfiguredTableScalarFunctions("COALESCE") + ConfiguredTableScalarFunctionsConvert = ConfiguredTableScalarFunctions("CONVERT") + ConfiguredTableScalarFunctionsCurrentDate = ConfiguredTableScalarFunctions("CURRENT_DATE") + ConfiguredTableScalarFunctionsDateadd = ConfiguredTableScalarFunctions("DATEADD") + ConfiguredTableScalarFunctionsExtract = ConfiguredTableScalarFunctions("EXTRACT") + ConfiguredTableScalarFunctionsGetdate = ConfiguredTableScalarFunctions("GETDATE") + ConfiguredTableScalarFunctionsSubstring = ConfiguredTableScalarFunctions("SUBSTRING") + ConfiguredTableScalarFunctionsToChar = ConfiguredTableScalarFunctions("TO_CHAR") + ConfiguredTableScalarFunctionsToDate = ConfiguredTableScalarFunctions("TO_DATE") + ConfiguredTableScalarFunctionsToNumber = ConfiguredTableScalarFunctions("TO_NUMBER") + ConfiguredTableScalarFunctionsToTimestamp = ConfiguredTableScalarFunctions("TO_TIMESTAMP") + ConfiguredTableScalarFunctionsTrim = ConfiguredTableScalarFunctions("TRIM") ) func (ConfiguredTableScalarFunctions) ElementType() reflect.Type { @@ -1929,6 +1940,17 @@ func (o ConfiguredTableScalarFunctionsPtrOutput) ToStringPtrOutputWithContext(ct // ConfiguredTableScalarFunctionsRtrim // ConfiguredTableScalarFunctionsUpper // ConfiguredTableScalarFunctionsCoalesce +// ConfiguredTableScalarFunctionsConvert +// ConfiguredTableScalarFunctionsCurrentDate +// ConfiguredTableScalarFunctionsDateadd +// ConfiguredTableScalarFunctionsExtract +// ConfiguredTableScalarFunctionsGetdate +// ConfiguredTableScalarFunctionsSubstring +// ConfiguredTableScalarFunctionsToChar +// ConfiguredTableScalarFunctionsToDate +// ConfiguredTableScalarFunctionsToNumber +// ConfiguredTableScalarFunctionsToTimestamp +// ConfiguredTableScalarFunctionsTrim type ConfiguredTableScalarFunctionsInput interface { pulumi.Input diff --git a/sdk/go/aws/cleanrooms/pulumiTypes.go b/sdk/go/aws/cleanrooms/pulumiTypes.go index bbdb1c441b..a22089e02a 100644 --- a/sdk/go/aws/cleanrooms/pulumiTypes.go +++ b/sdk/go/aws/cleanrooms/pulumiTypes.go @@ -1195,8 +1195,9 @@ func (o ConfiguredTableAnalysisRuleAggregationOutput) ScalarFunctions() Configur } type ConfiguredTableAnalysisRuleCustom struct { - AllowedAnalyses []string `pulumi:"allowedAnalyses"` - AllowedAnalysisProviders []string `pulumi:"allowedAnalysisProviders"` + AllowedAnalyses []string `pulumi:"allowedAnalyses"` + AllowedAnalysisProviders []string `pulumi:"allowedAnalysisProviders"` + DifferentialPrivacy *ConfiguredTableDifferentialPrivacy `pulumi:"differentialPrivacy"` } // ConfiguredTableAnalysisRuleCustomInput is an input type that accepts ConfiguredTableAnalysisRuleCustomArgs and ConfiguredTableAnalysisRuleCustomOutput values. @@ -1211,8 +1212,9 @@ type ConfiguredTableAnalysisRuleCustomInput interface { } type ConfiguredTableAnalysisRuleCustomArgs struct { - AllowedAnalyses pulumi.StringArrayInput `pulumi:"allowedAnalyses"` - AllowedAnalysisProviders pulumi.StringArrayInput `pulumi:"allowedAnalysisProviders"` + AllowedAnalyses pulumi.StringArrayInput `pulumi:"allowedAnalyses"` + AllowedAnalysisProviders pulumi.StringArrayInput `pulumi:"allowedAnalysisProviders"` + DifferentialPrivacy ConfiguredTableDifferentialPrivacyPtrInput `pulumi:"differentialPrivacy"` } func (ConfiguredTableAnalysisRuleCustomArgs) ElementType() reflect.Type { @@ -1249,6 +1251,12 @@ func (o ConfiguredTableAnalysisRuleCustomOutput) AllowedAnalysisProviders() pulu return o.ApplyT(func(v ConfiguredTableAnalysisRuleCustom) []string { return v.AllowedAnalysisProviders }).(pulumi.StringArrayOutput) } +func (o ConfiguredTableAnalysisRuleCustomOutput) DifferentialPrivacy() ConfiguredTableDifferentialPrivacyPtrOutput { + return o.ApplyT(func(v ConfiguredTableAnalysisRuleCustom) *ConfiguredTableDifferentialPrivacy { + return v.DifferentialPrivacy + }).(ConfiguredTableDifferentialPrivacyPtrOutput) +} + type ConfiguredTableAnalysisRuleList struct { AllowedJoinOperators []ConfiguredTableJoinOperator `pulumi:"allowedJoinOperators"` JoinColumns []string `pulumi:"joinColumns"` @@ -1515,6 +1523,235 @@ type ConfiguredTableAssociationTag struct { Value string `pulumi:"value"` } +type ConfiguredTableDifferentialPrivacy struct { + Columns []ConfiguredTableDifferentialPrivacyColumn `pulumi:"columns"` +} + +// ConfiguredTableDifferentialPrivacyInput is an input type that accepts ConfiguredTableDifferentialPrivacyArgs and ConfiguredTableDifferentialPrivacyOutput values. +// You can construct a concrete instance of `ConfiguredTableDifferentialPrivacyInput` via: +// +// ConfiguredTableDifferentialPrivacyArgs{...} +type ConfiguredTableDifferentialPrivacyInput interface { + pulumi.Input + + ToConfiguredTableDifferentialPrivacyOutput() ConfiguredTableDifferentialPrivacyOutput + ToConfiguredTableDifferentialPrivacyOutputWithContext(context.Context) ConfiguredTableDifferentialPrivacyOutput +} + +type ConfiguredTableDifferentialPrivacyArgs struct { + Columns ConfiguredTableDifferentialPrivacyColumnArrayInput `pulumi:"columns"` +} + +func (ConfiguredTableDifferentialPrivacyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ConfiguredTableDifferentialPrivacy)(nil)).Elem() +} + +func (i ConfiguredTableDifferentialPrivacyArgs) ToConfiguredTableDifferentialPrivacyOutput() ConfiguredTableDifferentialPrivacyOutput { + return i.ToConfiguredTableDifferentialPrivacyOutputWithContext(context.Background()) +} + +func (i ConfiguredTableDifferentialPrivacyArgs) ToConfiguredTableDifferentialPrivacyOutputWithContext(ctx context.Context) ConfiguredTableDifferentialPrivacyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConfiguredTableDifferentialPrivacyOutput) +} + +func (i ConfiguredTableDifferentialPrivacyArgs) ToConfiguredTableDifferentialPrivacyPtrOutput() ConfiguredTableDifferentialPrivacyPtrOutput { + return i.ToConfiguredTableDifferentialPrivacyPtrOutputWithContext(context.Background()) +} + +func (i ConfiguredTableDifferentialPrivacyArgs) ToConfiguredTableDifferentialPrivacyPtrOutputWithContext(ctx context.Context) ConfiguredTableDifferentialPrivacyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConfiguredTableDifferentialPrivacyOutput).ToConfiguredTableDifferentialPrivacyPtrOutputWithContext(ctx) +} + +// ConfiguredTableDifferentialPrivacyPtrInput is an input type that accepts ConfiguredTableDifferentialPrivacyArgs, ConfiguredTableDifferentialPrivacyPtr and ConfiguredTableDifferentialPrivacyPtrOutput values. +// You can construct a concrete instance of `ConfiguredTableDifferentialPrivacyPtrInput` via: +// +// ConfiguredTableDifferentialPrivacyArgs{...} +// +// or: +// +// nil +type ConfiguredTableDifferentialPrivacyPtrInput interface { + pulumi.Input + + ToConfiguredTableDifferentialPrivacyPtrOutput() ConfiguredTableDifferentialPrivacyPtrOutput + ToConfiguredTableDifferentialPrivacyPtrOutputWithContext(context.Context) ConfiguredTableDifferentialPrivacyPtrOutput +} + +type configuredTableDifferentialPrivacyPtrType ConfiguredTableDifferentialPrivacyArgs + +func ConfiguredTableDifferentialPrivacyPtr(v *ConfiguredTableDifferentialPrivacyArgs) ConfiguredTableDifferentialPrivacyPtrInput { + return (*configuredTableDifferentialPrivacyPtrType)(v) +} + +func (*configuredTableDifferentialPrivacyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ConfiguredTableDifferentialPrivacy)(nil)).Elem() +} + +func (i *configuredTableDifferentialPrivacyPtrType) ToConfiguredTableDifferentialPrivacyPtrOutput() ConfiguredTableDifferentialPrivacyPtrOutput { + return i.ToConfiguredTableDifferentialPrivacyPtrOutputWithContext(context.Background()) +} + +func (i *configuredTableDifferentialPrivacyPtrType) ToConfiguredTableDifferentialPrivacyPtrOutputWithContext(ctx context.Context) ConfiguredTableDifferentialPrivacyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConfiguredTableDifferentialPrivacyPtrOutput) +} + +type ConfiguredTableDifferentialPrivacyOutput struct{ *pulumi.OutputState } + +func (ConfiguredTableDifferentialPrivacyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ConfiguredTableDifferentialPrivacy)(nil)).Elem() +} + +func (o ConfiguredTableDifferentialPrivacyOutput) ToConfiguredTableDifferentialPrivacyOutput() ConfiguredTableDifferentialPrivacyOutput { + return o +} + +func (o ConfiguredTableDifferentialPrivacyOutput) ToConfiguredTableDifferentialPrivacyOutputWithContext(ctx context.Context) ConfiguredTableDifferentialPrivacyOutput { + return o +} + +func (o ConfiguredTableDifferentialPrivacyOutput) ToConfiguredTableDifferentialPrivacyPtrOutput() ConfiguredTableDifferentialPrivacyPtrOutput { + return o.ToConfiguredTableDifferentialPrivacyPtrOutputWithContext(context.Background()) +} + +func (o ConfiguredTableDifferentialPrivacyOutput) ToConfiguredTableDifferentialPrivacyPtrOutputWithContext(ctx context.Context) ConfiguredTableDifferentialPrivacyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ConfiguredTableDifferentialPrivacy) *ConfiguredTableDifferentialPrivacy { + return &v + }).(ConfiguredTableDifferentialPrivacyPtrOutput) +} + +func (o ConfiguredTableDifferentialPrivacyOutput) Columns() ConfiguredTableDifferentialPrivacyColumnArrayOutput { + return o.ApplyT(func(v ConfiguredTableDifferentialPrivacy) []ConfiguredTableDifferentialPrivacyColumn { + return v.Columns + }).(ConfiguredTableDifferentialPrivacyColumnArrayOutput) +} + +type ConfiguredTableDifferentialPrivacyPtrOutput struct{ *pulumi.OutputState } + +func (ConfiguredTableDifferentialPrivacyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ConfiguredTableDifferentialPrivacy)(nil)).Elem() +} + +func (o ConfiguredTableDifferentialPrivacyPtrOutput) ToConfiguredTableDifferentialPrivacyPtrOutput() ConfiguredTableDifferentialPrivacyPtrOutput { + return o +} + +func (o ConfiguredTableDifferentialPrivacyPtrOutput) ToConfiguredTableDifferentialPrivacyPtrOutputWithContext(ctx context.Context) ConfiguredTableDifferentialPrivacyPtrOutput { + return o +} + +func (o ConfiguredTableDifferentialPrivacyPtrOutput) Elem() ConfiguredTableDifferentialPrivacyOutput { + return o.ApplyT(func(v *ConfiguredTableDifferentialPrivacy) ConfiguredTableDifferentialPrivacy { + if v != nil { + return *v + } + var ret ConfiguredTableDifferentialPrivacy + return ret + }).(ConfiguredTableDifferentialPrivacyOutput) +} + +func (o ConfiguredTableDifferentialPrivacyPtrOutput) Columns() ConfiguredTableDifferentialPrivacyColumnArrayOutput { + return o.ApplyT(func(v *ConfiguredTableDifferentialPrivacy) []ConfiguredTableDifferentialPrivacyColumn { + if v == nil { + return nil + } + return v.Columns + }).(ConfiguredTableDifferentialPrivacyColumnArrayOutput) +} + +type ConfiguredTableDifferentialPrivacyColumn struct { + Name string `pulumi:"name"` +} + +// ConfiguredTableDifferentialPrivacyColumnInput is an input type that accepts ConfiguredTableDifferentialPrivacyColumnArgs and ConfiguredTableDifferentialPrivacyColumnOutput values. +// You can construct a concrete instance of `ConfiguredTableDifferentialPrivacyColumnInput` via: +// +// ConfiguredTableDifferentialPrivacyColumnArgs{...} +type ConfiguredTableDifferentialPrivacyColumnInput interface { + pulumi.Input + + ToConfiguredTableDifferentialPrivacyColumnOutput() ConfiguredTableDifferentialPrivacyColumnOutput + ToConfiguredTableDifferentialPrivacyColumnOutputWithContext(context.Context) ConfiguredTableDifferentialPrivacyColumnOutput +} + +type ConfiguredTableDifferentialPrivacyColumnArgs struct { + Name pulumi.StringInput `pulumi:"name"` +} + +func (ConfiguredTableDifferentialPrivacyColumnArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ConfiguredTableDifferentialPrivacyColumn)(nil)).Elem() +} + +func (i ConfiguredTableDifferentialPrivacyColumnArgs) ToConfiguredTableDifferentialPrivacyColumnOutput() ConfiguredTableDifferentialPrivacyColumnOutput { + return i.ToConfiguredTableDifferentialPrivacyColumnOutputWithContext(context.Background()) +} + +func (i ConfiguredTableDifferentialPrivacyColumnArgs) ToConfiguredTableDifferentialPrivacyColumnOutputWithContext(ctx context.Context) ConfiguredTableDifferentialPrivacyColumnOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConfiguredTableDifferentialPrivacyColumnOutput) +} + +// ConfiguredTableDifferentialPrivacyColumnArrayInput is an input type that accepts ConfiguredTableDifferentialPrivacyColumnArray and ConfiguredTableDifferentialPrivacyColumnArrayOutput values. +// You can construct a concrete instance of `ConfiguredTableDifferentialPrivacyColumnArrayInput` via: +// +// ConfiguredTableDifferentialPrivacyColumnArray{ ConfiguredTableDifferentialPrivacyColumnArgs{...} } +type ConfiguredTableDifferentialPrivacyColumnArrayInput interface { + pulumi.Input + + ToConfiguredTableDifferentialPrivacyColumnArrayOutput() ConfiguredTableDifferentialPrivacyColumnArrayOutput + ToConfiguredTableDifferentialPrivacyColumnArrayOutputWithContext(context.Context) ConfiguredTableDifferentialPrivacyColumnArrayOutput +} + +type ConfiguredTableDifferentialPrivacyColumnArray []ConfiguredTableDifferentialPrivacyColumnInput + +func (ConfiguredTableDifferentialPrivacyColumnArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ConfiguredTableDifferentialPrivacyColumn)(nil)).Elem() +} + +func (i ConfiguredTableDifferentialPrivacyColumnArray) ToConfiguredTableDifferentialPrivacyColumnArrayOutput() ConfiguredTableDifferentialPrivacyColumnArrayOutput { + return i.ToConfiguredTableDifferentialPrivacyColumnArrayOutputWithContext(context.Background()) +} + +func (i ConfiguredTableDifferentialPrivacyColumnArray) ToConfiguredTableDifferentialPrivacyColumnArrayOutputWithContext(ctx context.Context) ConfiguredTableDifferentialPrivacyColumnArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConfiguredTableDifferentialPrivacyColumnArrayOutput) +} + +type ConfiguredTableDifferentialPrivacyColumnOutput struct{ *pulumi.OutputState } + +func (ConfiguredTableDifferentialPrivacyColumnOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ConfiguredTableDifferentialPrivacyColumn)(nil)).Elem() +} + +func (o ConfiguredTableDifferentialPrivacyColumnOutput) ToConfiguredTableDifferentialPrivacyColumnOutput() ConfiguredTableDifferentialPrivacyColumnOutput { + return o +} + +func (o ConfiguredTableDifferentialPrivacyColumnOutput) ToConfiguredTableDifferentialPrivacyColumnOutputWithContext(ctx context.Context) ConfiguredTableDifferentialPrivacyColumnOutput { + return o +} + +func (o ConfiguredTableDifferentialPrivacyColumnOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v ConfiguredTableDifferentialPrivacyColumn) string { return v.Name }).(pulumi.StringOutput) +} + +type ConfiguredTableDifferentialPrivacyColumnArrayOutput struct{ *pulumi.OutputState } + +func (ConfiguredTableDifferentialPrivacyColumnArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ConfiguredTableDifferentialPrivacyColumn)(nil)).Elem() +} + +func (o ConfiguredTableDifferentialPrivacyColumnArrayOutput) ToConfiguredTableDifferentialPrivacyColumnArrayOutput() ConfiguredTableDifferentialPrivacyColumnArrayOutput { + return o +} + +func (o ConfiguredTableDifferentialPrivacyColumnArrayOutput) ToConfiguredTableDifferentialPrivacyColumnArrayOutputWithContext(ctx context.Context) ConfiguredTableDifferentialPrivacyColumnArrayOutput { + return o +} + +func (o ConfiguredTableDifferentialPrivacyColumnArrayOutput) Index(i pulumi.IntInput) ConfiguredTableDifferentialPrivacyColumnOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ConfiguredTableDifferentialPrivacyColumn { + return vs[0].([]ConfiguredTableDifferentialPrivacyColumn)[vs[1].(int)] + }).(ConfiguredTableDifferentialPrivacyColumnOutput) +} + type ConfiguredTableGlueTableReference struct { DatabaseName string `pulumi:"databaseName"` TableName string `pulumi:"tableName"` @@ -2368,6 +2605,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ConfiguredTableAnalysisRulePolicyV10PropertiesInput)(nil)).Elem(), ConfiguredTableAnalysisRulePolicyV10PropertiesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConfiguredTableAnalysisRulePolicyV11PropertiesInput)(nil)).Elem(), ConfiguredTableAnalysisRulePolicyV11PropertiesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConfiguredTableAnalysisRulePolicyV12PropertiesInput)(nil)).Elem(), ConfiguredTableAnalysisRulePolicyV12PropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ConfiguredTableDifferentialPrivacyInput)(nil)).Elem(), ConfiguredTableDifferentialPrivacyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ConfiguredTableDifferentialPrivacyPtrInput)(nil)).Elem(), ConfiguredTableDifferentialPrivacyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ConfiguredTableDifferentialPrivacyColumnInput)(nil)).Elem(), ConfiguredTableDifferentialPrivacyColumnArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ConfiguredTableDifferentialPrivacyColumnArrayInput)(nil)).Elem(), ConfiguredTableDifferentialPrivacyColumnArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ConfiguredTableGlueTableReferenceInput)(nil)).Elem(), ConfiguredTableGlueTableReferenceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConfiguredTableTableReferenceInput)(nil)).Elem(), ConfiguredTableTableReferenceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MembershipPaymentConfigurationInput)(nil)).Elem(), MembershipPaymentConfigurationArgs{}) @@ -2406,6 +2647,10 @@ func init() { pulumi.RegisterOutputType(ConfiguredTableAnalysisRulePolicyV10PropertiesOutput{}) pulumi.RegisterOutputType(ConfiguredTableAnalysisRulePolicyV11PropertiesOutput{}) pulumi.RegisterOutputType(ConfiguredTableAnalysisRulePolicyV12PropertiesOutput{}) + pulumi.RegisterOutputType(ConfiguredTableDifferentialPrivacyOutput{}) + pulumi.RegisterOutputType(ConfiguredTableDifferentialPrivacyPtrOutput{}) + pulumi.RegisterOutputType(ConfiguredTableDifferentialPrivacyColumnOutput{}) + pulumi.RegisterOutputType(ConfiguredTableDifferentialPrivacyColumnArrayOutput{}) pulumi.RegisterOutputType(ConfiguredTableGlueTableReferenceOutput{}) pulumi.RegisterOutputType(ConfiguredTableTableReferenceOutput{}) pulumi.RegisterOutputType(MembershipPaymentConfigurationOutput{}) diff --git a/sdk/go/aws/cloudfront/pulumiTypes.go b/sdk/go/aws/cloudfront/pulumiTypes.go index efe6e9780a..f3338aff7c 100644 --- a/sdk/go/aws/cloudfront/pulumiTypes.go +++ b/sdk/go/aws/cloudfront/pulumiTypes.go @@ -1774,7 +1774,9 @@ func (o ContinuousDeploymentPolicyTrafficConfigPtrOutput) Type() ContinuousDeplo // You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to serve objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin is never used. // For the current quota (formerly known as limit) on the number of cache behaviors that you can add to a distribution, see [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) in the *Amazon CloudFront Developer Guide*. // If you don't want to specify any cache behaviors, include only an empty ``CacheBehaviors`` element. Don't include an empty ``CacheBehavior`` element because this is invalid. -// To delete all cache behaviors in an exist +// To delete all cache behaviors in an existing distribution, update the distribution configuration and include only an empty ``CacheBehaviors`` element. +// To add, change, or remove one or more cache behaviors, update the distribution configuration and specify all of the cache behaviors that you want to include in the updated distribution. +// For more information about cache behaviors, see [Cache Behavior Settings](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesCacheBehavior) in the *Amazon CloudFront Developer Guide*. type DistributionCacheBehavior struct { // A complex type that controls which HTTP methods CloudFront processes and forwards to your Amazon S3 bucket or your custom origin. There are three choices: // + CloudFront forwards only ``GET`` and ``HEAD`` requests. @@ -1795,24 +1797,26 @@ type DistributionCacheBehavior struct { // Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify true; if not, specify false. For more information, see [Serving Compressed Files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html) in the *Amazon CloudFront Developer Guide*. Compress *bool `pulumi:"compress"` // This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - // The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide + // The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. DefaultTtl *float64 `pulumi:"defaultTtl"` // The value of ``ID`` for the field-level encryption configuration that you want CloudFront to use for encrypting specific fields of data for this cache behavior. FieldLevelEncryptionId *string `pulumi:"fieldLevelEncryptionId"` // This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. // If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - // If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r + // If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. + // A ``CacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. + // A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. ForwardedValues *DistributionForwardedValues `pulumi:"forwardedValues"` // A list of CloudFront functions that are associated with this cache behavior. CloudFront functions must be published to the ``LIVE`` stage to associate them with a cache behavior. FunctionAssociations []DistributionFunctionAssociation `pulumi:"functionAssociations"` // A complex type that contains zero or more Lambda@Edge function associations for a cache behavior. LambdaFunctionAssociations []DistributionLambdaFunctionAssociation `pulumi:"lambdaFunctionAssociations"` // This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - // The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. + // The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. MaxTtl *float64 `pulumi:"maxTtl"` // This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. // The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. - // You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He + // You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). MinTtl *float64 `pulumi:"minTtl"` // The unique identifier of the origin request policy that is attached to this cache behavior. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. OriginRequestPolicyId *string `pulumi:"originRequestPolicyId"` @@ -1842,7 +1846,7 @@ type DistributionCacheBehavior struct { // + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). // // For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. - // The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol + // The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. ViewerProtocolPolicy string `pulumi:"viewerProtocolPolicy"` } @@ -1862,7 +1866,9 @@ type DistributionCacheBehaviorInput interface { // You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to serve objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin is never used. // For the current quota (formerly known as limit) on the number of cache behaviors that you can add to a distribution, see [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) in the *Amazon CloudFront Developer Guide*. // If you don't want to specify any cache behaviors, include only an empty ``CacheBehaviors`` element. Don't include an empty ``CacheBehavior`` element because this is invalid. -// To delete all cache behaviors in an exist +// To delete all cache behaviors in an existing distribution, update the distribution configuration and include only an empty ``CacheBehaviors`` element. +// To add, change, or remove one or more cache behaviors, update the distribution configuration and specify all of the cache behaviors that you want to include in the updated distribution. +// For more information about cache behaviors, see [Cache Behavior Settings](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesCacheBehavior) in the *Amazon CloudFront Developer Guide*. type DistributionCacheBehaviorArgs struct { // A complex type that controls which HTTP methods CloudFront processes and forwards to your Amazon S3 bucket or your custom origin. There are three choices: // + CloudFront forwards only ``GET`` and ``HEAD`` requests. @@ -1883,24 +1889,26 @@ type DistributionCacheBehaviorArgs struct { // Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify true; if not, specify false. For more information, see [Serving Compressed Files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html) in the *Amazon CloudFront Developer Guide*. Compress pulumi.BoolPtrInput `pulumi:"compress"` // This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - // The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide + // The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. DefaultTtl pulumi.Float64PtrInput `pulumi:"defaultTtl"` // The value of ``ID`` for the field-level encryption configuration that you want CloudFront to use for encrypting specific fields of data for this cache behavior. FieldLevelEncryptionId pulumi.StringPtrInput `pulumi:"fieldLevelEncryptionId"` // This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. // If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - // If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r + // If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. + // A ``CacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. + // A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. ForwardedValues DistributionForwardedValuesPtrInput `pulumi:"forwardedValues"` // A list of CloudFront functions that are associated with this cache behavior. CloudFront functions must be published to the ``LIVE`` stage to associate them with a cache behavior. FunctionAssociations DistributionFunctionAssociationArrayInput `pulumi:"functionAssociations"` // A complex type that contains zero or more Lambda@Edge function associations for a cache behavior. LambdaFunctionAssociations DistributionLambdaFunctionAssociationArrayInput `pulumi:"lambdaFunctionAssociations"` // This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - // The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. + // The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. MaxTtl pulumi.Float64PtrInput `pulumi:"maxTtl"` // This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. // The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. - // You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He + // You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). MinTtl pulumi.Float64PtrInput `pulumi:"minTtl"` // The unique identifier of the origin request policy that is attached to this cache behavior. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. OriginRequestPolicyId pulumi.StringPtrInput `pulumi:"originRequestPolicyId"` @@ -1930,7 +1938,7 @@ type DistributionCacheBehaviorArgs struct { // + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). // // For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. - // The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol + // The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. ViewerProtocolPolicy pulumi.StringInput `pulumi:"viewerProtocolPolicy"` } @@ -1976,7 +1984,9 @@ func (i DistributionCacheBehaviorArray) ToDistributionCacheBehaviorArrayOutputWi // You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to serve objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin is never used. // For the current quota (formerly known as limit) on the number of cache behaviors that you can add to a distribution, see [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) in the *Amazon CloudFront Developer Guide*. // If you don't want to specify any cache behaviors, include only an empty ``CacheBehaviors`` element. Don't include an empty ``CacheBehavior`` element because this is invalid. -// To delete all cache behaviors in an exist +// To delete all cache behaviors in an existing distribution, update the distribution configuration and include only an empty ``CacheBehaviors`` element. +// To add, change, or remove one or more cache behaviors, update the distribution configuration and specify all of the cache behaviors that you want to include in the updated distribution. +// For more information about cache behaviors, see [Cache Behavior Settings](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesCacheBehavior) in the *Amazon CloudFront Developer Guide*. type DistributionCacheBehaviorOutput struct{ *pulumi.OutputState } func (DistributionCacheBehaviorOutput) ElementType() reflect.Type { @@ -2029,7 +2039,7 @@ func (o DistributionCacheBehaviorOutput) Compress() pulumi.BoolPtrOutput { // This field is deprecated. We recommend that you use the “DefaultTTL“ field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. // -// The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide +// The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. func (o DistributionCacheBehaviorOutput) DefaultTtl() pulumi.Float64PtrOutput { return o.ApplyT(func(v DistributionCacheBehavior) *float64 { return v.DefaultTtl }).(pulumi.Float64PtrOutput) } @@ -2042,7 +2052,9 @@ func (o DistributionCacheBehaviorOutput) FieldLevelEncryptionId() pulumi.StringP // This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. // // If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. -// If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r +// If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. +// A ``CacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. +// A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. func (o DistributionCacheBehaviorOutput) ForwardedValues() DistributionForwardedValuesPtrOutput { return o.ApplyT(func(v DistributionCacheBehavior) *DistributionForwardedValues { return v.ForwardedValues }).(DistributionForwardedValuesPtrOutput) } @@ -2061,7 +2073,7 @@ func (o DistributionCacheBehaviorOutput) LambdaFunctionAssociations() Distributi // This field is deprecated. We recommend that you use the “MaxTTL“ field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. // -// The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. +// The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. func (o DistributionCacheBehaviorOutput) MaxTtl() pulumi.Float64PtrOutput { return o.ApplyT(func(v DistributionCacheBehavior) *float64 { return v.MaxTtl }).(pulumi.Float64PtrOutput) } @@ -2069,7 +2081,7 @@ func (o DistributionCacheBehaviorOutput) MaxTtl() pulumi.Float64PtrOutput { // This field is deprecated. We recommend that you use the “MinTTL“ field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. // // The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. -// You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He +// You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). func (o DistributionCacheBehaviorOutput) MinTtl() pulumi.Float64PtrOutput { return o.ApplyT(func(v DistributionCacheBehavior) *float64 { return v.MinTtl }).(pulumi.Float64PtrOutput) } @@ -2132,7 +2144,7 @@ func (o DistributionCacheBehaviorOutput) TrustedSigners() pulumi.StringArrayOutp // - “https-only“: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). // // For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. -// The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol +// The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. func (o DistributionCacheBehaviorOutput) ViewerProtocolPolicy() pulumi.StringOutput { return o.ApplyT(func(v DistributionCacheBehavior) string { return v.ViewerProtocolPolicy }).(pulumi.StringOutput) } @@ -2182,7 +2194,7 @@ type DistributionConfig struct { // If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element. // To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element. // To replace the default root object, update the distribution configuration and specify the new object. - // For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/D + // For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*. DefaultRootObject *string `pulumi:"defaultRootObject"` // From this field, you can enable or disable the selected distribution. Enabled bool `pulumi:"enabled"` @@ -2191,7 +2203,13 @@ type DistributionConfig struct { // For viewers and CF to use HTTP/3, viewers must support TLSv1.3 and Server Name Indication (SNI). CF supports HTTP/3 connection migration to allow the viewer to switch networks without losing connection. For more information about connection migration, see [Connection Migration](https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc9000.html#name-connection-migration) at RFC 9000. For more information about supported TLSv1.3 ciphers, see [Supported protocols and ciphers between viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html). HttpVersion *string `pulumi:"httpVersion"` // If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify ``true``. If you specify ``false``, CloudFront responds to IPv6 DNS requests with the DNS response code ``NOERROR`` and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution. - // In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/Devel + // In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html) in the *Amazon CloudFront Developer Guide*. + // If you're using an R53AWSIntlong alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true: + // + You enable IPv6 for the distribution + // + You're using alternate domain names in the URLs for your objects + // + // For more information, see [Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html) in the *Developer Guide*. + // If you created a CNAME resource record set, either with R53AWSIntlong or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request. Ipv6Enabled *bool `pulumi:"ipv6Enabled"` // A complex type that controls whether access logs are written for the distribution. // For more information about logging, see [Access Logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html) in the *Amazon CloudFront Developer Guide*. @@ -2212,7 +2230,7 @@ type DistributionConfig struct { // A complex type that determines the distribution's SSL/TLS configuration for communicating with viewers. ViewerCertificate *DistributionViewerCertificate `pulumi:"viewerCertificate"` // A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example ``arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a``. To specify a web ACL created using WAF Classic, use the ACL ID, for example ``473e64fd-f30b-4765-81a0-62ad96dd167a``. - // WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest + // WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html). WebAclId *string `pulumi:"webAclId"` } @@ -2252,7 +2270,7 @@ type DistributionConfigArgs struct { // If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element. // To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element. // To replace the default root object, update the distribution configuration and specify the new object. - // For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/D + // For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*. DefaultRootObject pulumi.StringPtrInput `pulumi:"defaultRootObject"` // From this field, you can enable or disable the selected distribution. Enabled pulumi.BoolInput `pulumi:"enabled"` @@ -2261,7 +2279,13 @@ type DistributionConfigArgs struct { // For viewers and CF to use HTTP/3, viewers must support TLSv1.3 and Server Name Indication (SNI). CF supports HTTP/3 connection migration to allow the viewer to switch networks without losing connection. For more information about connection migration, see [Connection Migration](https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc9000.html#name-connection-migration) at RFC 9000. For more information about supported TLSv1.3 ciphers, see [Supported protocols and ciphers between viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html). HttpVersion pulumi.StringPtrInput `pulumi:"httpVersion"` // If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify ``true``. If you specify ``false``, CloudFront responds to IPv6 DNS requests with the DNS response code ``NOERROR`` and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution. - // In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/Devel + // In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html) in the *Amazon CloudFront Developer Guide*. + // If you're using an R53AWSIntlong alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true: + // + You enable IPv6 for the distribution + // + You're using alternate domain names in the URLs for your objects + // + // For more information, see [Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html) in the *Developer Guide*. + // If you created a CNAME resource record set, either with R53AWSIntlong or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request. Ipv6Enabled pulumi.BoolPtrInput `pulumi:"ipv6Enabled"` // A complex type that controls whether access logs are written for the distribution. // For more information about logging, see [Access Logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html) in the *Amazon CloudFront Developer Guide*. @@ -2282,7 +2306,7 @@ type DistributionConfigArgs struct { // A complex type that determines the distribution's SSL/TLS configuration for communicating with viewers. ViewerCertificate DistributionViewerCertificatePtrInput `pulumi:"viewerCertificate"` // A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example ``arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a``. To specify a web ACL created using WAF Classic, use the ACL ID, for example ``473e64fd-f30b-4765-81a0-62ad96dd167a``. - // WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest + // WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html). WebAclId pulumi.StringPtrInput `pulumi:"webAclId"` } @@ -2363,7 +2387,7 @@ func (o DistributionConfigOutput) DefaultCacheBehavior() DistributionDefaultCach // If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element. // To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element. // To replace the default root object, update the distribution configuration and specify the new object. -// For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/D +// For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*. func (o DistributionConfigOutput) DefaultRootObject() pulumi.StringPtrOutput { return o.ApplyT(func(v DistributionConfig) *string { return v.DefaultRootObject }).(pulumi.StringPtrOutput) } @@ -2383,7 +2407,13 @@ func (o DistributionConfigOutput) HttpVersion() pulumi.StringPtrOutput { // If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify “true“. If you specify “false“, CloudFront responds to IPv6 DNS requests with the DNS response code “NOERROR“ and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution. // -// In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/Devel +// In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html) in the *Amazon CloudFront Developer Guide*. +// If you're using an R53AWSIntlong alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true: +// + You enable IPv6 for the distribution +// + You're using alternate domain names in the URLs for your objects +// +// For more information, see [Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html) in the *Developer Guide*. +// If you created a CNAME resource record set, either with R53AWSIntlong or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request. func (o DistributionConfigOutput) Ipv6Enabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v DistributionConfig) *bool { return v.Ipv6Enabled }).(pulumi.BoolPtrOutput) } @@ -2434,7 +2464,7 @@ func (o DistributionConfigOutput) ViewerCertificate() DistributionViewerCertific // A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example “arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a“. To specify a web ACL created using WAF Classic, use the ACL ID, for example “473e64fd-f30b-4765-81a0-62ad96dd167a“. // -// WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest +// WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html). func (o DistributionConfigOutput) WebAclId() pulumi.StringPtrOutput { return o.ApplyT(func(v DistributionConfig) *string { return v.WebAclId }).(pulumi.StringPtrOutput) } @@ -2553,7 +2583,7 @@ func (o DistributionConfigPtrOutput) DefaultCacheBehavior() DistributionDefaultC // If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element. // To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element. // To replace the default root object, update the distribution configuration and specify the new object. -// For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/D +// For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*. func (o DistributionConfigPtrOutput) DefaultRootObject() pulumi.StringPtrOutput { return o.ApplyT(func(v *DistributionConfig) *string { if v == nil { @@ -2588,7 +2618,13 @@ func (o DistributionConfigPtrOutput) HttpVersion() pulumi.StringPtrOutput { // If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify “true“. If you specify “false“, CloudFront responds to IPv6 DNS requests with the DNS response code “NOERROR“ and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution. // -// In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/Devel +// In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html) in the *Amazon CloudFront Developer Guide*. +// If you're using an R53AWSIntlong alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true: +// + You enable IPv6 for the distribution +// + You're using alternate domain names in the URLs for your objects +// +// For more information, see [Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html) in the *Developer Guide*. +// If you created a CNAME resource record set, either with R53AWSIntlong or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request. func (o DistributionConfigPtrOutput) Ipv6Enabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *DistributionConfig) *bool { if v == nil { @@ -2684,7 +2720,7 @@ func (o DistributionConfigPtrOutput) ViewerCertificate() DistributionViewerCerti // A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example “arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a“. To specify a web ACL created using WAF Classic, use the ACL ID, for example “473e64fd-f30b-4765-81a0-62ad96dd167a“. // -// WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest +// WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html). func (o DistributionConfigPtrOutput) WebAclId() pulumi.StringPtrOutput { return o.ApplyT(func(v *DistributionConfig) *string { if v == nil { @@ -2698,18 +2734,20 @@ func (o DistributionConfigPtrOutput) WebAclId() pulumi.StringPtrOutput { // // If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. -// A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C +// A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*. type DistributionCookies struct { // This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. // If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. // Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the ``WhitelistedNames`` complex type. - // Amazon S3 doesn't process cookies. When the cache behavior is forw + // Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify none for the ``Forward`` element. Forward string `pulumi:"forward"` // This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. // If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - // Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward se + // Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward selected cookies, the names of those cookies. + // If you specify ``all`` or ``none`` for the value of ``Forward``, omit ``WhitelistedNames``. If you change the value of ``Forward`` from ``whitelist`` to ``all`` or ``none`` and you don't delete the ``WhitelistedNames`` element and its child elements, CloudFront deletes them automatically. + // For the current limit on the number of cookie names that you can whitelist for each cache behavior, see [CloudFront Limits](https://docs.aws.amazon.com/general/latest/gr/xrefaws_service_limits.html#limits_cloudfront) in the *General Reference*. WhitelistedNames []string `pulumi:"whitelistedNames"` } @@ -2728,18 +2766,20 @@ type DistributionCookiesInput interface { // // If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. -// A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C +// A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*. type DistributionCookiesArgs struct { // This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. // If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. // Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the ``WhitelistedNames`` complex type. - // Amazon S3 doesn't process cookies. When the cache behavior is forw + // Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify none for the ``Forward`` element. Forward pulumi.StringInput `pulumi:"forward"` // This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. // If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - // Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward se + // Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward selected cookies, the names of those cookies. + // If you specify ``all`` or ``none`` for the value of ``Forward``, omit ``WhitelistedNames``. If you change the value of ``Forward`` from ``whitelist`` to ``all`` or ``none`` and you don't delete the ``WhitelistedNames`` element and its child elements, CloudFront deletes them automatically. + // For the current limit on the number of cookie names that you can whitelist for each cache behavior, see [CloudFront Limits](https://docs.aws.amazon.com/general/latest/gr/xrefaws_service_limits.html#limits_cloudfront) in the *General Reference*. WhitelistedNames pulumi.StringArrayInput `pulumi:"whitelistedNames"` } @@ -2800,7 +2840,7 @@ func (i *distributionCookiesPtrType) ToDistributionCookiesPtrOutputWithContext(c // // If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. -// A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C +// A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*. type DistributionCookiesOutput struct{ *pulumi.OutputState } func (DistributionCookiesOutput) ElementType() reflect.Type { @@ -2830,7 +2870,7 @@ func (o DistributionCookiesOutput) ToDistributionCookiesPtrOutputWithContext(ctx // If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. // Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the ``WhitelistedNames`` complex type. -// Amazon S3 doesn't process cookies. When the cache behavior is forw +// Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify none for the ``Forward`` element. func (o DistributionCookiesOutput) Forward() pulumi.StringOutput { return o.ApplyT(func(v DistributionCookies) string { return v.Forward }).(pulumi.StringOutput) } @@ -2839,7 +2879,9 @@ func (o DistributionCookiesOutput) Forward() pulumi.StringOutput { // // If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. -// Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward se +// Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward selected cookies, the names of those cookies. +// If you specify ``all`` or ``none`` for the value of ``Forward``, omit ``WhitelistedNames``. If you change the value of ``Forward`` from ``whitelist`` to ``all`` or ``none`` and you don't delete the ``WhitelistedNames`` element and its child elements, CloudFront deletes them automatically. +// For the current limit on the number of cookie names that you can whitelist for each cache behavior, see [CloudFront Limits](https://docs.aws.amazon.com/general/latest/gr/xrefaws_service_limits.html#limits_cloudfront) in the *General Reference*. func (o DistributionCookiesOutput) WhitelistedNames() pulumi.StringArrayOutput { return o.ApplyT(func(v DistributionCookies) []string { return v.WhitelistedNames }).(pulumi.StringArrayOutput) } @@ -2873,7 +2915,7 @@ func (o DistributionCookiesPtrOutput) Elem() DistributionCookiesOutput { // If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. // Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the ``WhitelistedNames`` complex type. -// Amazon S3 doesn't process cookies. When the cache behavior is forw +// Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify none for the ``Forward`` element. func (o DistributionCookiesPtrOutput) Forward() pulumi.StringPtrOutput { return o.ApplyT(func(v *DistributionCookies) *string { if v == nil { @@ -2887,7 +2929,9 @@ func (o DistributionCookiesPtrOutput) Forward() pulumi.StringPtrOutput { // // If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. -// Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward se +// Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward selected cookies, the names of those cookies. +// If you specify ``all`` or ``none`` for the value of ``Forward``, omit ``WhitelistedNames``. If you change the value of ``Forward`` from ``whitelist`` to ``all`` or ``none`` and you don't delete the ``WhitelistedNames`` element and its child elements, CloudFront deletes them automatically. +// For the current limit on the number of cookie names that you can whitelist for each cache behavior, see [CloudFront Limits](https://docs.aws.amazon.com/general/latest/gr/xrefaws_service_limits.html#limits_cloudfront) in the *General Reference*. func (o DistributionCookiesPtrOutput) WhitelistedNames() pulumi.StringArrayOutput { return o.ApplyT(func(v *DistributionCookies) []string { if v == nil { @@ -2922,7 +2966,7 @@ type DistributionCustomErrorResponse struct { // + The value of ``TargetOriginId`` specifies the value of the ``ID`` element for the origin that contains your custom error pages. // // If you specify a value for ``ResponsePagePath``, you must also specify a value for ``ResponseCode``. - // We recommend + // We recommend that you store custom error pages in an Amazon S3 bucket. If you store custom error pages on an HTTP server and the server starts to return 5xx errors, CloudFront can't get the files that you want to return to viewers because the origin server is unavailable. ResponsePagePath *string `pulumi:"responsePagePath"` } @@ -2962,7 +3006,7 @@ type DistributionCustomErrorResponseArgs struct { // + The value of ``TargetOriginId`` specifies the value of the ``ID`` element for the origin that contains your custom error pages. // // If you specify a value for ``ResponsePagePath``, you must also specify a value for ``ResponseCode``. - // We recommend + // We recommend that you store custom error pages in an Amazon S3 bucket. If you store custom error pages on an HTTP server and the server starts to return 5xx errors, CloudFront can't get the files that you want to return to viewers because the origin server is unavailable. ResponsePagePath pulumi.StringPtrInput `pulumi:"responsePagePath"` } @@ -3056,7 +3100,7 @@ func (o DistributionCustomErrorResponseOutput) ResponseCode() pulumi.IntPtrOutpu // - The value of “TargetOriginId“ specifies the value of the “ID“ element for the origin that contains your custom error pages. // // If you specify a value for “ResponsePagePath“, you must also specify a value for “ResponseCode“. -// We recommend +// We recommend that you store custom error pages in an Amazon S3 bucket. If you store custom error pages on an HTTP server and the server starts to return 5xx errors, CloudFront can't get the files that you want to return to viewers because the origin server is unavailable. func (o DistributionCustomErrorResponseOutput) ResponsePagePath() pulumi.StringPtrOutput { return o.ApplyT(func(v DistributionCustomErrorResponse) *string { return v.ResponsePagePath }).(pulumi.StringPtrOutput) } @@ -3367,24 +3411,26 @@ type DistributionDefaultCacheBehavior struct { // Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify ``true``; if not, specify ``false``. For more information, see [Serving Compressed Files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html) in the *Amazon CloudFront Developer Guide*. Compress *bool `pulumi:"compress"` // This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - // The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide + // The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. DefaultTtl *float64 `pulumi:"defaultTtl"` // The value of ``ID`` for the field-level encryption configuration that you want CloudFront to use for encrypting specific fields of data for the default cache behavior. FieldLevelEncryptionId *string `pulumi:"fieldLevelEncryptionId"` // This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. // If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - // If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r + // If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. + // A ``DefaultCacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. + // A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. ForwardedValues *DistributionForwardedValues `pulumi:"forwardedValues"` // A list of CloudFront functions that are associated with this cache behavior. CloudFront functions must be published to the ``LIVE`` stage to associate them with a cache behavior. FunctionAssociations []DistributionFunctionAssociation `pulumi:"functionAssociations"` // A complex type that contains zero or more Lambda@Edge function associations for a cache behavior. LambdaFunctionAssociations []DistributionLambdaFunctionAssociation `pulumi:"lambdaFunctionAssociations"` // This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - // The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. + // The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. MaxTtl *float64 `pulumi:"maxTtl"` // This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. // The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. - // You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He + // You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). MinTtl *float64 `pulumi:"minTtl"` // The unique identifier of the origin request policy that is attached to the default cache behavior. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. OriginRequestPolicyId *string `pulumi:"originRequestPolicyId"` @@ -3409,7 +3455,7 @@ type DistributionDefaultCacheBehavior struct { // + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). // // For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. - // The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol + // The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. ViewerProtocolPolicy string `pulumi:"viewerProtocolPolicy"` } @@ -3445,24 +3491,26 @@ type DistributionDefaultCacheBehaviorArgs struct { // Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify ``true``; if not, specify ``false``. For more information, see [Serving Compressed Files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html) in the *Amazon CloudFront Developer Guide*. Compress pulumi.BoolPtrInput `pulumi:"compress"` // This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - // The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide + // The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. DefaultTtl pulumi.Float64PtrInput `pulumi:"defaultTtl"` // The value of ``ID`` for the field-level encryption configuration that you want CloudFront to use for encrypting specific fields of data for the default cache behavior. FieldLevelEncryptionId pulumi.StringPtrInput `pulumi:"fieldLevelEncryptionId"` // This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. // If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - // If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r + // If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. + // A ``DefaultCacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. + // A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. ForwardedValues DistributionForwardedValuesPtrInput `pulumi:"forwardedValues"` // A list of CloudFront functions that are associated with this cache behavior. CloudFront functions must be published to the ``LIVE`` stage to associate them with a cache behavior. FunctionAssociations DistributionFunctionAssociationArrayInput `pulumi:"functionAssociations"` // A complex type that contains zero or more Lambda@Edge function associations for a cache behavior. LambdaFunctionAssociations DistributionLambdaFunctionAssociationArrayInput `pulumi:"lambdaFunctionAssociations"` // This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - // The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. + // The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. MaxTtl pulumi.Float64PtrInput `pulumi:"maxTtl"` // This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. // The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. - // You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He + // You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). MinTtl pulumi.Float64PtrInput `pulumi:"minTtl"` // The unique identifier of the origin request policy that is attached to the default cache behavior. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. OriginRequestPolicyId pulumi.StringPtrInput `pulumi:"originRequestPolicyId"` @@ -3487,7 +3535,7 @@ type DistributionDefaultCacheBehaviorArgs struct { // + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). // // For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. - // The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol + // The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. ViewerProtocolPolicy pulumi.StringInput `pulumi:"viewerProtocolPolicy"` } @@ -3556,7 +3604,7 @@ func (o DistributionDefaultCacheBehaviorOutput) Compress() pulumi.BoolPtrOutput // This field is deprecated. We recommend that you use the “DefaultTTL“ field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. // -// The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide +// The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. func (o DistributionDefaultCacheBehaviorOutput) DefaultTtl() pulumi.Float64PtrOutput { return o.ApplyT(func(v DistributionDefaultCacheBehavior) *float64 { return v.DefaultTtl }).(pulumi.Float64PtrOutput) } @@ -3569,7 +3617,9 @@ func (o DistributionDefaultCacheBehaviorOutput) FieldLevelEncryptionId() pulumi. // This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. // // If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. -// If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r +// If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. +// A ``DefaultCacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. +// A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. func (o DistributionDefaultCacheBehaviorOutput) ForwardedValues() DistributionForwardedValuesPtrOutput { return o.ApplyT(func(v DistributionDefaultCacheBehavior) *DistributionForwardedValues { return v.ForwardedValues }).(DistributionForwardedValuesPtrOutput) } @@ -3590,7 +3640,7 @@ func (o DistributionDefaultCacheBehaviorOutput) LambdaFunctionAssociations() Dis // This field is deprecated. We recommend that you use the “MaxTTL“ field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. // -// The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. +// The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. func (o DistributionDefaultCacheBehaviorOutput) MaxTtl() pulumi.Float64PtrOutput { return o.ApplyT(func(v DistributionDefaultCacheBehavior) *float64 { return v.MaxTtl }).(pulumi.Float64PtrOutput) } @@ -3598,7 +3648,7 @@ func (o DistributionDefaultCacheBehaviorOutput) MaxTtl() pulumi.Float64PtrOutput // This field is deprecated. We recommend that you use the “MinTTL“ field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. // // The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. -// You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He +// You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). func (o DistributionDefaultCacheBehaviorOutput) MinTtl() pulumi.Float64PtrOutput { return o.ApplyT(func(v DistributionDefaultCacheBehavior) *float64 { return v.MinTtl }).(pulumi.Float64PtrOutput) } @@ -3652,7 +3702,7 @@ func (o DistributionDefaultCacheBehaviorOutput) TrustedSigners() pulumi.StringAr // - “https-only“: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). // // For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. -// The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol +// The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. func (o DistributionDefaultCacheBehaviorOutput) ViewerProtocolPolicy() pulumi.StringOutput { return o.ApplyT(func(v DistributionDefaultCacheBehavior) string { return v.ViewerProtocolPolicy }).(pulumi.StringOutput) } @@ -3739,7 +3789,7 @@ func (o DistributionDefaultCacheBehaviorPtrOutput) Compress() pulumi.BoolPtrOutp // This field is deprecated. We recommend that you use the “DefaultTTL“ field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. // -// The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide +// The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. func (o DistributionDefaultCacheBehaviorPtrOutput) DefaultTtl() pulumi.Float64PtrOutput { return o.ApplyT(func(v *DistributionDefaultCacheBehavior) *float64 { if v == nil { @@ -3762,7 +3812,9 @@ func (o DistributionDefaultCacheBehaviorPtrOutput) FieldLevelEncryptionId() pulu // This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. // // If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. -// If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r +// If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. +// A ``DefaultCacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. +// A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. func (o DistributionDefaultCacheBehaviorPtrOutput) ForwardedValues() DistributionForwardedValuesPtrOutput { return o.ApplyT(func(v *DistributionDefaultCacheBehavior) *DistributionForwardedValues { if v == nil { @@ -3794,7 +3846,7 @@ func (o DistributionDefaultCacheBehaviorPtrOutput) LambdaFunctionAssociations() // This field is deprecated. We recommend that you use the “MaxTTL“ field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. // -// The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. +// The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. func (o DistributionDefaultCacheBehaviorPtrOutput) MaxTtl() pulumi.Float64PtrOutput { return o.ApplyT(func(v *DistributionDefaultCacheBehavior) *float64 { if v == nil { @@ -3807,7 +3859,7 @@ func (o DistributionDefaultCacheBehaviorPtrOutput) MaxTtl() pulumi.Float64PtrOut // This field is deprecated. We recommend that you use the “MinTTL“ field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. // // The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. -// You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He +// You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). func (o DistributionDefaultCacheBehaviorPtrOutput) MinTtl() pulumi.Float64PtrOutput { return o.ApplyT(func(v *DistributionDefaultCacheBehavior) *float64 { if v == nil { @@ -3901,7 +3953,7 @@ func (o DistributionDefaultCacheBehaviorPtrOutput) TrustedSigners() pulumi.Strin // - “https-only“: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). // // For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. -// The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol +// The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. func (o DistributionDefaultCacheBehaviorPtrOutput) ViewerProtocolPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v *DistributionDefaultCacheBehavior) *string { if v == nil { @@ -3920,17 +3972,22 @@ type DistributionForwardedValues struct { // This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. // If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - // A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C + // A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*. Cookies *DistributionCookies `pulumi:"cookies"` // This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. // If you want to include headers in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - // A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versio + // A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versions of a specified object that is based on the header values in viewer requests. + // For more information, see [Caching Content Based on Request Headers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html) in the *Amazon CloudFront Developer Guide*. Headers []string `pulumi:"headers"` // This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. // If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - // Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of + // Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of ``QueryString`` and on the values that you specify for ``QueryStringCacheKeys``, if any: + // If you specify true for ``QueryString`` and you don't specify any values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin and caches based on all query string parameters. Depending on how many query string parameters and values you have, this can adversely affect performance because CloudFront must forward more requests to the origin. + // If you specify true for ``QueryString`` and you specify one or more values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin, but it only caches based on the query string parameters that you specify. + // If you specify false for ``QueryString``, CloudFront doesn't forward any query string parameters to the origin, and doesn't cache based on query string parameters. + // For more information, see [Configuring CloudFront to Cache Based on Query String Parameters](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html) in the *Amazon CloudFront Developer Guide*. QueryString bool `pulumi:"queryString"` // This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. // If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. @@ -3959,17 +4016,22 @@ type DistributionForwardedValuesArgs struct { // This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. // If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - // A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C + // A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*. Cookies DistributionCookiesPtrInput `pulumi:"cookies"` // This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. // If you want to include headers in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - // A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versio + // A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versions of a specified object that is based on the header values in viewer requests. + // For more information, see [Caching Content Based on Request Headers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html) in the *Amazon CloudFront Developer Guide*. Headers pulumi.StringArrayInput `pulumi:"headers"` // This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. // If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - // Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of + // Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of ``QueryString`` and on the values that you specify for ``QueryStringCacheKeys``, if any: + // If you specify true for ``QueryString`` and you don't specify any values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin and caches based on all query string parameters. Depending on how many query string parameters and values you have, this can adversely affect performance because CloudFront must forward more requests to the origin. + // If you specify true for ``QueryString`` and you specify one or more values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin, but it only caches based on the query string parameters that you specify. + // If you specify false for ``QueryString``, CloudFront doesn't forward any query string parameters to the origin, and doesn't cache based on query string parameters. + // For more information, see [Configuring CloudFront to Cache Based on Query String Parameters](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html) in the *Amazon CloudFront Developer Guide*. QueryString pulumi.BoolInput `pulumi:"queryString"` // This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. // If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. @@ -4064,7 +4126,7 @@ func (o DistributionForwardedValuesOutput) ToDistributionForwardedValuesPtrOutpu // // If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. -// A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C +// A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*. func (o DistributionForwardedValuesOutput) Cookies() DistributionCookiesPtrOutput { return o.ApplyT(func(v DistributionForwardedValues) *DistributionCookies { return v.Cookies }).(DistributionCookiesPtrOutput) } @@ -4073,7 +4135,8 @@ func (o DistributionForwardedValuesOutput) Cookies() DistributionCookiesPtrOutpu // // If you want to include headers in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. -// A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versio +// A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versions of a specified object that is based on the header values in viewer requests. +// For more information, see [Caching Content Based on Request Headers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html) in the *Amazon CloudFront Developer Guide*. func (o DistributionForwardedValuesOutput) Headers() pulumi.StringArrayOutput { return o.ApplyT(func(v DistributionForwardedValues) []string { return v.Headers }).(pulumi.StringArrayOutput) } @@ -4082,7 +4145,11 @@ func (o DistributionForwardedValuesOutput) Headers() pulumi.StringArrayOutput { // // If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. -// Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of +// Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of ``QueryString`` and on the values that you specify for ``QueryStringCacheKeys``, if any: +// If you specify true for ``QueryString`` and you don't specify any values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin and caches based on all query string parameters. Depending on how many query string parameters and values you have, this can adversely affect performance because CloudFront must forward more requests to the origin. +// If you specify true for ``QueryString`` and you specify one or more values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin, but it only caches based on the query string parameters that you specify. +// If you specify false for ``QueryString``, CloudFront doesn't forward any query string parameters to the origin, and doesn't cache based on query string parameters. +// For more information, see [Configuring CloudFront to Cache Based on Query String Parameters](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html) in the *Amazon CloudFront Developer Guide*. func (o DistributionForwardedValuesOutput) QueryString() pulumi.BoolOutput { return o.ApplyT(func(v DistributionForwardedValues) bool { return v.QueryString }).(pulumi.BoolOutput) } @@ -4124,7 +4191,7 @@ func (o DistributionForwardedValuesPtrOutput) Elem() DistributionForwardedValues // // If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. -// A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C +// A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*. func (o DistributionForwardedValuesPtrOutput) Cookies() DistributionCookiesPtrOutput { return o.ApplyT(func(v *DistributionForwardedValues) *DistributionCookies { if v == nil { @@ -4138,7 +4205,8 @@ func (o DistributionForwardedValuesPtrOutput) Cookies() DistributionCookiesPtrOu // // If you want to include headers in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. -// A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versio +// A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versions of a specified object that is based on the header values in viewer requests. +// For more information, see [Caching Content Based on Request Headers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html) in the *Amazon CloudFront Developer Guide*. func (o DistributionForwardedValuesPtrOutput) Headers() pulumi.StringArrayOutput { return o.ApplyT(func(v *DistributionForwardedValues) []string { if v == nil { @@ -4152,7 +4220,11 @@ func (o DistributionForwardedValuesPtrOutput) Headers() pulumi.StringArrayOutput // // If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. // If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. -// Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of +// Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of ``QueryString`` and on the values that you specify for ``QueryStringCacheKeys``, if any: +// If you specify true for ``QueryString`` and you don't specify any values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin and caches based on all query string parameters. Depending on how many query string parameters and values you have, this can adversely affect performance because CloudFront must forward more requests to the origin. +// If you specify true for ``QueryString`` and you specify one or more values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin, but it only caches based on the query string parameters that you specify. +// If you specify false for ``QueryString``, CloudFront doesn't forward any query string parameters to the origin, and doesn't cache based on query string parameters. +// For more information, see [Configuring CloudFront to Cache Based on Query String Parameters](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html) in the *Amazon CloudFront Developer Guide*. func (o DistributionForwardedValuesPtrOutput) QueryString() pulumi.BoolPtrOutput { return o.ApplyT(func(v *DistributionForwardedValues) *bool { if v == nil { @@ -6301,7 +6373,7 @@ type DistributionS3OriginConfig struct { // If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element. // To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element. // To replace the origin access identity, update the distribution configuration and specify the new origin access identity. - // For more information about the origin access identity, see [Serving Private Content through CloudFront](https://d + // For more information about the origin access identity, see [Serving Private Content through CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*. OriginAccessIdentity *string `pulumi:"originAccessIdentity"` } @@ -6324,7 +6396,7 @@ type DistributionS3OriginConfigArgs struct { // If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element. // To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element. // To replace the origin access identity, update the distribution configuration and specify the new origin access identity. - // For more information about the origin access identity, see [Serving Private Content through CloudFront](https://d + // For more information about the origin access identity, see [Serving Private Content through CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*. OriginAccessIdentity pulumi.StringPtrInput `pulumi:"originAccessIdentity"` } @@ -6413,7 +6485,7 @@ func (o DistributionS3OriginConfigOutput) ToDistributionS3OriginConfigPtrOutputW // If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element. // To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element. // To replace the origin access identity, update the distribution configuration and specify the new origin access identity. -// For more information about the origin access identity, see [Serving Private Content through CloudFront](https://d +// For more information about the origin access identity, see [Serving Private Content through CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*. func (o DistributionS3OriginConfigOutput) OriginAccessIdentity() pulumi.StringPtrOutput { return o.ApplyT(func(v DistributionS3OriginConfig) *string { return v.OriginAccessIdentity }).(pulumi.StringPtrOutput) } @@ -6449,7 +6521,7 @@ func (o DistributionS3OriginConfigPtrOutput) Elem() DistributionS3OriginConfigOu // If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element. // To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element. // To replace the origin access identity, update the distribution configuration and specify the new origin access identity. -// For more information about the origin access identity, see [Serving Private Content through CloudFront](https://d +// For more information about the origin access identity, see [Serving Private Content through CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*. func (o DistributionS3OriginConfigPtrOutput) OriginAccessIdentity() pulumi.StringPtrOutput { return o.ApplyT(func(v *DistributionS3OriginConfig) *string { if v == nil { @@ -6538,7 +6610,16 @@ type DistributionTag struct { // If the distribution doesn't use ``Aliases`` (also known as alternate domain names or CNAMEs)—that is, if the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``—set ``CloudFrontDefaultCertificate`` to ``true`` and leave all other fields empty. // If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), use the fields in this type to specify the following settings: // + Which viewers the distribution accepts HTTPS connections from: only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication) (recommended), or all viewers including those that don't support SNI. -// + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field n +// + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) +// + To accept HTTPS connections from all viewers, including those that don't support SNI, set ``SSLSupportMethod`` to ``vip``. This is not recommended, and results in additional monthly charges from CloudFront. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) +// +// + The minimum SSL/TLS protocol version that the distribution can use to communicate with viewers. To specify a minimum version, choose a value for ``MinimumProtocolVersion``. For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) in the *Amazon CloudFront Developer Guide*. +// + The location of the SSL/TLS certificate, [(ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) (recommended) or [(IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html). You specify the location by setting a value in one of the following fields (not both): +// + ``ACMCertificateArn`` (In CloudFormation, this field name is ``AcmCertificateArn``. Note the different capitalization.) +// + ``IAMCertificateId`` (In CloudFormation, this field name is ``IamCertificateId``. Note the different capitalization.) +// +// All distributions support HTTPS connections from viewers. To require viewers to use HTTPS only, or to redirect them from HTTP to HTTPS, use ``ViewerProtocolPolicy`` in the ``CacheBehavior`` or ``DefaultCacheBehavior``. To specify how CloudFront should use SSL/TLS to communicate with your custom origin, use ``CustomOriginConfig``. +// For more information, see [Using HTTPS with CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html) and [Using Alternate Domain Names and HTTPS](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-alternate-domain-names.html) in the *Amazon CloudFront Developer Guide*. type DistributionViewerCertificate struct { // In CloudFormation, this field name is ``AcmCertificateArn``. Note the different capitalization. // If the distribution uses ``Aliases`` (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in [(ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html), provide the Amazon Resource Name (ARN) of the ACM certificate. CloudFront only supports ACM certificates in the US East (N. Virginia) Region (``us-east-1``). @@ -6560,13 +6641,16 @@ type DistributionViewerCertificate struct { // // For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*. // On the CloudFront console, this setting is called *Security Policy*. - // When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-onl + // When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-only``), you must specify ``TLSv1`` or higher. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + // If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` (you set ``CloudFrontDefaultCertificate`` to ``true``), CloudFront automatically sets the security policy to ``TLSv1`` regardless of the value that you set here. MinimumProtocolVersion *string `pulumi:"minimumProtocolVersion"` // In CloudFormation, this field name is ``SslSupportMethod``. Note the different capitalization. // If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from. // + ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication). This is recommended. Most browsers and clients support SNI. // + ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront. // + ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [Center](https://docs.aws.amazon.com/support/home). + // + // If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``, don't set a value for this field. SslSupportMethod *string `pulumi:"sslSupportMethod"` } @@ -6586,7 +6670,16 @@ type DistributionViewerCertificateInput interface { // If the distribution doesn't use ``Aliases`` (also known as alternate domain names or CNAMEs)—that is, if the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``—set ``CloudFrontDefaultCertificate`` to ``true`` and leave all other fields empty. // If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), use the fields in this type to specify the following settings: // + Which viewers the distribution accepts HTTPS connections from: only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication) (recommended), or all viewers including those that don't support SNI. -// + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field n +// + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) +// + To accept HTTPS connections from all viewers, including those that don't support SNI, set ``SSLSupportMethod`` to ``vip``. This is not recommended, and results in additional monthly charges from CloudFront. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) +// +// + The minimum SSL/TLS protocol version that the distribution can use to communicate with viewers. To specify a minimum version, choose a value for ``MinimumProtocolVersion``. For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) in the *Amazon CloudFront Developer Guide*. +// + The location of the SSL/TLS certificate, [(ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) (recommended) or [(IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html). You specify the location by setting a value in one of the following fields (not both): +// + ``ACMCertificateArn`` (In CloudFormation, this field name is ``AcmCertificateArn``. Note the different capitalization.) +// + ``IAMCertificateId`` (In CloudFormation, this field name is ``IamCertificateId``. Note the different capitalization.) +// +// All distributions support HTTPS connections from viewers. To require viewers to use HTTPS only, or to redirect them from HTTP to HTTPS, use ``ViewerProtocolPolicy`` in the ``CacheBehavior`` or ``DefaultCacheBehavior``. To specify how CloudFront should use SSL/TLS to communicate with your custom origin, use ``CustomOriginConfig``. +// For more information, see [Using HTTPS with CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html) and [Using Alternate Domain Names and HTTPS](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-alternate-domain-names.html) in the *Amazon CloudFront Developer Guide*. type DistributionViewerCertificateArgs struct { // In CloudFormation, this field name is ``AcmCertificateArn``. Note the different capitalization. // If the distribution uses ``Aliases`` (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in [(ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html), provide the Amazon Resource Name (ARN) of the ACM certificate. CloudFront only supports ACM certificates in the US East (N. Virginia) Region (``us-east-1``). @@ -6608,13 +6701,16 @@ type DistributionViewerCertificateArgs struct { // // For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*. // On the CloudFront console, this setting is called *Security Policy*. - // When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-onl + // When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-only``), you must specify ``TLSv1`` or higher. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + // If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` (you set ``CloudFrontDefaultCertificate`` to ``true``), CloudFront automatically sets the security policy to ``TLSv1`` regardless of the value that you set here. MinimumProtocolVersion pulumi.StringPtrInput `pulumi:"minimumProtocolVersion"` // In CloudFormation, this field name is ``SslSupportMethod``. Note the different capitalization. // If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from. // + ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication). This is recommended. Most browsers and clients support SNI. // + ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront. // + ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [Center](https://docs.aws.amazon.com/support/home). + // + // If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``, don't set a value for this field. SslSupportMethod pulumi.StringPtrInput `pulumi:"sslSupportMethod"` } @@ -6676,7 +6772,16 @@ func (i *distributionViewerCertificatePtrType) ToDistributionViewerCertificatePt // If the distribution doesn't use ``Aliases`` (also known as alternate domain names or CNAMEs)—that is, if the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``—set ``CloudFrontDefaultCertificate`` to ``true`` and leave all other fields empty. // If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), use the fields in this type to specify the following settings: // + Which viewers the distribution accepts HTTPS connections from: only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication) (recommended), or all viewers including those that don't support SNI. -// + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field n +// + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) +// + To accept HTTPS connections from all viewers, including those that don't support SNI, set ``SSLSupportMethod`` to ``vip``. This is not recommended, and results in additional monthly charges from CloudFront. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) +// +// + The minimum SSL/TLS protocol version that the distribution can use to communicate with viewers. To specify a minimum version, choose a value for ``MinimumProtocolVersion``. For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) in the *Amazon CloudFront Developer Guide*. +// + The location of the SSL/TLS certificate, [(ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) (recommended) or [(IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html). You specify the location by setting a value in one of the following fields (not both): +// + ``ACMCertificateArn`` (In CloudFormation, this field name is ``AcmCertificateArn``. Note the different capitalization.) +// + ``IAMCertificateId`` (In CloudFormation, this field name is ``IamCertificateId``. Note the different capitalization.) +// +// All distributions support HTTPS connections from viewers. To require viewers to use HTTPS only, or to redirect them from HTTP to HTTPS, use ``ViewerProtocolPolicy`` in the ``CacheBehavior`` or ``DefaultCacheBehavior``. To specify how CloudFront should use SSL/TLS to communicate with your custom origin, use ``CustomOriginConfig``. +// For more information, see [Using HTTPS with CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html) and [Using Alternate Domain Names and HTTPS](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-alternate-domain-names.html) in the *Amazon CloudFront Developer Guide*. type DistributionViewerCertificateOutput struct{ *pulumi.OutputState } func (DistributionViewerCertificateOutput) ElementType() reflect.Type { @@ -6735,17 +6840,20 @@ func (o DistributionViewerCertificateOutput) IamCertificateId() pulumi.StringPtr // // For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*. // On the CloudFront console, this setting is called *Security Policy*. -// When you're using SNI only (you set “SSLSupportMethod“ to “sni-onl +// When you're using SNI only (you set “SSLSupportMethod“ to “sni-only“), you must specify “TLSv1“ or higher. (In CloudFormation, the field name is “SslSupportMethod“. Note the different capitalization.) +// If the distribution uses the CloudFront domain name such as “d111111abcdef8.cloudfront.net“ (you set “CloudFrontDefaultCertificate“ to “true“), CloudFront automatically sets the security policy to “TLSv1“ regardless of the value that you set here. func (o DistributionViewerCertificateOutput) MinimumProtocolVersion() pulumi.StringPtrOutput { return o.ApplyT(func(v DistributionViewerCertificate) *string { return v.MinimumProtocolVersion }).(pulumi.StringPtrOutput) } // In CloudFormation, this field name is “SslSupportMethod“. Note the different capitalization. // -// If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from. -// + ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication). This is recommended. Most browsers and clients support SNI. -// + ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront. -// + ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [Center](https://docs.aws.amazon.com/support/home). +// If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from. +// + ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication). This is recommended. Most browsers and clients support SNI. +// + ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront. +// + ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [Center](https://docs.aws.amazon.com/support/home). +// +// If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``, don't set a value for this field. func (o DistributionViewerCertificateOutput) SslSupportMethod() pulumi.StringPtrOutput { return o.ApplyT(func(v DistributionViewerCertificate) *string { return v.SslSupportMethod }).(pulumi.StringPtrOutput) } @@ -6823,7 +6931,8 @@ func (o DistributionViewerCertificatePtrOutput) IamCertificateId() pulumi.String // // For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*. // On the CloudFront console, this setting is called *Security Policy*. -// When you're using SNI only (you set “SSLSupportMethod“ to “sni-onl +// When you're using SNI only (you set “SSLSupportMethod“ to “sni-only“), you must specify “TLSv1“ or higher. (In CloudFormation, the field name is “SslSupportMethod“. Note the different capitalization.) +// If the distribution uses the CloudFront domain name such as “d111111abcdef8.cloudfront.net“ (you set “CloudFrontDefaultCertificate“ to “true“), CloudFront automatically sets the security policy to “TLSv1“ regardless of the value that you set here. func (o DistributionViewerCertificatePtrOutput) MinimumProtocolVersion() pulumi.StringPtrOutput { return o.ApplyT(func(v *DistributionViewerCertificate) *string { if v == nil { @@ -6835,10 +6944,12 @@ func (o DistributionViewerCertificatePtrOutput) MinimumProtocolVersion() pulumi. // In CloudFormation, this field name is “SslSupportMethod“. Note the different capitalization. // -// If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from. -// + ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication). This is recommended. Most browsers and clients support SNI. -// + ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront. -// + ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [Center](https://docs.aws.amazon.com/support/home). +// If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from. +// + ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication). This is recommended. Most browsers and clients support SNI. +// + ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront. +// + ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [Center](https://docs.aws.amazon.com/support/home). +// +// If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``, don't set a value for this field. func (o DistributionViewerCertificatePtrOutput) SslSupportMethod() pulumi.StringPtrOutput { return o.ApplyT(func(v *DistributionViewerCertificate) *string { if v == nil { diff --git a/sdk/go/aws/codeartifact/getPackageGroup.go b/sdk/go/aws/codeartifact/getPackageGroup.go new file mode 100644 index 0000000000..724cb988e1 --- /dev/null +++ b/sdk/go/aws/codeartifact/getPackageGroup.go @@ -0,0 +1,114 @@ +// 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 codeartifact + +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 resource schema to create a CodeArtifact package group. +func LookupPackageGroup(ctx *pulumi.Context, args *LookupPackageGroupArgs, opts ...pulumi.InvokeOption) (*LookupPackageGroupResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupPackageGroupResult + err := ctx.Invoke("aws-native:codeartifact:getPackageGroup", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupPackageGroupArgs struct { + // The ARN of the package group. + Arn string `pulumi:"arn"` +} + +type LookupPackageGroupResult struct { + // The ARN of the package group. + Arn *string `pulumi:"arn"` + // The contact info of the package group. + ContactInfo *string `pulumi:"contactInfo"` + // The text description of the package group. + Description *string `pulumi:"description"` + // The 12-digit account ID of the AWS account that owns the domain. + DomainOwner *string `pulumi:"domainOwner"` + // The package origin configuration of the package group. + OriginConfiguration *PackageGroupOriginConfiguration `pulumi:"originConfiguration"` + // An array of key-value pairs to apply to the package group. + Tags []aws.Tag `pulumi:"tags"` +} + +func LookupPackageGroupOutput(ctx *pulumi.Context, args LookupPackageGroupOutputArgs, opts ...pulumi.InvokeOption) LookupPackageGroupResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupPackageGroupResult, error) { + args := v.(LookupPackageGroupArgs) + r, err := LookupPackageGroup(ctx, &args, opts...) + var s LookupPackageGroupResult + if r != nil { + s = *r + } + return s, err + }).(LookupPackageGroupResultOutput) +} + +type LookupPackageGroupOutputArgs struct { + // The ARN of the package group. + Arn pulumi.StringInput `pulumi:"arn"` +} + +func (LookupPackageGroupOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupPackageGroupArgs)(nil)).Elem() +} + +type LookupPackageGroupResultOutput struct{ *pulumi.OutputState } + +func (LookupPackageGroupResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupPackageGroupResult)(nil)).Elem() +} + +func (o LookupPackageGroupResultOutput) ToLookupPackageGroupResultOutput() LookupPackageGroupResultOutput { + return o +} + +func (o LookupPackageGroupResultOutput) ToLookupPackageGroupResultOutputWithContext(ctx context.Context) LookupPackageGroupResultOutput { + return o +} + +// The ARN of the package group. +func (o LookupPackageGroupResultOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupPackageGroupResult) *string { return v.Arn }).(pulumi.StringPtrOutput) +} + +// The contact info of the package group. +func (o LookupPackageGroupResultOutput) ContactInfo() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupPackageGroupResult) *string { return v.ContactInfo }).(pulumi.StringPtrOutput) +} + +// The text description of the package group. +func (o LookupPackageGroupResultOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupPackageGroupResult) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// The 12-digit account ID of the AWS account that owns the domain. +func (o LookupPackageGroupResultOutput) DomainOwner() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupPackageGroupResult) *string { return v.DomainOwner }).(pulumi.StringPtrOutput) +} + +// The package origin configuration of the package group. +func (o LookupPackageGroupResultOutput) OriginConfiguration() PackageGroupOriginConfigurationPtrOutput { + return o.ApplyT(func(v LookupPackageGroupResult) *PackageGroupOriginConfiguration { return v.OriginConfiguration }).(PackageGroupOriginConfigurationPtrOutput) +} + +// An array of key-value pairs to apply to the package group. +func (o LookupPackageGroupResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupPackageGroupResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupPackageGroupResultOutput{}) +} diff --git a/sdk/go/aws/codeartifact/init.go b/sdk/go/aws/codeartifact/init.go index 0303483a0a..352ccf6a5c 100644 --- a/sdk/go/aws/codeartifact/init.go +++ b/sdk/go/aws/codeartifact/init.go @@ -23,6 +23,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "aws-native:codeartifact:Domain": r = &Domain{} + case "aws-native:codeartifact:PackageGroup": + r = &PackageGroup{} case "aws-native:codeartifact:Repository": r = &Repository{} default: diff --git a/sdk/go/aws/codeartifact/packageGroup.go b/sdk/go/aws/codeartifact/packageGroup.go new file mode 100644 index 0000000000..f905dd78f6 --- /dev/null +++ b/sdk/go/aws/codeartifact/packageGroup.go @@ -0,0 +1,203 @@ +// 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 codeartifact + +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" +) + +// The resource schema to create a CodeArtifact package group. +type PackageGroup struct { + pulumi.CustomResourceState + + // The ARN of the package group. + Arn pulumi.StringOutput `pulumi:"arn"` + // The contact info of the package group. + ContactInfo pulumi.StringPtrOutput `pulumi:"contactInfo"` + // The text description of the package group. + Description pulumi.StringPtrOutput `pulumi:"description"` + // The name of the domain that contains the package group. + DomainName pulumi.StringOutput `pulumi:"domainName"` + // The 12-digit account ID of the AWS account that owns the domain. + DomainOwner pulumi.StringPtrOutput `pulumi:"domainOwner"` + // The package origin configuration of the package group. + OriginConfiguration PackageGroupOriginConfigurationPtrOutput `pulumi:"originConfiguration"` + // The package group pattern that is used to gather packages. + Pattern pulumi.StringOutput `pulumi:"pattern"` + // An array of key-value pairs to apply to the package group. + Tags aws.TagArrayOutput `pulumi:"tags"` +} + +// NewPackageGroup registers a new resource with the given unique name, arguments, and options. +func NewPackageGroup(ctx *pulumi.Context, + name string, args *PackageGroupArgs, opts ...pulumi.ResourceOption) (*PackageGroup, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.DomainName == nil { + return nil, errors.New("invalid value for required argument 'DomainName'") + } + if args.Pattern == nil { + return nil, errors.New("invalid value for required argument 'Pattern'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "domainName", + "pattern", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource PackageGroup + err := ctx.RegisterResource("aws-native:codeartifact:PackageGroup", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetPackageGroup gets an existing PackageGroup 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 GetPackageGroup(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *PackageGroupState, opts ...pulumi.ResourceOption) (*PackageGroup, error) { + var resource PackageGroup + err := ctx.ReadResource("aws-native:codeartifact:PackageGroup", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering PackageGroup resources. +type packageGroupState struct { +} + +type PackageGroupState struct { +} + +func (PackageGroupState) ElementType() reflect.Type { + return reflect.TypeOf((*packageGroupState)(nil)).Elem() +} + +type packageGroupArgs struct { + // The contact info of the package group. + ContactInfo *string `pulumi:"contactInfo"` + // The text description of the package group. + Description *string `pulumi:"description"` + // The name of the domain that contains the package group. + DomainName string `pulumi:"domainName"` + // The 12-digit account ID of the AWS account that owns the domain. + DomainOwner *string `pulumi:"domainOwner"` + // The package origin configuration of the package group. + OriginConfiguration *PackageGroupOriginConfiguration `pulumi:"originConfiguration"` + // The package group pattern that is used to gather packages. + Pattern string `pulumi:"pattern"` + // An array of key-value pairs to apply to the package group. + Tags []aws.Tag `pulumi:"tags"` +} + +// The set of arguments for constructing a PackageGroup resource. +type PackageGroupArgs struct { + // The contact info of the package group. + ContactInfo pulumi.StringPtrInput + // The text description of the package group. + Description pulumi.StringPtrInput + // The name of the domain that contains the package group. + DomainName pulumi.StringInput + // The 12-digit account ID of the AWS account that owns the domain. + DomainOwner pulumi.StringPtrInput + // The package origin configuration of the package group. + OriginConfiguration PackageGroupOriginConfigurationPtrInput + // The package group pattern that is used to gather packages. + Pattern pulumi.StringInput + // An array of key-value pairs to apply to the package group. + Tags aws.TagArrayInput +} + +func (PackageGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*packageGroupArgs)(nil)).Elem() +} + +type PackageGroupInput interface { + pulumi.Input + + ToPackageGroupOutput() PackageGroupOutput + ToPackageGroupOutputWithContext(ctx context.Context) PackageGroupOutput +} + +func (*PackageGroup) ElementType() reflect.Type { + return reflect.TypeOf((**PackageGroup)(nil)).Elem() +} + +func (i *PackageGroup) ToPackageGroupOutput() PackageGroupOutput { + return i.ToPackageGroupOutputWithContext(context.Background()) +} + +func (i *PackageGroup) ToPackageGroupOutputWithContext(ctx context.Context) PackageGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(PackageGroupOutput) +} + +type PackageGroupOutput struct{ *pulumi.OutputState } + +func (PackageGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PackageGroup)(nil)).Elem() +} + +func (o PackageGroupOutput) ToPackageGroupOutput() PackageGroupOutput { + return o +} + +func (o PackageGroupOutput) ToPackageGroupOutputWithContext(ctx context.Context) PackageGroupOutput { + return o +} + +// The ARN of the package group. +func (o PackageGroupOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *PackageGroup) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// The contact info of the package group. +func (o PackageGroupOutput) ContactInfo() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PackageGroup) pulumi.StringPtrOutput { return v.ContactInfo }).(pulumi.StringPtrOutput) +} + +// The text description of the package group. +func (o PackageGroupOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PackageGroup) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// The name of the domain that contains the package group. +func (o PackageGroupOutput) DomainName() pulumi.StringOutput { + return o.ApplyT(func(v *PackageGroup) pulumi.StringOutput { return v.DomainName }).(pulumi.StringOutput) +} + +// The 12-digit account ID of the AWS account that owns the domain. +func (o PackageGroupOutput) DomainOwner() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PackageGroup) pulumi.StringPtrOutput { return v.DomainOwner }).(pulumi.StringPtrOutput) +} + +// The package origin configuration of the package group. +func (o PackageGroupOutput) OriginConfiguration() PackageGroupOriginConfigurationPtrOutput { + return o.ApplyT(func(v *PackageGroup) PackageGroupOriginConfigurationPtrOutput { return v.OriginConfiguration }).(PackageGroupOriginConfigurationPtrOutput) +} + +// The package group pattern that is used to gather packages. +func (o PackageGroupOutput) Pattern() pulumi.StringOutput { + return o.ApplyT(func(v *PackageGroup) pulumi.StringOutput { return v.Pattern }).(pulumi.StringOutput) +} + +// An array of key-value pairs to apply to the package group. +func (o PackageGroupOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v *PackageGroup) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*PackageGroupInput)(nil)).Elem(), &PackageGroup{}) + pulumi.RegisterOutputType(PackageGroupOutput{}) +} diff --git a/sdk/go/aws/codeartifact/pulumiEnums.go b/sdk/go/aws/codeartifact/pulumiEnums.go new file mode 100644 index 0000000000..b8a154c20d --- /dev/null +++ b/sdk/go/aws/codeartifact/pulumiEnums.go @@ -0,0 +1,187 @@ +// 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 codeartifact + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type PackageGroupRestrictionTypeRestrictionMode string + +const ( + PackageGroupRestrictionTypeRestrictionModeAllow = PackageGroupRestrictionTypeRestrictionMode("ALLOW") + PackageGroupRestrictionTypeRestrictionModeBlock = PackageGroupRestrictionTypeRestrictionMode("BLOCK") + PackageGroupRestrictionTypeRestrictionModeAllowSpecificRepositories = PackageGroupRestrictionTypeRestrictionMode("ALLOW_SPECIFIC_REPOSITORIES") + PackageGroupRestrictionTypeRestrictionModeInherit = PackageGroupRestrictionTypeRestrictionMode("INHERIT") +) + +func (PackageGroupRestrictionTypeRestrictionMode) ElementType() reflect.Type { + return reflect.TypeOf((*PackageGroupRestrictionTypeRestrictionMode)(nil)).Elem() +} + +func (e PackageGroupRestrictionTypeRestrictionMode) ToPackageGroupRestrictionTypeRestrictionModeOutput() PackageGroupRestrictionTypeRestrictionModeOutput { + return pulumi.ToOutput(e).(PackageGroupRestrictionTypeRestrictionModeOutput) +} + +func (e PackageGroupRestrictionTypeRestrictionMode) ToPackageGroupRestrictionTypeRestrictionModeOutputWithContext(ctx context.Context) PackageGroupRestrictionTypeRestrictionModeOutput { + return pulumi.ToOutputWithContext(ctx, e).(PackageGroupRestrictionTypeRestrictionModeOutput) +} + +func (e PackageGroupRestrictionTypeRestrictionMode) ToPackageGroupRestrictionTypeRestrictionModePtrOutput() PackageGroupRestrictionTypeRestrictionModePtrOutput { + return e.ToPackageGroupRestrictionTypeRestrictionModePtrOutputWithContext(context.Background()) +} + +func (e PackageGroupRestrictionTypeRestrictionMode) ToPackageGroupRestrictionTypeRestrictionModePtrOutputWithContext(ctx context.Context) PackageGroupRestrictionTypeRestrictionModePtrOutput { + return PackageGroupRestrictionTypeRestrictionMode(e).ToPackageGroupRestrictionTypeRestrictionModeOutputWithContext(ctx).ToPackageGroupRestrictionTypeRestrictionModePtrOutputWithContext(ctx) +} + +func (e PackageGroupRestrictionTypeRestrictionMode) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e PackageGroupRestrictionTypeRestrictionMode) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e PackageGroupRestrictionTypeRestrictionMode) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e PackageGroupRestrictionTypeRestrictionMode) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type PackageGroupRestrictionTypeRestrictionModeOutput struct{ *pulumi.OutputState } + +func (PackageGroupRestrictionTypeRestrictionModeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PackageGroupRestrictionTypeRestrictionMode)(nil)).Elem() +} + +func (o PackageGroupRestrictionTypeRestrictionModeOutput) ToPackageGroupRestrictionTypeRestrictionModeOutput() PackageGroupRestrictionTypeRestrictionModeOutput { + return o +} + +func (o PackageGroupRestrictionTypeRestrictionModeOutput) ToPackageGroupRestrictionTypeRestrictionModeOutputWithContext(ctx context.Context) PackageGroupRestrictionTypeRestrictionModeOutput { + return o +} + +func (o PackageGroupRestrictionTypeRestrictionModeOutput) ToPackageGroupRestrictionTypeRestrictionModePtrOutput() PackageGroupRestrictionTypeRestrictionModePtrOutput { + return o.ToPackageGroupRestrictionTypeRestrictionModePtrOutputWithContext(context.Background()) +} + +func (o PackageGroupRestrictionTypeRestrictionModeOutput) ToPackageGroupRestrictionTypeRestrictionModePtrOutputWithContext(ctx context.Context) PackageGroupRestrictionTypeRestrictionModePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PackageGroupRestrictionTypeRestrictionMode) *PackageGroupRestrictionTypeRestrictionMode { + return &v + }).(PackageGroupRestrictionTypeRestrictionModePtrOutput) +} + +func (o PackageGroupRestrictionTypeRestrictionModeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o PackageGroupRestrictionTypeRestrictionModeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e PackageGroupRestrictionTypeRestrictionMode) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o PackageGroupRestrictionTypeRestrictionModeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o PackageGroupRestrictionTypeRestrictionModeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e PackageGroupRestrictionTypeRestrictionMode) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type PackageGroupRestrictionTypeRestrictionModePtrOutput struct{ *pulumi.OutputState } + +func (PackageGroupRestrictionTypeRestrictionModePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PackageGroupRestrictionTypeRestrictionMode)(nil)).Elem() +} + +func (o PackageGroupRestrictionTypeRestrictionModePtrOutput) ToPackageGroupRestrictionTypeRestrictionModePtrOutput() PackageGroupRestrictionTypeRestrictionModePtrOutput { + return o +} + +func (o PackageGroupRestrictionTypeRestrictionModePtrOutput) ToPackageGroupRestrictionTypeRestrictionModePtrOutputWithContext(ctx context.Context) PackageGroupRestrictionTypeRestrictionModePtrOutput { + return o +} + +func (o PackageGroupRestrictionTypeRestrictionModePtrOutput) Elem() PackageGroupRestrictionTypeRestrictionModeOutput { + return o.ApplyT(func(v *PackageGroupRestrictionTypeRestrictionMode) PackageGroupRestrictionTypeRestrictionMode { + if v != nil { + return *v + } + var ret PackageGroupRestrictionTypeRestrictionMode + return ret + }).(PackageGroupRestrictionTypeRestrictionModeOutput) +} + +func (o PackageGroupRestrictionTypeRestrictionModePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o PackageGroupRestrictionTypeRestrictionModePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *PackageGroupRestrictionTypeRestrictionMode) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// PackageGroupRestrictionTypeRestrictionModeInput is an input type that accepts values of the PackageGroupRestrictionTypeRestrictionMode enum +// A concrete instance of `PackageGroupRestrictionTypeRestrictionModeInput` can be one of the following: +// +// PackageGroupRestrictionTypeRestrictionModeAllow +// PackageGroupRestrictionTypeRestrictionModeBlock +// PackageGroupRestrictionTypeRestrictionModeAllowSpecificRepositories +// PackageGroupRestrictionTypeRestrictionModeInherit +type PackageGroupRestrictionTypeRestrictionModeInput interface { + pulumi.Input + + ToPackageGroupRestrictionTypeRestrictionModeOutput() PackageGroupRestrictionTypeRestrictionModeOutput + ToPackageGroupRestrictionTypeRestrictionModeOutputWithContext(context.Context) PackageGroupRestrictionTypeRestrictionModeOutput +} + +var packageGroupRestrictionTypeRestrictionModePtrType = reflect.TypeOf((**PackageGroupRestrictionTypeRestrictionMode)(nil)).Elem() + +type PackageGroupRestrictionTypeRestrictionModePtrInput interface { + pulumi.Input + + ToPackageGroupRestrictionTypeRestrictionModePtrOutput() PackageGroupRestrictionTypeRestrictionModePtrOutput + ToPackageGroupRestrictionTypeRestrictionModePtrOutputWithContext(context.Context) PackageGroupRestrictionTypeRestrictionModePtrOutput +} + +type packageGroupRestrictionTypeRestrictionModePtr string + +func PackageGroupRestrictionTypeRestrictionModePtr(v string) PackageGroupRestrictionTypeRestrictionModePtrInput { + return (*packageGroupRestrictionTypeRestrictionModePtr)(&v) +} + +func (*packageGroupRestrictionTypeRestrictionModePtr) ElementType() reflect.Type { + return packageGroupRestrictionTypeRestrictionModePtrType +} + +func (in *packageGroupRestrictionTypeRestrictionModePtr) ToPackageGroupRestrictionTypeRestrictionModePtrOutput() PackageGroupRestrictionTypeRestrictionModePtrOutput { + return pulumi.ToOutput(in).(PackageGroupRestrictionTypeRestrictionModePtrOutput) +} + +func (in *packageGroupRestrictionTypeRestrictionModePtr) ToPackageGroupRestrictionTypeRestrictionModePtrOutputWithContext(ctx context.Context) PackageGroupRestrictionTypeRestrictionModePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(PackageGroupRestrictionTypeRestrictionModePtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*PackageGroupRestrictionTypeRestrictionModeInput)(nil)).Elem(), PackageGroupRestrictionTypeRestrictionMode("ALLOW")) + pulumi.RegisterInputType(reflect.TypeOf((*PackageGroupRestrictionTypeRestrictionModePtrInput)(nil)).Elem(), PackageGroupRestrictionTypeRestrictionMode("ALLOW")) + pulumi.RegisterOutputType(PackageGroupRestrictionTypeRestrictionModeOutput{}) + pulumi.RegisterOutputType(PackageGroupRestrictionTypeRestrictionModePtrOutput{}) +} diff --git a/sdk/go/aws/codeartifact/pulumiTypes.go b/sdk/go/aws/codeartifact/pulumiTypes.go index 5b725b1487..c180ae5438 100644 --- a/sdk/go/aws/codeartifact/pulumiTypes.go +++ b/sdk/go/aws/codeartifact/pulumiTypes.go @@ -4,7 +4,11 @@ package codeartifact import ( + "context" + "reflect" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) var _ = internal.GetEnvOrDefault @@ -17,6 +21,476 @@ type DomainTag struct { Value string `pulumi:"value"` } +type PackageGroupOriginConfiguration struct { + // The origin configuration that is applied to the package group. + Restrictions PackageGroupRestrictions `pulumi:"restrictions"` +} + +// PackageGroupOriginConfigurationInput is an input type that accepts PackageGroupOriginConfigurationArgs and PackageGroupOriginConfigurationOutput values. +// You can construct a concrete instance of `PackageGroupOriginConfigurationInput` via: +// +// PackageGroupOriginConfigurationArgs{...} +type PackageGroupOriginConfigurationInput interface { + pulumi.Input + + ToPackageGroupOriginConfigurationOutput() PackageGroupOriginConfigurationOutput + ToPackageGroupOriginConfigurationOutputWithContext(context.Context) PackageGroupOriginConfigurationOutput +} + +type PackageGroupOriginConfigurationArgs struct { + // The origin configuration that is applied to the package group. + Restrictions PackageGroupRestrictionsInput `pulumi:"restrictions"` +} + +func (PackageGroupOriginConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PackageGroupOriginConfiguration)(nil)).Elem() +} + +func (i PackageGroupOriginConfigurationArgs) ToPackageGroupOriginConfigurationOutput() PackageGroupOriginConfigurationOutput { + return i.ToPackageGroupOriginConfigurationOutputWithContext(context.Background()) +} + +func (i PackageGroupOriginConfigurationArgs) ToPackageGroupOriginConfigurationOutputWithContext(ctx context.Context) PackageGroupOriginConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(PackageGroupOriginConfigurationOutput) +} + +func (i PackageGroupOriginConfigurationArgs) ToPackageGroupOriginConfigurationPtrOutput() PackageGroupOriginConfigurationPtrOutput { + return i.ToPackageGroupOriginConfigurationPtrOutputWithContext(context.Background()) +} + +func (i PackageGroupOriginConfigurationArgs) ToPackageGroupOriginConfigurationPtrOutputWithContext(ctx context.Context) PackageGroupOriginConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PackageGroupOriginConfigurationOutput).ToPackageGroupOriginConfigurationPtrOutputWithContext(ctx) +} + +// PackageGroupOriginConfigurationPtrInput is an input type that accepts PackageGroupOriginConfigurationArgs, PackageGroupOriginConfigurationPtr and PackageGroupOriginConfigurationPtrOutput values. +// You can construct a concrete instance of `PackageGroupOriginConfigurationPtrInput` via: +// +// PackageGroupOriginConfigurationArgs{...} +// +// or: +// +// nil +type PackageGroupOriginConfigurationPtrInput interface { + pulumi.Input + + ToPackageGroupOriginConfigurationPtrOutput() PackageGroupOriginConfigurationPtrOutput + ToPackageGroupOriginConfigurationPtrOutputWithContext(context.Context) PackageGroupOriginConfigurationPtrOutput +} + +type packageGroupOriginConfigurationPtrType PackageGroupOriginConfigurationArgs + +func PackageGroupOriginConfigurationPtr(v *PackageGroupOriginConfigurationArgs) PackageGroupOriginConfigurationPtrInput { + return (*packageGroupOriginConfigurationPtrType)(v) +} + +func (*packageGroupOriginConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PackageGroupOriginConfiguration)(nil)).Elem() +} + +func (i *packageGroupOriginConfigurationPtrType) ToPackageGroupOriginConfigurationPtrOutput() PackageGroupOriginConfigurationPtrOutput { + return i.ToPackageGroupOriginConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *packageGroupOriginConfigurationPtrType) ToPackageGroupOriginConfigurationPtrOutputWithContext(ctx context.Context) PackageGroupOriginConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PackageGroupOriginConfigurationPtrOutput) +} + +type PackageGroupOriginConfigurationOutput struct{ *pulumi.OutputState } + +func (PackageGroupOriginConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PackageGroupOriginConfiguration)(nil)).Elem() +} + +func (o PackageGroupOriginConfigurationOutput) ToPackageGroupOriginConfigurationOutput() PackageGroupOriginConfigurationOutput { + return o +} + +func (o PackageGroupOriginConfigurationOutput) ToPackageGroupOriginConfigurationOutputWithContext(ctx context.Context) PackageGroupOriginConfigurationOutput { + return o +} + +func (o PackageGroupOriginConfigurationOutput) ToPackageGroupOriginConfigurationPtrOutput() PackageGroupOriginConfigurationPtrOutput { + return o.ToPackageGroupOriginConfigurationPtrOutputWithContext(context.Background()) +} + +func (o PackageGroupOriginConfigurationOutput) ToPackageGroupOriginConfigurationPtrOutputWithContext(ctx context.Context) PackageGroupOriginConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PackageGroupOriginConfiguration) *PackageGroupOriginConfiguration { + return &v + }).(PackageGroupOriginConfigurationPtrOutput) +} + +// The origin configuration that is applied to the package group. +func (o PackageGroupOriginConfigurationOutput) Restrictions() PackageGroupRestrictionsOutput { + return o.ApplyT(func(v PackageGroupOriginConfiguration) PackageGroupRestrictions { return v.Restrictions }).(PackageGroupRestrictionsOutput) +} + +type PackageGroupOriginConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (PackageGroupOriginConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PackageGroupOriginConfiguration)(nil)).Elem() +} + +func (o PackageGroupOriginConfigurationPtrOutput) ToPackageGroupOriginConfigurationPtrOutput() PackageGroupOriginConfigurationPtrOutput { + return o +} + +func (o PackageGroupOriginConfigurationPtrOutput) ToPackageGroupOriginConfigurationPtrOutputWithContext(ctx context.Context) PackageGroupOriginConfigurationPtrOutput { + return o +} + +func (o PackageGroupOriginConfigurationPtrOutput) Elem() PackageGroupOriginConfigurationOutput { + return o.ApplyT(func(v *PackageGroupOriginConfiguration) PackageGroupOriginConfiguration { + if v != nil { + return *v + } + var ret PackageGroupOriginConfiguration + return ret + }).(PackageGroupOriginConfigurationOutput) +} + +// The origin configuration that is applied to the package group. +func (o PackageGroupOriginConfigurationPtrOutput) Restrictions() PackageGroupRestrictionsPtrOutput { + return o.ApplyT(func(v *PackageGroupOriginConfiguration) *PackageGroupRestrictions { + if v == nil { + return nil + } + return &v.Restrictions + }).(PackageGroupRestrictionsPtrOutput) +} + +type PackageGroupRestrictionType struct { + Repositories []string `pulumi:"repositories"` + RestrictionMode PackageGroupRestrictionTypeRestrictionMode `pulumi:"restrictionMode"` +} + +// PackageGroupRestrictionTypeInput is an input type that accepts PackageGroupRestrictionTypeArgs and PackageGroupRestrictionTypeOutput values. +// You can construct a concrete instance of `PackageGroupRestrictionTypeInput` via: +// +// PackageGroupRestrictionTypeArgs{...} +type PackageGroupRestrictionTypeInput interface { + pulumi.Input + + ToPackageGroupRestrictionTypeOutput() PackageGroupRestrictionTypeOutput + ToPackageGroupRestrictionTypeOutputWithContext(context.Context) PackageGroupRestrictionTypeOutput +} + +type PackageGroupRestrictionTypeArgs struct { + Repositories pulumi.StringArrayInput `pulumi:"repositories"` + RestrictionMode PackageGroupRestrictionTypeRestrictionModeInput `pulumi:"restrictionMode"` +} + +func (PackageGroupRestrictionTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PackageGroupRestrictionType)(nil)).Elem() +} + +func (i PackageGroupRestrictionTypeArgs) ToPackageGroupRestrictionTypeOutput() PackageGroupRestrictionTypeOutput { + return i.ToPackageGroupRestrictionTypeOutputWithContext(context.Background()) +} + +func (i PackageGroupRestrictionTypeArgs) ToPackageGroupRestrictionTypeOutputWithContext(ctx context.Context) PackageGroupRestrictionTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(PackageGroupRestrictionTypeOutput) +} + +func (i PackageGroupRestrictionTypeArgs) ToPackageGroupRestrictionTypePtrOutput() PackageGroupRestrictionTypePtrOutput { + return i.ToPackageGroupRestrictionTypePtrOutputWithContext(context.Background()) +} + +func (i PackageGroupRestrictionTypeArgs) ToPackageGroupRestrictionTypePtrOutputWithContext(ctx context.Context) PackageGroupRestrictionTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PackageGroupRestrictionTypeOutput).ToPackageGroupRestrictionTypePtrOutputWithContext(ctx) +} + +// PackageGroupRestrictionTypePtrInput is an input type that accepts PackageGroupRestrictionTypeArgs, PackageGroupRestrictionTypePtr and PackageGroupRestrictionTypePtrOutput values. +// You can construct a concrete instance of `PackageGroupRestrictionTypePtrInput` via: +// +// PackageGroupRestrictionTypeArgs{...} +// +// or: +// +// nil +type PackageGroupRestrictionTypePtrInput interface { + pulumi.Input + + ToPackageGroupRestrictionTypePtrOutput() PackageGroupRestrictionTypePtrOutput + ToPackageGroupRestrictionTypePtrOutputWithContext(context.Context) PackageGroupRestrictionTypePtrOutput +} + +type packageGroupRestrictionTypePtrType PackageGroupRestrictionTypeArgs + +func PackageGroupRestrictionTypePtr(v *PackageGroupRestrictionTypeArgs) PackageGroupRestrictionTypePtrInput { + return (*packageGroupRestrictionTypePtrType)(v) +} + +func (*packageGroupRestrictionTypePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PackageGroupRestrictionType)(nil)).Elem() +} + +func (i *packageGroupRestrictionTypePtrType) ToPackageGroupRestrictionTypePtrOutput() PackageGroupRestrictionTypePtrOutput { + return i.ToPackageGroupRestrictionTypePtrOutputWithContext(context.Background()) +} + +func (i *packageGroupRestrictionTypePtrType) ToPackageGroupRestrictionTypePtrOutputWithContext(ctx context.Context) PackageGroupRestrictionTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PackageGroupRestrictionTypePtrOutput) +} + +type PackageGroupRestrictionTypeOutput struct{ *pulumi.OutputState } + +func (PackageGroupRestrictionTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PackageGroupRestrictionType)(nil)).Elem() +} + +func (o PackageGroupRestrictionTypeOutput) ToPackageGroupRestrictionTypeOutput() PackageGroupRestrictionTypeOutput { + return o +} + +func (o PackageGroupRestrictionTypeOutput) ToPackageGroupRestrictionTypeOutputWithContext(ctx context.Context) PackageGroupRestrictionTypeOutput { + return o +} + +func (o PackageGroupRestrictionTypeOutput) ToPackageGroupRestrictionTypePtrOutput() PackageGroupRestrictionTypePtrOutput { + return o.ToPackageGroupRestrictionTypePtrOutputWithContext(context.Background()) +} + +func (o PackageGroupRestrictionTypeOutput) ToPackageGroupRestrictionTypePtrOutputWithContext(ctx context.Context) PackageGroupRestrictionTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PackageGroupRestrictionType) *PackageGroupRestrictionType { + return &v + }).(PackageGroupRestrictionTypePtrOutput) +} + +func (o PackageGroupRestrictionTypeOutput) Repositories() pulumi.StringArrayOutput { + return o.ApplyT(func(v PackageGroupRestrictionType) []string { return v.Repositories }).(pulumi.StringArrayOutput) +} + +func (o PackageGroupRestrictionTypeOutput) RestrictionMode() PackageGroupRestrictionTypeRestrictionModeOutput { + return o.ApplyT(func(v PackageGroupRestrictionType) PackageGroupRestrictionTypeRestrictionMode { + return v.RestrictionMode + }).(PackageGroupRestrictionTypeRestrictionModeOutput) +} + +type PackageGroupRestrictionTypePtrOutput struct{ *pulumi.OutputState } + +func (PackageGroupRestrictionTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PackageGroupRestrictionType)(nil)).Elem() +} + +func (o PackageGroupRestrictionTypePtrOutput) ToPackageGroupRestrictionTypePtrOutput() PackageGroupRestrictionTypePtrOutput { + return o +} + +func (o PackageGroupRestrictionTypePtrOutput) ToPackageGroupRestrictionTypePtrOutputWithContext(ctx context.Context) PackageGroupRestrictionTypePtrOutput { + return o +} + +func (o PackageGroupRestrictionTypePtrOutput) Elem() PackageGroupRestrictionTypeOutput { + return o.ApplyT(func(v *PackageGroupRestrictionType) PackageGroupRestrictionType { + if v != nil { + return *v + } + var ret PackageGroupRestrictionType + return ret + }).(PackageGroupRestrictionTypeOutput) +} + +func (o PackageGroupRestrictionTypePtrOutput) Repositories() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PackageGroupRestrictionType) []string { + if v == nil { + return nil + } + return v.Repositories + }).(pulumi.StringArrayOutput) +} + +func (o PackageGroupRestrictionTypePtrOutput) RestrictionMode() PackageGroupRestrictionTypeRestrictionModePtrOutput { + return o.ApplyT(func(v *PackageGroupRestrictionType) *PackageGroupRestrictionTypeRestrictionMode { + if v == nil { + return nil + } + return &v.RestrictionMode + }).(PackageGroupRestrictionTypeRestrictionModePtrOutput) +} + +type PackageGroupRestrictions struct { + // The external upstream restriction determines if new package versions can be ingested or retained from external connections. + ExternalUpstream *PackageGroupRestrictionType `pulumi:"externalUpstream"` + // The internal upstream restriction determines if new package versions can be ingested or retained from upstream repositories. + InternalUpstream *PackageGroupRestrictionType `pulumi:"internalUpstream"` + // The publish restriction determines if new package versions can be published. + Publish *PackageGroupRestrictionType `pulumi:"publish"` +} + +// PackageGroupRestrictionsInput is an input type that accepts PackageGroupRestrictionsArgs and PackageGroupRestrictionsOutput values. +// You can construct a concrete instance of `PackageGroupRestrictionsInput` via: +// +// PackageGroupRestrictionsArgs{...} +type PackageGroupRestrictionsInput interface { + pulumi.Input + + ToPackageGroupRestrictionsOutput() PackageGroupRestrictionsOutput + ToPackageGroupRestrictionsOutputWithContext(context.Context) PackageGroupRestrictionsOutput +} + +type PackageGroupRestrictionsArgs struct { + // The external upstream restriction determines if new package versions can be ingested or retained from external connections. + ExternalUpstream PackageGroupRestrictionTypePtrInput `pulumi:"externalUpstream"` + // The internal upstream restriction determines if new package versions can be ingested or retained from upstream repositories. + InternalUpstream PackageGroupRestrictionTypePtrInput `pulumi:"internalUpstream"` + // The publish restriction determines if new package versions can be published. + Publish PackageGroupRestrictionTypePtrInput `pulumi:"publish"` +} + +func (PackageGroupRestrictionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PackageGroupRestrictions)(nil)).Elem() +} + +func (i PackageGroupRestrictionsArgs) ToPackageGroupRestrictionsOutput() PackageGroupRestrictionsOutput { + return i.ToPackageGroupRestrictionsOutputWithContext(context.Background()) +} + +func (i PackageGroupRestrictionsArgs) ToPackageGroupRestrictionsOutputWithContext(ctx context.Context) PackageGroupRestrictionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(PackageGroupRestrictionsOutput) +} + +func (i PackageGroupRestrictionsArgs) ToPackageGroupRestrictionsPtrOutput() PackageGroupRestrictionsPtrOutput { + return i.ToPackageGroupRestrictionsPtrOutputWithContext(context.Background()) +} + +func (i PackageGroupRestrictionsArgs) ToPackageGroupRestrictionsPtrOutputWithContext(ctx context.Context) PackageGroupRestrictionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PackageGroupRestrictionsOutput).ToPackageGroupRestrictionsPtrOutputWithContext(ctx) +} + +// PackageGroupRestrictionsPtrInput is an input type that accepts PackageGroupRestrictionsArgs, PackageGroupRestrictionsPtr and PackageGroupRestrictionsPtrOutput values. +// You can construct a concrete instance of `PackageGroupRestrictionsPtrInput` via: +// +// PackageGroupRestrictionsArgs{...} +// +// or: +// +// nil +type PackageGroupRestrictionsPtrInput interface { + pulumi.Input + + ToPackageGroupRestrictionsPtrOutput() PackageGroupRestrictionsPtrOutput + ToPackageGroupRestrictionsPtrOutputWithContext(context.Context) PackageGroupRestrictionsPtrOutput +} + +type packageGroupRestrictionsPtrType PackageGroupRestrictionsArgs + +func PackageGroupRestrictionsPtr(v *PackageGroupRestrictionsArgs) PackageGroupRestrictionsPtrInput { + return (*packageGroupRestrictionsPtrType)(v) +} + +func (*packageGroupRestrictionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PackageGroupRestrictions)(nil)).Elem() +} + +func (i *packageGroupRestrictionsPtrType) ToPackageGroupRestrictionsPtrOutput() PackageGroupRestrictionsPtrOutput { + return i.ToPackageGroupRestrictionsPtrOutputWithContext(context.Background()) +} + +func (i *packageGroupRestrictionsPtrType) ToPackageGroupRestrictionsPtrOutputWithContext(ctx context.Context) PackageGroupRestrictionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PackageGroupRestrictionsPtrOutput) +} + +type PackageGroupRestrictionsOutput struct{ *pulumi.OutputState } + +func (PackageGroupRestrictionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PackageGroupRestrictions)(nil)).Elem() +} + +func (o PackageGroupRestrictionsOutput) ToPackageGroupRestrictionsOutput() PackageGroupRestrictionsOutput { + return o +} + +func (o PackageGroupRestrictionsOutput) ToPackageGroupRestrictionsOutputWithContext(ctx context.Context) PackageGroupRestrictionsOutput { + return o +} + +func (o PackageGroupRestrictionsOutput) ToPackageGroupRestrictionsPtrOutput() PackageGroupRestrictionsPtrOutput { + return o.ToPackageGroupRestrictionsPtrOutputWithContext(context.Background()) +} + +func (o PackageGroupRestrictionsOutput) ToPackageGroupRestrictionsPtrOutputWithContext(ctx context.Context) PackageGroupRestrictionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PackageGroupRestrictions) *PackageGroupRestrictions { + return &v + }).(PackageGroupRestrictionsPtrOutput) +} + +// The external upstream restriction determines if new package versions can be ingested or retained from external connections. +func (o PackageGroupRestrictionsOutput) ExternalUpstream() PackageGroupRestrictionTypePtrOutput { + return o.ApplyT(func(v PackageGroupRestrictions) *PackageGroupRestrictionType { return v.ExternalUpstream }).(PackageGroupRestrictionTypePtrOutput) +} + +// The internal upstream restriction determines if new package versions can be ingested or retained from upstream repositories. +func (o PackageGroupRestrictionsOutput) InternalUpstream() PackageGroupRestrictionTypePtrOutput { + return o.ApplyT(func(v PackageGroupRestrictions) *PackageGroupRestrictionType { return v.InternalUpstream }).(PackageGroupRestrictionTypePtrOutput) +} + +// The publish restriction determines if new package versions can be published. +func (o PackageGroupRestrictionsOutput) Publish() PackageGroupRestrictionTypePtrOutput { + return o.ApplyT(func(v PackageGroupRestrictions) *PackageGroupRestrictionType { return v.Publish }).(PackageGroupRestrictionTypePtrOutput) +} + +type PackageGroupRestrictionsPtrOutput struct{ *pulumi.OutputState } + +func (PackageGroupRestrictionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PackageGroupRestrictions)(nil)).Elem() +} + +func (o PackageGroupRestrictionsPtrOutput) ToPackageGroupRestrictionsPtrOutput() PackageGroupRestrictionsPtrOutput { + return o +} + +func (o PackageGroupRestrictionsPtrOutput) ToPackageGroupRestrictionsPtrOutputWithContext(ctx context.Context) PackageGroupRestrictionsPtrOutput { + return o +} + +func (o PackageGroupRestrictionsPtrOutput) Elem() PackageGroupRestrictionsOutput { + return o.ApplyT(func(v *PackageGroupRestrictions) PackageGroupRestrictions { + if v != nil { + return *v + } + var ret PackageGroupRestrictions + return ret + }).(PackageGroupRestrictionsOutput) +} + +// The external upstream restriction determines if new package versions can be ingested or retained from external connections. +func (o PackageGroupRestrictionsPtrOutput) ExternalUpstream() PackageGroupRestrictionTypePtrOutput { + return o.ApplyT(func(v *PackageGroupRestrictions) *PackageGroupRestrictionType { + if v == nil { + return nil + } + return v.ExternalUpstream + }).(PackageGroupRestrictionTypePtrOutput) +} + +// The internal upstream restriction determines if new package versions can be ingested or retained from upstream repositories. +func (o PackageGroupRestrictionsPtrOutput) InternalUpstream() PackageGroupRestrictionTypePtrOutput { + return o.ApplyT(func(v *PackageGroupRestrictions) *PackageGroupRestrictionType { + if v == nil { + return nil + } + return v.InternalUpstream + }).(PackageGroupRestrictionTypePtrOutput) +} + +// The publish restriction determines if new package versions can be published. +func (o PackageGroupRestrictionsPtrOutput) Publish() PackageGroupRestrictionTypePtrOutput { + return o.ApplyT(func(v *PackageGroupRestrictions) *PackageGroupRestrictionType { + if v == nil { + return nil + } + return v.Publish + }).(PackageGroupRestrictionTypePtrOutput) +} + +// A key-value pair to associate with a resource. +type PackageGroupTag 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 1 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"` +} + // A key-value pair to associate with a resource. type RepositoryTag 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 -. @@ -26,4 +500,16 @@ type RepositoryTag struct { } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*PackageGroupOriginConfigurationInput)(nil)).Elem(), PackageGroupOriginConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PackageGroupOriginConfigurationPtrInput)(nil)).Elem(), PackageGroupOriginConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PackageGroupRestrictionTypeInput)(nil)).Elem(), PackageGroupRestrictionTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PackageGroupRestrictionTypePtrInput)(nil)).Elem(), PackageGroupRestrictionTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PackageGroupRestrictionsInput)(nil)).Elem(), PackageGroupRestrictionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PackageGroupRestrictionsPtrInput)(nil)).Elem(), PackageGroupRestrictionsArgs{}) + pulumi.RegisterOutputType(PackageGroupOriginConfigurationOutput{}) + pulumi.RegisterOutputType(PackageGroupOriginConfigurationPtrOutput{}) + pulumi.RegisterOutputType(PackageGroupRestrictionTypeOutput{}) + pulumi.RegisterOutputType(PackageGroupRestrictionTypePtrOutput{}) + pulumi.RegisterOutputType(PackageGroupRestrictionsOutput{}) + pulumi.RegisterOutputType(PackageGroupRestrictionsPtrOutput{}) } diff --git a/sdk/go/aws/codeconnections/connection.go b/sdk/go/aws/codeconnections/connection.go new file mode 100644 index 0000000000..3e93762d6c --- /dev/null +++ b/sdk/go/aws/codeconnections/connection.go @@ -0,0 +1,178 @@ +// 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 codeconnections + +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" +) + +// Schema for AWS::CodeConnections::Connection resource which can be used to connect external source providers with other AWS services (i.e. AWS CodePipeline) +type Connection struct { + pulumi.CustomResourceState + + // The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services. + ConnectionArn pulumi.StringOutput `pulumi:"connectionArn"` + // The name of the connection. Connection names must be unique in an AWS user account. + ConnectionName pulumi.StringOutput `pulumi:"connectionName"` + // The current status of the connection. + ConnectionStatus pulumi.StringOutput `pulumi:"connectionStatus"` + // The host arn configured to represent the infrastructure where your third-party provider is installed. You must specify either a ProviderType or a HostArn. + HostArn pulumi.StringPtrOutput `pulumi:"hostArn"` + // The name of the external provider where your third-party code repository is configured. For Bitbucket, this is the account ID of the owner of the Bitbucket repository. + OwnerAccountId pulumi.StringOutput `pulumi:"ownerAccountId"` + // The name of the external provider where your third-party code repository is configured. You must specify either a ProviderType or a HostArn. + ProviderType pulumi.StringPtrOutput `pulumi:"providerType"` + // Specifies the tags applied to a connection. + Tags aws.TagArrayOutput `pulumi:"tags"` +} + +// NewConnection registers a new resource with the given unique name, arguments, and options. +func NewConnection(ctx *pulumi.Context, + name string, args *ConnectionArgs, opts ...pulumi.ResourceOption) (*Connection, error) { + if args == nil { + args = &ConnectionArgs{} + } + + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "connectionName", + "hostArn", + "providerType", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource Connection + err := ctx.RegisterResource("aws-native:codeconnections:Connection", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetConnection gets an existing Connection 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 GetConnection(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ConnectionState, opts ...pulumi.ResourceOption) (*Connection, error) { + var resource Connection + err := ctx.ReadResource("aws-native:codeconnections:Connection", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Connection resources. +type connectionState struct { +} + +type ConnectionState struct { +} + +func (ConnectionState) ElementType() reflect.Type { + return reflect.TypeOf((*connectionState)(nil)).Elem() +} + +type connectionArgs struct { + // The name of the connection. Connection names must be unique in an AWS user account. + ConnectionName *string `pulumi:"connectionName"` + // The host arn configured to represent the infrastructure where your third-party provider is installed. You must specify either a ProviderType or a HostArn. + HostArn *string `pulumi:"hostArn"` + // The name of the external provider where your third-party code repository is configured. You must specify either a ProviderType or a HostArn. + ProviderType *string `pulumi:"providerType"` + // Specifies the tags applied to a connection. + Tags []aws.Tag `pulumi:"tags"` +} + +// The set of arguments for constructing a Connection resource. +type ConnectionArgs struct { + // The name of the connection. Connection names must be unique in an AWS user account. + ConnectionName pulumi.StringPtrInput + // The host arn configured to represent the infrastructure where your third-party provider is installed. You must specify either a ProviderType or a HostArn. + HostArn pulumi.StringPtrInput + // The name of the external provider where your third-party code repository is configured. You must specify either a ProviderType or a HostArn. + ProviderType pulumi.StringPtrInput + // Specifies the tags applied to a connection. + Tags aws.TagArrayInput +} + +func (ConnectionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*connectionArgs)(nil)).Elem() +} + +type ConnectionInput interface { + pulumi.Input + + ToConnectionOutput() ConnectionOutput + ToConnectionOutputWithContext(ctx context.Context) ConnectionOutput +} + +func (*Connection) ElementType() reflect.Type { + return reflect.TypeOf((**Connection)(nil)).Elem() +} + +func (i *Connection) ToConnectionOutput() ConnectionOutput { + return i.ToConnectionOutputWithContext(context.Background()) +} + +func (i *Connection) ToConnectionOutputWithContext(ctx context.Context) ConnectionOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConnectionOutput) +} + +type ConnectionOutput struct{ *pulumi.OutputState } + +func (ConnectionOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Connection)(nil)).Elem() +} + +func (o ConnectionOutput) ToConnectionOutput() ConnectionOutput { + return o +} + +func (o ConnectionOutput) ToConnectionOutputWithContext(ctx context.Context) ConnectionOutput { + return o +} + +// The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services. +func (o ConnectionOutput) ConnectionArn() pulumi.StringOutput { + return o.ApplyT(func(v *Connection) pulumi.StringOutput { return v.ConnectionArn }).(pulumi.StringOutput) +} + +// The name of the connection. Connection names must be unique in an AWS user account. +func (o ConnectionOutput) ConnectionName() pulumi.StringOutput { + return o.ApplyT(func(v *Connection) pulumi.StringOutput { return v.ConnectionName }).(pulumi.StringOutput) +} + +// The current status of the connection. +func (o ConnectionOutput) ConnectionStatus() pulumi.StringOutput { + return o.ApplyT(func(v *Connection) pulumi.StringOutput { return v.ConnectionStatus }).(pulumi.StringOutput) +} + +// The host arn configured to represent the infrastructure where your third-party provider is installed. You must specify either a ProviderType or a HostArn. +func (o ConnectionOutput) HostArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Connection) pulumi.StringPtrOutput { return v.HostArn }).(pulumi.StringPtrOutput) +} + +// The name of the external provider where your third-party code repository is configured. For Bitbucket, this is the account ID of the owner of the Bitbucket repository. +func (o ConnectionOutput) OwnerAccountId() pulumi.StringOutput { + return o.ApplyT(func(v *Connection) pulumi.StringOutput { return v.OwnerAccountId }).(pulumi.StringOutput) +} + +// The name of the external provider where your third-party code repository is configured. You must specify either a ProviderType or a HostArn. +func (o ConnectionOutput) ProviderType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Connection) pulumi.StringPtrOutput { return v.ProviderType }).(pulumi.StringPtrOutput) +} + +// Specifies the tags applied to a connection. +func (o ConnectionOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v *Connection) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ConnectionInput)(nil)).Elem(), &Connection{}) + pulumi.RegisterOutputType(ConnectionOutput{}) +} diff --git a/sdk/go/aws/codeconnections/getConnection.go b/sdk/go/aws/codeconnections/getConnection.go new file mode 100644 index 0000000000..20b06c9692 --- /dev/null +++ b/sdk/go/aws/codeconnections/getConnection.go @@ -0,0 +1,100 @@ +// 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 codeconnections + +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" +) + +// Schema for AWS::CodeConnections::Connection resource which can be used to connect external source providers with other AWS services (i.e. AWS CodePipeline) +func LookupConnection(ctx *pulumi.Context, args *LookupConnectionArgs, opts ...pulumi.InvokeOption) (*LookupConnectionResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupConnectionResult + err := ctx.Invoke("aws-native:codeconnections:getConnection", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupConnectionArgs struct { + // The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services. + ConnectionArn string `pulumi:"connectionArn"` +} + +type LookupConnectionResult struct { + // The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services. + ConnectionArn *string `pulumi:"connectionArn"` + // The current status of the connection. + ConnectionStatus *string `pulumi:"connectionStatus"` + // The name of the external provider where your third-party code repository is configured. For Bitbucket, this is the account ID of the owner of the Bitbucket repository. + OwnerAccountId *string `pulumi:"ownerAccountId"` + // Specifies the tags applied to a connection. + Tags []aws.Tag `pulumi:"tags"` +} + +func LookupConnectionOutput(ctx *pulumi.Context, args LookupConnectionOutputArgs, opts ...pulumi.InvokeOption) LookupConnectionResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupConnectionResult, error) { + args := v.(LookupConnectionArgs) + r, err := LookupConnection(ctx, &args, opts...) + var s LookupConnectionResult + if r != nil { + s = *r + } + return s, err + }).(LookupConnectionResultOutput) +} + +type LookupConnectionOutputArgs struct { + // The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services. + ConnectionArn pulumi.StringInput `pulumi:"connectionArn"` +} + +func (LookupConnectionOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupConnectionArgs)(nil)).Elem() +} + +type LookupConnectionResultOutput struct{ *pulumi.OutputState } + +func (LookupConnectionResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupConnectionResult)(nil)).Elem() +} + +func (o LookupConnectionResultOutput) ToLookupConnectionResultOutput() LookupConnectionResultOutput { + return o +} + +func (o LookupConnectionResultOutput) ToLookupConnectionResultOutputWithContext(ctx context.Context) LookupConnectionResultOutput { + return o +} + +// The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services. +func (o LookupConnectionResultOutput) ConnectionArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupConnectionResult) *string { return v.ConnectionArn }).(pulumi.StringPtrOutput) +} + +// The current status of the connection. +func (o LookupConnectionResultOutput) ConnectionStatus() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupConnectionResult) *string { return v.ConnectionStatus }).(pulumi.StringPtrOutput) +} + +// The name of the external provider where your third-party code repository is configured. For Bitbucket, this is the account ID of the owner of the Bitbucket repository. +func (o LookupConnectionResultOutput) OwnerAccountId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupConnectionResult) *string { return v.OwnerAccountId }).(pulumi.StringPtrOutput) +} + +// Specifies the tags applied to a connection. +func (o LookupConnectionResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupConnectionResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupConnectionResultOutput{}) +} diff --git a/sdk/go/aws/codeconnections/init.go b/sdk/go/aws/codeconnections/init.go new file mode 100644 index 0000000000..967e3c1181 --- /dev/null +++ b/sdk/go/aws/codeconnections/init.go @@ -0,0 +1,44 @@ +// 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 codeconnections + +import ( + "fmt" + + "github.com/blang/semver" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type module struct { + version semver.Version +} + +func (m *module) Version() semver.Version { + return m.version +} + +func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { + switch typ { + case "aws-native:codeconnections:Connection": + r = &Connection{} + default: + return nil, fmt.Errorf("unknown resource type: %s", typ) + } + + err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return +} + +func init() { + version, err := internal.PkgVersion() + if err != nil { + version = semver.Version{Major: 1} + } + pulumi.RegisterResourceModule( + "aws-native", + "codeconnections", + &module{version}, + ) +} diff --git a/sdk/go/aws/codeconnections/pulumiTypes.go b/sdk/go/aws/codeconnections/pulumiTypes.go new file mode 100644 index 0000000000..f618f42ba3 --- /dev/null +++ b/sdk/go/aws/codeconnections/pulumiTypes.go @@ -0,0 +1,21 @@ +// 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 codeconnections + +import ( + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" +) + +var _ = internal.GetEnvOrDefault + +// A key-value pair to associate with a resource. +type ConnectionTag 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() { +} diff --git a/sdk/go/aws/codestarconnections/getRepositoryLink.go b/sdk/go/aws/codestarconnections/getRepositoryLink.go index b2266e22aa..6b917ef7b2 100644 --- a/sdk/go/aws/codestarconnections/getRepositoryLink.go +++ b/sdk/go/aws/codestarconnections/getRepositoryLink.go @@ -34,7 +34,7 @@ type LookupRepositoryLinkResult struct { // The ARN of the KMS key that the customer can optionally specify to use to encrypt RepositoryLink properties. If not specified, a default key will be used. EncryptionKeyArn *string `pulumi:"encryptionKeyArn"` // The name of the external provider where your third-party code repository is configured. - ProviderType *string `pulumi:"providerType"` + ProviderType *RepositoryLinkProviderType `pulumi:"providerType"` // A unique Amazon Resource Name (ARN) to designate the repository link. RepositoryLinkArn *string `pulumi:"repositoryLinkArn"` // A UUID that uniquely identifies the RepositoryLink. @@ -90,8 +90,8 @@ func (o LookupRepositoryLinkResultOutput) EncryptionKeyArn() pulumi.StringPtrOut } // The name of the external provider where your third-party code repository is configured. -func (o LookupRepositoryLinkResultOutput) ProviderType() pulumi.StringPtrOutput { - return o.ApplyT(func(v LookupRepositoryLinkResult) *string { return v.ProviderType }).(pulumi.StringPtrOutput) +func (o LookupRepositoryLinkResultOutput) ProviderType() RepositoryLinkProviderTypePtrOutput { + return o.ApplyT(func(v LookupRepositoryLinkResult) *RepositoryLinkProviderType { return v.ProviderType }).(RepositoryLinkProviderTypePtrOutput) } // A unique Amazon Resource Name (ARN) to designate the repository link. diff --git a/sdk/go/aws/codestarconnections/getSyncConfiguration.go b/sdk/go/aws/codestarconnections/getSyncConfiguration.go index 35e60fb84d..b5b5c725a4 100644 --- a/sdk/go/aws/codestarconnections/getSyncConfiguration.go +++ b/sdk/go/aws/codestarconnections/getSyncConfiguration.go @@ -37,13 +37,17 @@ type LookupSyncConfigurationResult struct { // the ID of the entity that owns the repository. OwnerId *string `pulumi:"ownerId"` // The name of the external provider where your third-party code repository is configured. - ProviderType *string `pulumi:"providerType"` + ProviderType *SyncConfigurationProviderType `pulumi:"providerType"` + // Whether to enable or disable publishing of deployment status to source providers. + PublishDeploymentStatus *SyncConfigurationPublishDeploymentStatus `pulumi:"publishDeploymentStatus"` // A UUID that uniquely identifies the RepositoryLink that the SyncConfig is associated with. RepositoryLinkId *string `pulumi:"repositoryLinkId"` // The name of the repository that is being synced to. RepositoryName *string `pulumi:"repositoryName"` // The IAM Role that allows AWS to update CloudFormation stacks based on content in the specified repository. RoleArn *string `pulumi:"roleArn"` + // When to trigger Git sync to begin the stack update. + TriggerResourceUpdateOn *SyncConfigurationTriggerResourceUpdateOn `pulumi:"triggerResourceUpdateOn"` } func LookupSyncConfigurationOutput(ctx *pulumi.Context, args LookupSyncConfigurationOutputArgs, opts ...pulumi.InvokeOption) LookupSyncConfigurationResultOutput { @@ -100,8 +104,15 @@ func (o LookupSyncConfigurationResultOutput) OwnerId() pulumi.StringPtrOutput { } // The name of the external provider where your third-party code repository is configured. -func (o LookupSyncConfigurationResultOutput) ProviderType() pulumi.StringPtrOutput { - return o.ApplyT(func(v LookupSyncConfigurationResult) *string { return v.ProviderType }).(pulumi.StringPtrOutput) +func (o LookupSyncConfigurationResultOutput) ProviderType() SyncConfigurationProviderTypePtrOutput { + return o.ApplyT(func(v LookupSyncConfigurationResult) *SyncConfigurationProviderType { return v.ProviderType }).(SyncConfigurationProviderTypePtrOutput) +} + +// Whether to enable or disable publishing of deployment status to source providers. +func (o LookupSyncConfigurationResultOutput) PublishDeploymentStatus() SyncConfigurationPublishDeploymentStatusPtrOutput { + return o.ApplyT(func(v LookupSyncConfigurationResult) *SyncConfigurationPublishDeploymentStatus { + return v.PublishDeploymentStatus + }).(SyncConfigurationPublishDeploymentStatusPtrOutput) } // A UUID that uniquely identifies the RepositoryLink that the SyncConfig is associated with. @@ -119,6 +130,13 @@ func (o LookupSyncConfigurationResultOutput) RoleArn() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupSyncConfigurationResult) *string { return v.RoleArn }).(pulumi.StringPtrOutput) } +// When to trigger Git sync to begin the stack update. +func (o LookupSyncConfigurationResultOutput) TriggerResourceUpdateOn() SyncConfigurationTriggerResourceUpdateOnPtrOutput { + return o.ApplyT(func(v LookupSyncConfigurationResult) *SyncConfigurationTriggerResourceUpdateOn { + return v.TriggerResourceUpdateOn + }).(SyncConfigurationTriggerResourceUpdateOnPtrOutput) +} + func init() { pulumi.RegisterOutputType(LookupSyncConfigurationResultOutput{}) } diff --git a/sdk/go/aws/codestarconnections/pulumiEnums.go b/sdk/go/aws/codestarconnections/pulumiEnums.go new file mode 100644 index 0000000000..a948fe8a78 --- /dev/null +++ b/sdk/go/aws/codestarconnections/pulumiEnums.go @@ -0,0 +1,546 @@ +// 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 codestarconnections + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// The name of the external provider where your third-party code repository is configured. +type RepositoryLinkProviderType string + +const ( + RepositoryLinkProviderTypeGitHub = RepositoryLinkProviderType("GitHub") + RepositoryLinkProviderTypeBitbucket = RepositoryLinkProviderType("Bitbucket") + RepositoryLinkProviderTypeGitHubEnterprise = RepositoryLinkProviderType("GitHubEnterprise") + RepositoryLinkProviderTypeGitLab = RepositoryLinkProviderType("GitLab") + RepositoryLinkProviderTypeGitLabSelfManaged = RepositoryLinkProviderType("GitLabSelfManaged") +) + +type RepositoryLinkProviderTypeOutput struct{ *pulumi.OutputState } + +func (RepositoryLinkProviderTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RepositoryLinkProviderType)(nil)).Elem() +} + +func (o RepositoryLinkProviderTypeOutput) ToRepositoryLinkProviderTypeOutput() RepositoryLinkProviderTypeOutput { + return o +} + +func (o RepositoryLinkProviderTypeOutput) ToRepositoryLinkProviderTypeOutputWithContext(ctx context.Context) RepositoryLinkProviderTypeOutput { + return o +} + +func (o RepositoryLinkProviderTypeOutput) ToRepositoryLinkProviderTypePtrOutput() RepositoryLinkProviderTypePtrOutput { + return o.ToRepositoryLinkProviderTypePtrOutputWithContext(context.Background()) +} + +func (o RepositoryLinkProviderTypeOutput) ToRepositoryLinkProviderTypePtrOutputWithContext(ctx context.Context) RepositoryLinkProviderTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RepositoryLinkProviderType) *RepositoryLinkProviderType { + return &v + }).(RepositoryLinkProviderTypePtrOutput) +} + +func (o RepositoryLinkProviderTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o RepositoryLinkProviderTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e RepositoryLinkProviderType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o RepositoryLinkProviderTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o RepositoryLinkProviderTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e RepositoryLinkProviderType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type RepositoryLinkProviderTypePtrOutput struct{ *pulumi.OutputState } + +func (RepositoryLinkProviderTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RepositoryLinkProviderType)(nil)).Elem() +} + +func (o RepositoryLinkProviderTypePtrOutput) ToRepositoryLinkProviderTypePtrOutput() RepositoryLinkProviderTypePtrOutput { + return o +} + +func (o RepositoryLinkProviderTypePtrOutput) ToRepositoryLinkProviderTypePtrOutputWithContext(ctx context.Context) RepositoryLinkProviderTypePtrOutput { + return o +} + +func (o RepositoryLinkProviderTypePtrOutput) Elem() RepositoryLinkProviderTypeOutput { + return o.ApplyT(func(v *RepositoryLinkProviderType) RepositoryLinkProviderType { + if v != nil { + return *v + } + var ret RepositoryLinkProviderType + return ret + }).(RepositoryLinkProviderTypeOutput) +} + +func (o RepositoryLinkProviderTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o RepositoryLinkProviderTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *RepositoryLinkProviderType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// The name of the external provider where your third-party code repository is configured. +type SyncConfigurationProviderType string + +const ( + SyncConfigurationProviderTypeGitHub = SyncConfigurationProviderType("GitHub") + SyncConfigurationProviderTypeBitbucket = SyncConfigurationProviderType("Bitbucket") + SyncConfigurationProviderTypeGitHubEnterprise = SyncConfigurationProviderType("GitHubEnterprise") + SyncConfigurationProviderTypeGitLab = SyncConfigurationProviderType("GitLab") + SyncConfigurationProviderTypeGitLabSelfManaged = SyncConfigurationProviderType("GitLabSelfManaged") +) + +type SyncConfigurationProviderTypeOutput struct{ *pulumi.OutputState } + +func (SyncConfigurationProviderTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SyncConfigurationProviderType)(nil)).Elem() +} + +func (o SyncConfigurationProviderTypeOutput) ToSyncConfigurationProviderTypeOutput() SyncConfigurationProviderTypeOutput { + return o +} + +func (o SyncConfigurationProviderTypeOutput) ToSyncConfigurationProviderTypeOutputWithContext(ctx context.Context) SyncConfigurationProviderTypeOutput { + return o +} + +func (o SyncConfigurationProviderTypeOutput) ToSyncConfigurationProviderTypePtrOutput() SyncConfigurationProviderTypePtrOutput { + return o.ToSyncConfigurationProviderTypePtrOutputWithContext(context.Background()) +} + +func (o SyncConfigurationProviderTypeOutput) ToSyncConfigurationProviderTypePtrOutputWithContext(ctx context.Context) SyncConfigurationProviderTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SyncConfigurationProviderType) *SyncConfigurationProviderType { + return &v + }).(SyncConfigurationProviderTypePtrOutput) +} + +func (o SyncConfigurationProviderTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o SyncConfigurationProviderTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e SyncConfigurationProviderType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o SyncConfigurationProviderTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o SyncConfigurationProviderTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e SyncConfigurationProviderType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type SyncConfigurationProviderTypePtrOutput struct{ *pulumi.OutputState } + +func (SyncConfigurationProviderTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SyncConfigurationProviderType)(nil)).Elem() +} + +func (o SyncConfigurationProviderTypePtrOutput) ToSyncConfigurationProviderTypePtrOutput() SyncConfigurationProviderTypePtrOutput { + return o +} + +func (o SyncConfigurationProviderTypePtrOutput) ToSyncConfigurationProviderTypePtrOutputWithContext(ctx context.Context) SyncConfigurationProviderTypePtrOutput { + return o +} + +func (o SyncConfigurationProviderTypePtrOutput) Elem() SyncConfigurationProviderTypeOutput { + return o.ApplyT(func(v *SyncConfigurationProviderType) SyncConfigurationProviderType { + if v != nil { + return *v + } + var ret SyncConfigurationProviderType + return ret + }).(SyncConfigurationProviderTypeOutput) +} + +func (o SyncConfigurationProviderTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o SyncConfigurationProviderTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *SyncConfigurationProviderType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// Whether to enable or disable publishing of deployment status to source providers. +type SyncConfigurationPublishDeploymentStatus string + +const ( + SyncConfigurationPublishDeploymentStatusEnabled = SyncConfigurationPublishDeploymentStatus("ENABLED") + SyncConfigurationPublishDeploymentStatusDisabled = SyncConfigurationPublishDeploymentStatus("DISABLED") +) + +func (SyncConfigurationPublishDeploymentStatus) ElementType() reflect.Type { + return reflect.TypeOf((*SyncConfigurationPublishDeploymentStatus)(nil)).Elem() +} + +func (e SyncConfigurationPublishDeploymentStatus) ToSyncConfigurationPublishDeploymentStatusOutput() SyncConfigurationPublishDeploymentStatusOutput { + return pulumi.ToOutput(e).(SyncConfigurationPublishDeploymentStatusOutput) +} + +func (e SyncConfigurationPublishDeploymentStatus) ToSyncConfigurationPublishDeploymentStatusOutputWithContext(ctx context.Context) SyncConfigurationPublishDeploymentStatusOutput { + return pulumi.ToOutputWithContext(ctx, e).(SyncConfigurationPublishDeploymentStatusOutput) +} + +func (e SyncConfigurationPublishDeploymentStatus) ToSyncConfigurationPublishDeploymentStatusPtrOutput() SyncConfigurationPublishDeploymentStatusPtrOutput { + return e.ToSyncConfigurationPublishDeploymentStatusPtrOutputWithContext(context.Background()) +} + +func (e SyncConfigurationPublishDeploymentStatus) ToSyncConfigurationPublishDeploymentStatusPtrOutputWithContext(ctx context.Context) SyncConfigurationPublishDeploymentStatusPtrOutput { + return SyncConfigurationPublishDeploymentStatus(e).ToSyncConfigurationPublishDeploymentStatusOutputWithContext(ctx).ToSyncConfigurationPublishDeploymentStatusPtrOutputWithContext(ctx) +} + +func (e SyncConfigurationPublishDeploymentStatus) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e SyncConfigurationPublishDeploymentStatus) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e SyncConfigurationPublishDeploymentStatus) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e SyncConfigurationPublishDeploymentStatus) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type SyncConfigurationPublishDeploymentStatusOutput struct{ *pulumi.OutputState } + +func (SyncConfigurationPublishDeploymentStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SyncConfigurationPublishDeploymentStatus)(nil)).Elem() +} + +func (o SyncConfigurationPublishDeploymentStatusOutput) ToSyncConfigurationPublishDeploymentStatusOutput() SyncConfigurationPublishDeploymentStatusOutput { + return o +} + +func (o SyncConfigurationPublishDeploymentStatusOutput) ToSyncConfigurationPublishDeploymentStatusOutputWithContext(ctx context.Context) SyncConfigurationPublishDeploymentStatusOutput { + return o +} + +func (o SyncConfigurationPublishDeploymentStatusOutput) ToSyncConfigurationPublishDeploymentStatusPtrOutput() SyncConfigurationPublishDeploymentStatusPtrOutput { + return o.ToSyncConfigurationPublishDeploymentStatusPtrOutputWithContext(context.Background()) +} + +func (o SyncConfigurationPublishDeploymentStatusOutput) ToSyncConfigurationPublishDeploymentStatusPtrOutputWithContext(ctx context.Context) SyncConfigurationPublishDeploymentStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SyncConfigurationPublishDeploymentStatus) *SyncConfigurationPublishDeploymentStatus { + return &v + }).(SyncConfigurationPublishDeploymentStatusPtrOutput) +} + +func (o SyncConfigurationPublishDeploymentStatusOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o SyncConfigurationPublishDeploymentStatusOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e SyncConfigurationPublishDeploymentStatus) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o SyncConfigurationPublishDeploymentStatusOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o SyncConfigurationPublishDeploymentStatusOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e SyncConfigurationPublishDeploymentStatus) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type SyncConfigurationPublishDeploymentStatusPtrOutput struct{ *pulumi.OutputState } + +func (SyncConfigurationPublishDeploymentStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SyncConfigurationPublishDeploymentStatus)(nil)).Elem() +} + +func (o SyncConfigurationPublishDeploymentStatusPtrOutput) ToSyncConfigurationPublishDeploymentStatusPtrOutput() SyncConfigurationPublishDeploymentStatusPtrOutput { + return o +} + +func (o SyncConfigurationPublishDeploymentStatusPtrOutput) ToSyncConfigurationPublishDeploymentStatusPtrOutputWithContext(ctx context.Context) SyncConfigurationPublishDeploymentStatusPtrOutput { + return o +} + +func (o SyncConfigurationPublishDeploymentStatusPtrOutput) Elem() SyncConfigurationPublishDeploymentStatusOutput { + return o.ApplyT(func(v *SyncConfigurationPublishDeploymentStatus) SyncConfigurationPublishDeploymentStatus { + if v != nil { + return *v + } + var ret SyncConfigurationPublishDeploymentStatus + return ret + }).(SyncConfigurationPublishDeploymentStatusOutput) +} + +func (o SyncConfigurationPublishDeploymentStatusPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o SyncConfigurationPublishDeploymentStatusPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *SyncConfigurationPublishDeploymentStatus) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// SyncConfigurationPublishDeploymentStatusInput is an input type that accepts values of the SyncConfigurationPublishDeploymentStatus enum +// A concrete instance of `SyncConfigurationPublishDeploymentStatusInput` can be one of the following: +// +// SyncConfigurationPublishDeploymentStatusEnabled +// SyncConfigurationPublishDeploymentStatusDisabled +type SyncConfigurationPublishDeploymentStatusInput interface { + pulumi.Input + + ToSyncConfigurationPublishDeploymentStatusOutput() SyncConfigurationPublishDeploymentStatusOutput + ToSyncConfigurationPublishDeploymentStatusOutputWithContext(context.Context) SyncConfigurationPublishDeploymentStatusOutput +} + +var syncConfigurationPublishDeploymentStatusPtrType = reflect.TypeOf((**SyncConfigurationPublishDeploymentStatus)(nil)).Elem() + +type SyncConfigurationPublishDeploymentStatusPtrInput interface { + pulumi.Input + + ToSyncConfigurationPublishDeploymentStatusPtrOutput() SyncConfigurationPublishDeploymentStatusPtrOutput + ToSyncConfigurationPublishDeploymentStatusPtrOutputWithContext(context.Context) SyncConfigurationPublishDeploymentStatusPtrOutput +} + +type syncConfigurationPublishDeploymentStatusPtr string + +func SyncConfigurationPublishDeploymentStatusPtr(v string) SyncConfigurationPublishDeploymentStatusPtrInput { + return (*syncConfigurationPublishDeploymentStatusPtr)(&v) +} + +func (*syncConfigurationPublishDeploymentStatusPtr) ElementType() reflect.Type { + return syncConfigurationPublishDeploymentStatusPtrType +} + +func (in *syncConfigurationPublishDeploymentStatusPtr) ToSyncConfigurationPublishDeploymentStatusPtrOutput() SyncConfigurationPublishDeploymentStatusPtrOutput { + return pulumi.ToOutput(in).(SyncConfigurationPublishDeploymentStatusPtrOutput) +} + +func (in *syncConfigurationPublishDeploymentStatusPtr) ToSyncConfigurationPublishDeploymentStatusPtrOutputWithContext(ctx context.Context) SyncConfigurationPublishDeploymentStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(SyncConfigurationPublishDeploymentStatusPtrOutput) +} + +// When to trigger Git sync to begin the stack update. +type SyncConfigurationTriggerResourceUpdateOn string + +const ( + SyncConfigurationTriggerResourceUpdateOnAnyChange = SyncConfigurationTriggerResourceUpdateOn("ANY_CHANGE") + SyncConfigurationTriggerResourceUpdateOnFileChange = SyncConfigurationTriggerResourceUpdateOn("FILE_CHANGE") +) + +func (SyncConfigurationTriggerResourceUpdateOn) ElementType() reflect.Type { + return reflect.TypeOf((*SyncConfigurationTriggerResourceUpdateOn)(nil)).Elem() +} + +func (e SyncConfigurationTriggerResourceUpdateOn) ToSyncConfigurationTriggerResourceUpdateOnOutput() SyncConfigurationTriggerResourceUpdateOnOutput { + return pulumi.ToOutput(e).(SyncConfigurationTriggerResourceUpdateOnOutput) +} + +func (e SyncConfigurationTriggerResourceUpdateOn) ToSyncConfigurationTriggerResourceUpdateOnOutputWithContext(ctx context.Context) SyncConfigurationTriggerResourceUpdateOnOutput { + return pulumi.ToOutputWithContext(ctx, e).(SyncConfigurationTriggerResourceUpdateOnOutput) +} + +func (e SyncConfigurationTriggerResourceUpdateOn) ToSyncConfigurationTriggerResourceUpdateOnPtrOutput() SyncConfigurationTriggerResourceUpdateOnPtrOutput { + return e.ToSyncConfigurationTriggerResourceUpdateOnPtrOutputWithContext(context.Background()) +} + +func (e SyncConfigurationTriggerResourceUpdateOn) ToSyncConfigurationTriggerResourceUpdateOnPtrOutputWithContext(ctx context.Context) SyncConfigurationTriggerResourceUpdateOnPtrOutput { + return SyncConfigurationTriggerResourceUpdateOn(e).ToSyncConfigurationTriggerResourceUpdateOnOutputWithContext(ctx).ToSyncConfigurationTriggerResourceUpdateOnPtrOutputWithContext(ctx) +} + +func (e SyncConfigurationTriggerResourceUpdateOn) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e SyncConfigurationTriggerResourceUpdateOn) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e SyncConfigurationTriggerResourceUpdateOn) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e SyncConfigurationTriggerResourceUpdateOn) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type SyncConfigurationTriggerResourceUpdateOnOutput struct{ *pulumi.OutputState } + +func (SyncConfigurationTriggerResourceUpdateOnOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SyncConfigurationTriggerResourceUpdateOn)(nil)).Elem() +} + +func (o SyncConfigurationTriggerResourceUpdateOnOutput) ToSyncConfigurationTriggerResourceUpdateOnOutput() SyncConfigurationTriggerResourceUpdateOnOutput { + return o +} + +func (o SyncConfigurationTriggerResourceUpdateOnOutput) ToSyncConfigurationTriggerResourceUpdateOnOutputWithContext(ctx context.Context) SyncConfigurationTriggerResourceUpdateOnOutput { + return o +} + +func (o SyncConfigurationTriggerResourceUpdateOnOutput) ToSyncConfigurationTriggerResourceUpdateOnPtrOutput() SyncConfigurationTriggerResourceUpdateOnPtrOutput { + return o.ToSyncConfigurationTriggerResourceUpdateOnPtrOutputWithContext(context.Background()) +} + +func (o SyncConfigurationTriggerResourceUpdateOnOutput) ToSyncConfigurationTriggerResourceUpdateOnPtrOutputWithContext(ctx context.Context) SyncConfigurationTriggerResourceUpdateOnPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SyncConfigurationTriggerResourceUpdateOn) *SyncConfigurationTriggerResourceUpdateOn { + return &v + }).(SyncConfigurationTriggerResourceUpdateOnPtrOutput) +} + +func (o SyncConfigurationTriggerResourceUpdateOnOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o SyncConfigurationTriggerResourceUpdateOnOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e SyncConfigurationTriggerResourceUpdateOn) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o SyncConfigurationTriggerResourceUpdateOnOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o SyncConfigurationTriggerResourceUpdateOnOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e SyncConfigurationTriggerResourceUpdateOn) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type SyncConfigurationTriggerResourceUpdateOnPtrOutput struct{ *pulumi.OutputState } + +func (SyncConfigurationTriggerResourceUpdateOnPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SyncConfigurationTriggerResourceUpdateOn)(nil)).Elem() +} + +func (o SyncConfigurationTriggerResourceUpdateOnPtrOutput) ToSyncConfigurationTriggerResourceUpdateOnPtrOutput() SyncConfigurationTriggerResourceUpdateOnPtrOutput { + return o +} + +func (o SyncConfigurationTriggerResourceUpdateOnPtrOutput) ToSyncConfigurationTriggerResourceUpdateOnPtrOutputWithContext(ctx context.Context) SyncConfigurationTriggerResourceUpdateOnPtrOutput { + return o +} + +func (o SyncConfigurationTriggerResourceUpdateOnPtrOutput) Elem() SyncConfigurationTriggerResourceUpdateOnOutput { + return o.ApplyT(func(v *SyncConfigurationTriggerResourceUpdateOn) SyncConfigurationTriggerResourceUpdateOn { + if v != nil { + return *v + } + var ret SyncConfigurationTriggerResourceUpdateOn + return ret + }).(SyncConfigurationTriggerResourceUpdateOnOutput) +} + +func (o SyncConfigurationTriggerResourceUpdateOnPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o SyncConfigurationTriggerResourceUpdateOnPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *SyncConfigurationTriggerResourceUpdateOn) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// SyncConfigurationTriggerResourceUpdateOnInput is an input type that accepts values of the SyncConfigurationTriggerResourceUpdateOn enum +// A concrete instance of `SyncConfigurationTriggerResourceUpdateOnInput` can be one of the following: +// +// SyncConfigurationTriggerResourceUpdateOnAnyChange +// SyncConfigurationTriggerResourceUpdateOnFileChange +type SyncConfigurationTriggerResourceUpdateOnInput interface { + pulumi.Input + + ToSyncConfigurationTriggerResourceUpdateOnOutput() SyncConfigurationTriggerResourceUpdateOnOutput + ToSyncConfigurationTriggerResourceUpdateOnOutputWithContext(context.Context) SyncConfigurationTriggerResourceUpdateOnOutput +} + +var syncConfigurationTriggerResourceUpdateOnPtrType = reflect.TypeOf((**SyncConfigurationTriggerResourceUpdateOn)(nil)).Elem() + +type SyncConfigurationTriggerResourceUpdateOnPtrInput interface { + pulumi.Input + + ToSyncConfigurationTriggerResourceUpdateOnPtrOutput() SyncConfigurationTriggerResourceUpdateOnPtrOutput + ToSyncConfigurationTriggerResourceUpdateOnPtrOutputWithContext(context.Context) SyncConfigurationTriggerResourceUpdateOnPtrOutput +} + +type syncConfigurationTriggerResourceUpdateOnPtr string + +func SyncConfigurationTriggerResourceUpdateOnPtr(v string) SyncConfigurationTriggerResourceUpdateOnPtrInput { + return (*syncConfigurationTriggerResourceUpdateOnPtr)(&v) +} + +func (*syncConfigurationTriggerResourceUpdateOnPtr) ElementType() reflect.Type { + return syncConfigurationTriggerResourceUpdateOnPtrType +} + +func (in *syncConfigurationTriggerResourceUpdateOnPtr) ToSyncConfigurationTriggerResourceUpdateOnPtrOutput() SyncConfigurationTriggerResourceUpdateOnPtrOutput { + return pulumi.ToOutput(in).(SyncConfigurationTriggerResourceUpdateOnPtrOutput) +} + +func (in *syncConfigurationTriggerResourceUpdateOnPtr) ToSyncConfigurationTriggerResourceUpdateOnPtrOutputWithContext(ctx context.Context) SyncConfigurationTriggerResourceUpdateOnPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(SyncConfigurationTriggerResourceUpdateOnPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*SyncConfigurationPublishDeploymentStatusInput)(nil)).Elem(), SyncConfigurationPublishDeploymentStatus("ENABLED")) + pulumi.RegisterInputType(reflect.TypeOf((*SyncConfigurationPublishDeploymentStatusPtrInput)(nil)).Elem(), SyncConfigurationPublishDeploymentStatus("ENABLED")) + pulumi.RegisterInputType(reflect.TypeOf((*SyncConfigurationTriggerResourceUpdateOnInput)(nil)).Elem(), SyncConfigurationTriggerResourceUpdateOn("ANY_CHANGE")) + pulumi.RegisterInputType(reflect.TypeOf((*SyncConfigurationTriggerResourceUpdateOnPtrInput)(nil)).Elem(), SyncConfigurationTriggerResourceUpdateOn("ANY_CHANGE")) + pulumi.RegisterOutputType(RepositoryLinkProviderTypeOutput{}) + pulumi.RegisterOutputType(RepositoryLinkProviderTypePtrOutput{}) + pulumi.RegisterOutputType(SyncConfigurationProviderTypeOutput{}) + pulumi.RegisterOutputType(SyncConfigurationProviderTypePtrOutput{}) + pulumi.RegisterOutputType(SyncConfigurationPublishDeploymentStatusOutput{}) + pulumi.RegisterOutputType(SyncConfigurationPublishDeploymentStatusPtrOutput{}) + pulumi.RegisterOutputType(SyncConfigurationTriggerResourceUpdateOnOutput{}) + pulumi.RegisterOutputType(SyncConfigurationTriggerResourceUpdateOnPtrOutput{}) +} diff --git a/sdk/go/aws/codestarconnections/repositoryLink.go b/sdk/go/aws/codestarconnections/repositoryLink.go index 9defc0bcde..77ccef9634 100644 --- a/sdk/go/aws/codestarconnections/repositoryLink.go +++ b/sdk/go/aws/codestarconnections/repositoryLink.go @@ -24,7 +24,7 @@ type RepositoryLink struct { // the ID of the entity that owns the repository. OwnerId pulumi.StringOutput `pulumi:"ownerId"` // The name of the external provider where your third-party code repository is configured. - ProviderType pulumi.StringOutput `pulumi:"providerType"` + ProviderType RepositoryLinkProviderTypeOutput `pulumi:"providerType"` // A unique Amazon Resource Name (ARN) to designate the repository link. RepositoryLinkArn pulumi.StringOutput `pulumi:"repositoryLinkArn"` // A UUID that uniquely identifies the RepositoryLink. @@ -168,8 +168,8 @@ func (o RepositoryLinkOutput) OwnerId() pulumi.StringOutput { } // The name of the external provider where your third-party code repository is configured. -func (o RepositoryLinkOutput) ProviderType() pulumi.StringOutput { - return o.ApplyT(func(v *RepositoryLink) pulumi.StringOutput { return v.ProviderType }).(pulumi.StringOutput) +func (o RepositoryLinkOutput) ProviderType() RepositoryLinkProviderTypeOutput { + return o.ApplyT(func(v *RepositoryLink) RepositoryLinkProviderTypeOutput { return v.ProviderType }).(RepositoryLinkProviderTypeOutput) } // A unique Amazon Resource Name (ARN) to designate the repository link. diff --git a/sdk/go/aws/codestarconnections/syncConfiguration.go b/sdk/go/aws/codestarconnections/syncConfiguration.go index c7944a03d7..b83b435e77 100644 --- a/sdk/go/aws/codestarconnections/syncConfiguration.go +++ b/sdk/go/aws/codestarconnections/syncConfiguration.go @@ -23,7 +23,9 @@ type SyncConfiguration struct { // the ID of the entity that owns the repository. OwnerId pulumi.StringOutput `pulumi:"ownerId"` // The name of the external provider where your third-party code repository is configured. - ProviderType pulumi.StringOutput `pulumi:"providerType"` + ProviderType SyncConfigurationProviderTypeOutput `pulumi:"providerType"` + // Whether to enable or disable publishing of deployment status to source providers. + PublishDeploymentStatus SyncConfigurationPublishDeploymentStatusPtrOutput `pulumi:"publishDeploymentStatus"` // A UUID that uniquely identifies the RepositoryLink that the SyncConfig is associated with. RepositoryLinkId pulumi.StringOutput `pulumi:"repositoryLinkId"` // The name of the repository that is being synced to. @@ -34,6 +36,8 @@ type SyncConfiguration struct { RoleArn pulumi.StringOutput `pulumi:"roleArn"` // The type of resource synchronization service that is to be configured, for example, CFN_STACK_SYNC. SyncType pulumi.StringOutput `pulumi:"syncType"` + // When to trigger Git sync to begin the stack update. + TriggerResourceUpdateOn SyncConfigurationTriggerResourceUpdateOnPtrOutput `pulumi:"triggerResourceUpdateOn"` } // NewSyncConfiguration registers a new resource with the given unique name, arguments, and options. @@ -103,6 +107,8 @@ type syncConfigurationArgs struct { Branch string `pulumi:"branch"` // The source provider repository path of the sync configuration file of the respective SyncType. ConfigFile string `pulumi:"configFile"` + // Whether to enable or disable publishing of deployment status to source providers. + PublishDeploymentStatus *SyncConfigurationPublishDeploymentStatus `pulumi:"publishDeploymentStatus"` // A UUID that uniquely identifies the RepositoryLink that the SyncConfig is associated with. RepositoryLinkId string `pulumi:"repositoryLinkId"` // The name of the resource that is being synchronized to the repository. @@ -111,6 +117,8 @@ type syncConfigurationArgs struct { RoleArn string `pulumi:"roleArn"` // The type of resource synchronization service that is to be configured, for example, CFN_STACK_SYNC. SyncType string `pulumi:"syncType"` + // When to trigger Git sync to begin the stack update. + TriggerResourceUpdateOn *SyncConfigurationTriggerResourceUpdateOn `pulumi:"triggerResourceUpdateOn"` } // The set of arguments for constructing a SyncConfiguration resource. @@ -119,6 +127,8 @@ type SyncConfigurationArgs struct { Branch pulumi.StringInput // The source provider repository path of the sync configuration file of the respective SyncType. ConfigFile pulumi.StringInput + // Whether to enable or disable publishing of deployment status to source providers. + PublishDeploymentStatus SyncConfigurationPublishDeploymentStatusPtrInput // A UUID that uniquely identifies the RepositoryLink that the SyncConfig is associated with. RepositoryLinkId pulumi.StringInput // The name of the resource that is being synchronized to the repository. @@ -127,6 +137,8 @@ type SyncConfigurationArgs struct { RoleArn pulumi.StringInput // The type of resource synchronization service that is to be configured, for example, CFN_STACK_SYNC. SyncType pulumi.StringInput + // When to trigger Git sync to begin the stack update. + TriggerResourceUpdateOn SyncConfigurationTriggerResourceUpdateOnPtrInput } func (SyncConfigurationArgs) ElementType() reflect.Type { @@ -182,8 +194,15 @@ func (o SyncConfigurationOutput) OwnerId() pulumi.StringOutput { } // The name of the external provider where your third-party code repository is configured. -func (o SyncConfigurationOutput) ProviderType() pulumi.StringOutput { - return o.ApplyT(func(v *SyncConfiguration) pulumi.StringOutput { return v.ProviderType }).(pulumi.StringOutput) +func (o SyncConfigurationOutput) ProviderType() SyncConfigurationProviderTypeOutput { + return o.ApplyT(func(v *SyncConfiguration) SyncConfigurationProviderTypeOutput { return v.ProviderType }).(SyncConfigurationProviderTypeOutput) +} + +// Whether to enable or disable publishing of deployment status to source providers. +func (o SyncConfigurationOutput) PublishDeploymentStatus() SyncConfigurationPublishDeploymentStatusPtrOutput { + return o.ApplyT(func(v *SyncConfiguration) SyncConfigurationPublishDeploymentStatusPtrOutput { + return v.PublishDeploymentStatus + }).(SyncConfigurationPublishDeploymentStatusPtrOutput) } // A UUID that uniquely identifies the RepositoryLink that the SyncConfig is associated with. @@ -211,6 +230,13 @@ func (o SyncConfigurationOutput) SyncType() pulumi.StringOutput { return o.ApplyT(func(v *SyncConfiguration) pulumi.StringOutput { return v.SyncType }).(pulumi.StringOutput) } +// When to trigger Git sync to begin the stack update. +func (o SyncConfigurationOutput) TriggerResourceUpdateOn() SyncConfigurationTriggerResourceUpdateOnPtrOutput { + return o.ApplyT(func(v *SyncConfiguration) SyncConfigurationTriggerResourceUpdateOnPtrOutput { + return v.TriggerResourceUpdateOn + }).(SyncConfigurationTriggerResourceUpdateOnPtrOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*SyncConfigurationInput)(nil)).Elem(), &SyncConfiguration{}) pulumi.RegisterOutputType(SyncConfigurationOutput{}) diff --git a/sdk/go/aws/connect/getPredefinedAttribute.go b/sdk/go/aws/connect/getPredefinedAttribute.go index 29a323a8b9..28e18a12bf 100644 --- a/sdk/go/aws/connect/getPredefinedAttribute.go +++ b/sdk/go/aws/connect/getPredefinedAttribute.go @@ -30,6 +30,10 @@ type LookupPredefinedAttributeArgs struct { } type LookupPredefinedAttributeResult struct { + // Last modified region. + LastModifiedRegion *string `pulumi:"lastModifiedRegion"` + // Last modified time. + LastModifiedTime *float64 `pulumi:"lastModifiedTime"` // The values of a predefined attribute. Values *ValuesProperties `pulumi:"values"` } @@ -72,6 +76,16 @@ func (o LookupPredefinedAttributeResultOutput) ToLookupPredefinedAttributeResult return o } +// Last modified region. +func (o LookupPredefinedAttributeResultOutput) LastModifiedRegion() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupPredefinedAttributeResult) *string { return v.LastModifiedRegion }).(pulumi.StringPtrOutput) +} + +// Last modified time. +func (o LookupPredefinedAttributeResultOutput) LastModifiedTime() pulumi.Float64PtrOutput { + return o.ApplyT(func(v LookupPredefinedAttributeResult) *float64 { return v.LastModifiedTime }).(pulumi.Float64PtrOutput) +} + // The values of a predefined attribute. func (o LookupPredefinedAttributeResultOutput) Values() ValuesPropertiesPtrOutput { return o.ApplyT(func(v LookupPredefinedAttributeResult) *ValuesProperties { return v.Values }).(ValuesPropertiesPtrOutput) diff --git a/sdk/go/aws/connect/getSecurityProfile.go b/sdk/go/aws/connect/getSecurityProfile.go index 7bd7c2699f..1cf971d590 100644 --- a/sdk/go/aws/connect/getSecurityProfile.go +++ b/sdk/go/aws/connect/getSecurityProfile.go @@ -29,10 +29,20 @@ type LookupSecurityProfileArgs struct { } type LookupSecurityProfileResult struct { + // The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect. + AllowedAccessControlHierarchyGroupId *string `pulumi:"allowedAccessControlHierarchyGroupId"` // The list of tags that a security profile uses to restrict access to resources in Amazon Connect. AllowedAccessControlTags []SecurityProfileTag `pulumi:"allowedAccessControlTags"` + // A list of third-party applications that the security profile will give access to. + Applications []SecurityProfileApplication `pulumi:"applications"` // The description of the security profile. Description *string `pulumi:"description"` + // The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. + HierarchyRestrictedResources []string `pulumi:"hierarchyRestrictedResources"` + // The AWS Region where this resource was last modified. + LastModifiedRegion *string `pulumi:"lastModifiedRegion"` + // The timestamp when this resource was last modified. + LastModifiedTime *float64 `pulumi:"lastModifiedTime"` // Permissions assigned to the security profile. Permissions []string `pulumi:"permissions"` // The Amazon Resource Name (ARN) for the security profile. @@ -79,16 +89,41 @@ func (o LookupSecurityProfileResultOutput) ToLookupSecurityProfileResultOutputWi return o } +// The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect. +func (o LookupSecurityProfileResultOutput) AllowedAccessControlHierarchyGroupId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupSecurityProfileResult) *string { return v.AllowedAccessControlHierarchyGroupId }).(pulumi.StringPtrOutput) +} + // The list of tags that a security profile uses to restrict access to resources in Amazon Connect. func (o LookupSecurityProfileResultOutput) AllowedAccessControlTags() SecurityProfileTagArrayOutput { return o.ApplyT(func(v LookupSecurityProfileResult) []SecurityProfileTag { return v.AllowedAccessControlTags }).(SecurityProfileTagArrayOutput) } +// A list of third-party applications that the security profile will give access to. +func (o LookupSecurityProfileResultOutput) Applications() SecurityProfileApplicationArrayOutput { + return o.ApplyT(func(v LookupSecurityProfileResult) []SecurityProfileApplication { return v.Applications }).(SecurityProfileApplicationArrayOutput) +} + // The description of the security profile. func (o LookupSecurityProfileResultOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupSecurityProfileResult) *string { return v.Description }).(pulumi.StringPtrOutput) } +// The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. +func (o LookupSecurityProfileResultOutput) HierarchyRestrictedResources() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupSecurityProfileResult) []string { return v.HierarchyRestrictedResources }).(pulumi.StringArrayOutput) +} + +// The AWS Region where this resource was last modified. +func (o LookupSecurityProfileResultOutput) LastModifiedRegion() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupSecurityProfileResult) *string { return v.LastModifiedRegion }).(pulumi.StringPtrOutput) +} + +// The timestamp when this resource was last modified. +func (o LookupSecurityProfileResultOutput) LastModifiedTime() pulumi.Float64PtrOutput { + return o.ApplyT(func(v LookupSecurityProfileResult) *float64 { return v.LastModifiedTime }).(pulumi.Float64PtrOutput) +} + // Permissions assigned to the security profile. func (o LookupSecurityProfileResultOutput) Permissions() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupSecurityProfileResult) []string { return v.Permissions }).(pulumi.StringArrayOutput) diff --git a/sdk/go/aws/connect/predefinedAttribute.go b/sdk/go/aws/connect/predefinedAttribute.go index 4d85b2cf74..1e207efb29 100644 --- a/sdk/go/aws/connect/predefinedAttribute.go +++ b/sdk/go/aws/connect/predefinedAttribute.go @@ -18,6 +18,10 @@ type PredefinedAttribute struct { // The identifier of the Amazon Connect instance. InstanceArn pulumi.StringOutput `pulumi:"instanceArn"` + // Last modified region. + LastModifiedRegion pulumi.StringOutput `pulumi:"lastModifiedRegion"` + // Last modified time. + LastModifiedTime pulumi.Float64Output `pulumi:"lastModifiedTime"` // The name of the predefined attribute. Name pulumi.StringOutput `pulumi:"name"` // The values of a predefined attribute. @@ -135,6 +139,16 @@ func (o PredefinedAttributeOutput) InstanceArn() pulumi.StringOutput { return o.ApplyT(func(v *PredefinedAttribute) pulumi.StringOutput { return v.InstanceArn }).(pulumi.StringOutput) } +// Last modified region. +func (o PredefinedAttributeOutput) LastModifiedRegion() pulumi.StringOutput { + return o.ApplyT(func(v *PredefinedAttribute) pulumi.StringOutput { return v.LastModifiedRegion }).(pulumi.StringOutput) +} + +// Last modified time. +func (o PredefinedAttributeOutput) LastModifiedTime() pulumi.Float64Output { + return o.ApplyT(func(v *PredefinedAttribute) pulumi.Float64Output { return v.LastModifiedTime }).(pulumi.Float64Output) +} + // The name of the predefined attribute. func (o PredefinedAttributeOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *PredefinedAttribute) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) diff --git a/sdk/go/aws/connect/pulumiTypes.go b/sdk/go/aws/connect/pulumiTypes.go index 0c9c77aa92..c2fa6c2b7c 100644 --- a/sdk/go/aws/connect/pulumiTypes.go +++ b/sdk/go/aws/connect/pulumiTypes.go @@ -6102,6 +6102,115 @@ func (o RuleUpdateCaseActionArrayOutput) Index(i pulumi.IntInput) RuleUpdateCase }).(RuleUpdateCaseActionOutput) } +// A third-party application's metadata. +type SecurityProfileApplication struct { + // The permissions that the agent is granted on the application + ApplicationPermissions []string `pulumi:"applicationPermissions"` + // Namespace of the application that you want to give access to. + Namespace string `pulumi:"namespace"` +} + +// SecurityProfileApplicationInput is an input type that accepts SecurityProfileApplicationArgs and SecurityProfileApplicationOutput values. +// You can construct a concrete instance of `SecurityProfileApplicationInput` via: +// +// SecurityProfileApplicationArgs{...} +type SecurityProfileApplicationInput interface { + pulumi.Input + + ToSecurityProfileApplicationOutput() SecurityProfileApplicationOutput + ToSecurityProfileApplicationOutputWithContext(context.Context) SecurityProfileApplicationOutput +} + +// A third-party application's metadata. +type SecurityProfileApplicationArgs struct { + // The permissions that the agent is granted on the application + ApplicationPermissions pulumi.StringArrayInput `pulumi:"applicationPermissions"` + // Namespace of the application that you want to give access to. + Namespace pulumi.StringInput `pulumi:"namespace"` +} + +func (SecurityProfileApplicationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityProfileApplication)(nil)).Elem() +} + +func (i SecurityProfileApplicationArgs) ToSecurityProfileApplicationOutput() SecurityProfileApplicationOutput { + return i.ToSecurityProfileApplicationOutputWithContext(context.Background()) +} + +func (i SecurityProfileApplicationArgs) ToSecurityProfileApplicationOutputWithContext(ctx context.Context) SecurityProfileApplicationOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityProfileApplicationOutput) +} + +// SecurityProfileApplicationArrayInput is an input type that accepts SecurityProfileApplicationArray and SecurityProfileApplicationArrayOutput values. +// You can construct a concrete instance of `SecurityProfileApplicationArrayInput` via: +// +// SecurityProfileApplicationArray{ SecurityProfileApplicationArgs{...} } +type SecurityProfileApplicationArrayInput interface { + pulumi.Input + + ToSecurityProfileApplicationArrayOutput() SecurityProfileApplicationArrayOutput + ToSecurityProfileApplicationArrayOutputWithContext(context.Context) SecurityProfileApplicationArrayOutput +} + +type SecurityProfileApplicationArray []SecurityProfileApplicationInput + +func (SecurityProfileApplicationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityProfileApplication)(nil)).Elem() +} + +func (i SecurityProfileApplicationArray) ToSecurityProfileApplicationArrayOutput() SecurityProfileApplicationArrayOutput { + return i.ToSecurityProfileApplicationArrayOutputWithContext(context.Background()) +} + +func (i SecurityProfileApplicationArray) ToSecurityProfileApplicationArrayOutputWithContext(ctx context.Context) SecurityProfileApplicationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityProfileApplicationArrayOutput) +} + +// A third-party application's metadata. +type SecurityProfileApplicationOutput struct{ *pulumi.OutputState } + +func (SecurityProfileApplicationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityProfileApplication)(nil)).Elem() +} + +func (o SecurityProfileApplicationOutput) ToSecurityProfileApplicationOutput() SecurityProfileApplicationOutput { + return o +} + +func (o SecurityProfileApplicationOutput) ToSecurityProfileApplicationOutputWithContext(ctx context.Context) SecurityProfileApplicationOutput { + return o +} + +// The permissions that the agent is granted on the application +func (o SecurityProfileApplicationOutput) ApplicationPermissions() pulumi.StringArrayOutput { + return o.ApplyT(func(v SecurityProfileApplication) []string { return v.ApplicationPermissions }).(pulumi.StringArrayOutput) +} + +// Namespace of the application that you want to give access to. +func (o SecurityProfileApplicationOutput) Namespace() pulumi.StringOutput { + return o.ApplyT(func(v SecurityProfileApplication) string { return v.Namespace }).(pulumi.StringOutput) +} + +type SecurityProfileApplicationArrayOutput struct{ *pulumi.OutputState } + +func (SecurityProfileApplicationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityProfileApplication)(nil)).Elem() +} + +func (o SecurityProfileApplicationArrayOutput) ToSecurityProfileApplicationArrayOutput() SecurityProfileApplicationArrayOutput { + return o +} + +func (o SecurityProfileApplicationArrayOutput) ToSecurityProfileApplicationArrayOutputWithContext(ctx context.Context) SecurityProfileApplicationArrayOutput { + return o +} + +func (o SecurityProfileApplicationArrayOutput) Index(i pulumi.IntInput) SecurityProfileApplicationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityProfileApplication { + return vs[0].([]SecurityProfileApplication)[vs[1].(int)] + }).(SecurityProfileApplicationOutput) +} + // A key-value pair to associate with a resource. type SecurityProfileTag 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 -. @@ -7425,6 +7534,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*RuleTriggerEventSourceInput)(nil)).Elem(), RuleTriggerEventSourceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RuleUpdateCaseActionInput)(nil)).Elem(), RuleUpdateCaseActionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RuleUpdateCaseActionArrayInput)(nil)).Elem(), RuleUpdateCaseActionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityProfileApplicationInput)(nil)).Elem(), SecurityProfileApplicationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecurityProfileApplicationArrayInput)(nil)).Elem(), SecurityProfileApplicationArray{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityProfileTagInput)(nil)).Elem(), SecurityProfileTagArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityProfileTagArrayInput)(nil)).Elem(), SecurityProfileTagArray{}) pulumi.RegisterInputType(reflect.TypeOf((*TaskTemplateDefaultFieldValueInput)(nil)).Elem(), TaskTemplateDefaultFieldValueArgs{}) @@ -7530,6 +7641,8 @@ func init() { pulumi.RegisterOutputType(RuleTriggerEventSourceOutput{}) pulumi.RegisterOutputType(RuleUpdateCaseActionOutput{}) pulumi.RegisterOutputType(RuleUpdateCaseActionArrayOutput{}) + pulumi.RegisterOutputType(SecurityProfileApplicationOutput{}) + pulumi.RegisterOutputType(SecurityProfileApplicationArrayOutput{}) pulumi.RegisterOutputType(SecurityProfileTagOutput{}) pulumi.RegisterOutputType(SecurityProfileTagArrayOutput{}) pulumi.RegisterOutputType(TaskTemplateDefaultFieldValueOutput{}) diff --git a/sdk/go/aws/connect/securityProfile.go b/sdk/go/aws/connect/securityProfile.go index 5aa22c52fb..05ed66ae28 100644 --- a/sdk/go/aws/connect/securityProfile.go +++ b/sdk/go/aws/connect/securityProfile.go @@ -17,12 +17,22 @@ import ( type SecurityProfile struct { pulumi.CustomResourceState + // The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect. + AllowedAccessControlHierarchyGroupId pulumi.StringPtrOutput `pulumi:"allowedAccessControlHierarchyGroupId"` // The list of tags that a security profile uses to restrict access to resources in Amazon Connect. AllowedAccessControlTags SecurityProfileTagArrayOutput `pulumi:"allowedAccessControlTags"` + // A list of third-party applications that the security profile will give access to. + Applications SecurityProfileApplicationArrayOutput `pulumi:"applications"` // The description of the security profile. Description pulumi.StringPtrOutput `pulumi:"description"` + // The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. + HierarchyRestrictedResources pulumi.StringArrayOutput `pulumi:"hierarchyRestrictedResources"` // The identifier of the Amazon Connect instance. InstanceArn pulumi.StringOutput `pulumi:"instanceArn"` + // The AWS Region where this resource was last modified. + LastModifiedRegion pulumi.StringOutput `pulumi:"lastModifiedRegion"` + // The timestamp when this resource was last modified. + LastModifiedTime pulumi.Float64Output `pulumi:"lastModifiedTime"` // Permissions assigned to the security profile. Permissions pulumi.StringArrayOutput `pulumi:"permissions"` // The Amazon Resource Name (ARN) for the security profile. @@ -83,10 +93,16 @@ func (SecurityProfileState) ElementType() reflect.Type { } type securityProfileArgs struct { + // The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect. + AllowedAccessControlHierarchyGroupId *string `pulumi:"allowedAccessControlHierarchyGroupId"` // The list of tags that a security profile uses to restrict access to resources in Amazon Connect. AllowedAccessControlTags []SecurityProfileTag `pulumi:"allowedAccessControlTags"` + // A list of third-party applications that the security profile will give access to. + Applications []SecurityProfileApplication `pulumi:"applications"` // The description of the security profile. Description *string `pulumi:"description"` + // The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. + HierarchyRestrictedResources []string `pulumi:"hierarchyRestrictedResources"` // The identifier of the Amazon Connect instance. InstanceArn string `pulumi:"instanceArn"` // Permissions assigned to the security profile. @@ -101,10 +117,16 @@ type securityProfileArgs struct { // The set of arguments for constructing a SecurityProfile resource. type SecurityProfileArgs struct { + // The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect. + AllowedAccessControlHierarchyGroupId pulumi.StringPtrInput // The list of tags that a security profile uses to restrict access to resources in Amazon Connect. AllowedAccessControlTags SecurityProfileTagArrayInput + // A list of third-party applications that the security profile will give access to. + Applications SecurityProfileApplicationArrayInput // The description of the security profile. Description pulumi.StringPtrInput + // The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. + HierarchyRestrictedResources pulumi.StringArrayInput // The identifier of the Amazon Connect instance. InstanceArn pulumi.StringInput // Permissions assigned to the security profile. @@ -154,21 +176,46 @@ func (o SecurityProfileOutput) ToSecurityProfileOutputWithContext(ctx context.Co return o } +// The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect. +func (o SecurityProfileOutput) AllowedAccessControlHierarchyGroupId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityProfile) pulumi.StringPtrOutput { return v.AllowedAccessControlHierarchyGroupId }).(pulumi.StringPtrOutput) +} + // The list of tags that a security profile uses to restrict access to resources in Amazon Connect. func (o SecurityProfileOutput) AllowedAccessControlTags() SecurityProfileTagArrayOutput { return o.ApplyT(func(v *SecurityProfile) SecurityProfileTagArrayOutput { return v.AllowedAccessControlTags }).(SecurityProfileTagArrayOutput) } +// A list of third-party applications that the security profile will give access to. +func (o SecurityProfileOutput) Applications() SecurityProfileApplicationArrayOutput { + return o.ApplyT(func(v *SecurityProfile) SecurityProfileApplicationArrayOutput { return v.Applications }).(SecurityProfileApplicationArrayOutput) +} + // The description of the security profile. func (o SecurityProfileOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *SecurityProfile) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) } +// The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. +func (o SecurityProfileOutput) HierarchyRestrictedResources() pulumi.StringArrayOutput { + return o.ApplyT(func(v *SecurityProfile) pulumi.StringArrayOutput { return v.HierarchyRestrictedResources }).(pulumi.StringArrayOutput) +} + // The identifier of the Amazon Connect instance. func (o SecurityProfileOutput) InstanceArn() pulumi.StringOutput { return o.ApplyT(func(v *SecurityProfile) pulumi.StringOutput { return v.InstanceArn }).(pulumi.StringOutput) } +// The AWS Region where this resource was last modified. +func (o SecurityProfileOutput) LastModifiedRegion() pulumi.StringOutput { + return o.ApplyT(func(v *SecurityProfile) pulumi.StringOutput { return v.LastModifiedRegion }).(pulumi.StringOutput) +} + +// The timestamp when this resource was last modified. +func (o SecurityProfileOutput) LastModifiedTime() pulumi.Float64Output { + return o.ApplyT(func(v *SecurityProfile) pulumi.Float64Output { return v.LastModifiedTime }).(pulumi.Float64Output) +} + // Permissions assigned to the security profile. func (o SecurityProfileOutput) Permissions() pulumi.StringArrayOutput { return o.ApplyT(func(v *SecurityProfile) pulumi.StringArrayOutput { return v.Permissions }).(pulumi.StringArrayOutput) diff --git a/sdk/go/aws/docdbelastic/cluster.go b/sdk/go/aws/docdbelastic/cluster.go index c9ba507904..5e1b58d078 100644 --- a/sdk/go/aws/docdbelastic/cluster.go +++ b/sdk/go/aws/docdbelastic/cluster.go @@ -20,13 +20,16 @@ type Cluster struct { AdminUserName pulumi.StringOutput `pulumi:"adminUserName"` AdminUserPassword pulumi.StringPtrOutput `pulumi:"adminUserPassword"` AuthType pulumi.StringOutput `pulumi:"authType"` + BackupRetentionPeriod pulumi.IntPtrOutput `pulumi:"backupRetentionPeriod"` ClusterArn pulumi.StringOutput `pulumi:"clusterArn"` ClusterEndpoint pulumi.StringOutput `pulumi:"clusterEndpoint"` ClusterName pulumi.StringOutput `pulumi:"clusterName"` KmsKeyId pulumi.StringPtrOutput `pulumi:"kmsKeyId"` + PreferredBackupWindow pulumi.StringPtrOutput `pulumi:"preferredBackupWindow"` PreferredMaintenanceWindow pulumi.StringPtrOutput `pulumi:"preferredMaintenanceWindow"` ShardCapacity pulumi.IntOutput `pulumi:"shardCapacity"` ShardCount pulumi.IntOutput `pulumi:"shardCount"` + ShardInstanceCount pulumi.IntPtrOutput `pulumi:"shardInstanceCount"` SubnetIds pulumi.StringArrayOutput `pulumi:"subnetIds"` Tags aws.TagArrayOutput `pulumi:"tags"` VpcSecurityGroupIds pulumi.StringArrayOutput `pulumi:"vpcSecurityGroupIds"` @@ -94,11 +97,14 @@ type clusterArgs struct { AdminUserName string `pulumi:"adminUserName"` AdminUserPassword *string `pulumi:"adminUserPassword"` AuthType string `pulumi:"authType"` + BackupRetentionPeriod *int `pulumi:"backupRetentionPeriod"` ClusterName *string `pulumi:"clusterName"` KmsKeyId *string `pulumi:"kmsKeyId"` + PreferredBackupWindow *string `pulumi:"preferredBackupWindow"` PreferredMaintenanceWindow *string `pulumi:"preferredMaintenanceWindow"` ShardCapacity int `pulumi:"shardCapacity"` ShardCount int `pulumi:"shardCount"` + ShardInstanceCount *int `pulumi:"shardInstanceCount"` SubnetIds []string `pulumi:"subnetIds"` Tags []aws.Tag `pulumi:"tags"` VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"` @@ -109,11 +115,14 @@ type ClusterArgs struct { AdminUserName pulumi.StringInput AdminUserPassword pulumi.StringPtrInput AuthType pulumi.StringInput + BackupRetentionPeriod pulumi.IntPtrInput ClusterName pulumi.StringPtrInput KmsKeyId pulumi.StringPtrInput + PreferredBackupWindow pulumi.StringPtrInput PreferredMaintenanceWindow pulumi.StringPtrInput ShardCapacity pulumi.IntInput ShardCount pulumi.IntInput + ShardInstanceCount pulumi.IntPtrInput SubnetIds pulumi.StringArrayInput Tags aws.TagArrayInput VpcSecurityGroupIds pulumi.StringArrayInput @@ -168,6 +177,10 @@ func (o ClusterOutput) AuthType() pulumi.StringOutput { return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.AuthType }).(pulumi.StringOutput) } +func (o ClusterOutput) BackupRetentionPeriod() pulumi.IntPtrOutput { + return o.ApplyT(func(v *Cluster) pulumi.IntPtrOutput { return v.BackupRetentionPeriod }).(pulumi.IntPtrOutput) +} + func (o ClusterOutput) ClusterArn() pulumi.StringOutput { return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ClusterArn }).(pulumi.StringOutput) } @@ -184,6 +197,10 @@ func (o ClusterOutput) KmsKeyId() pulumi.StringPtrOutput { return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.KmsKeyId }).(pulumi.StringPtrOutput) } +func (o ClusterOutput) PreferredBackupWindow() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.PreferredBackupWindow }).(pulumi.StringPtrOutput) +} + func (o ClusterOutput) PreferredMaintenanceWindow() pulumi.StringPtrOutput { return o.ApplyT(func(v *Cluster) pulumi.StringPtrOutput { return v.PreferredMaintenanceWindow }).(pulumi.StringPtrOutput) } @@ -196,6 +213,10 @@ func (o ClusterOutput) ShardCount() pulumi.IntOutput { return o.ApplyT(func(v *Cluster) pulumi.IntOutput { return v.ShardCount }).(pulumi.IntOutput) } +func (o ClusterOutput) ShardInstanceCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v *Cluster) pulumi.IntPtrOutput { return v.ShardInstanceCount }).(pulumi.IntPtrOutput) +} + func (o ClusterOutput) SubnetIds() pulumi.StringArrayOutput { return o.ApplyT(func(v *Cluster) pulumi.StringArrayOutput { return v.SubnetIds }).(pulumi.StringArrayOutput) } diff --git a/sdk/go/aws/docdbelastic/getCluster.go b/sdk/go/aws/docdbelastic/getCluster.go index a9a4749676..d759963d86 100644 --- a/sdk/go/aws/docdbelastic/getCluster.go +++ b/sdk/go/aws/docdbelastic/getCluster.go @@ -28,11 +28,14 @@ type LookupClusterArgs struct { } type LookupClusterResult struct { + BackupRetentionPeriod *int `pulumi:"backupRetentionPeriod"` ClusterArn *string `pulumi:"clusterArn"` ClusterEndpoint *string `pulumi:"clusterEndpoint"` + PreferredBackupWindow *string `pulumi:"preferredBackupWindow"` PreferredMaintenanceWindow *string `pulumi:"preferredMaintenanceWindow"` ShardCapacity *int `pulumi:"shardCapacity"` ShardCount *int `pulumi:"shardCount"` + ShardInstanceCount *int `pulumi:"shardInstanceCount"` SubnetIds []string `pulumi:"subnetIds"` Tags []aws.Tag `pulumi:"tags"` VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"` @@ -73,6 +76,10 @@ func (o LookupClusterResultOutput) ToLookupClusterResultOutputWithContext(ctx co return o } +func (o LookupClusterResultOutput) BackupRetentionPeriod() pulumi.IntPtrOutput { + return o.ApplyT(func(v LookupClusterResult) *int { return v.BackupRetentionPeriod }).(pulumi.IntPtrOutput) +} + func (o LookupClusterResultOutput) ClusterArn() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupClusterResult) *string { return v.ClusterArn }).(pulumi.StringPtrOutput) } @@ -81,6 +88,10 @@ func (o LookupClusterResultOutput) ClusterEndpoint() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupClusterResult) *string { return v.ClusterEndpoint }).(pulumi.StringPtrOutput) } +func (o LookupClusterResultOutput) PreferredBackupWindow() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupClusterResult) *string { return v.PreferredBackupWindow }).(pulumi.StringPtrOutput) +} + func (o LookupClusterResultOutput) PreferredMaintenanceWindow() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupClusterResult) *string { return v.PreferredMaintenanceWindow }).(pulumi.StringPtrOutput) } @@ -93,6 +104,10 @@ func (o LookupClusterResultOutput) ShardCount() pulumi.IntPtrOutput { return o.ApplyT(func(v LookupClusterResult) *int { return v.ShardCount }).(pulumi.IntPtrOutput) } +func (o LookupClusterResultOutput) ShardInstanceCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v LookupClusterResult) *int { return v.ShardInstanceCount }).(pulumi.IntPtrOutput) +} + func (o LookupClusterResultOutput) SubnetIds() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupClusterResult) []string { return v.SubnetIds }).(pulumi.StringArrayOutput) } diff --git a/sdk/go/aws/dynamodb/getTable.go b/sdk/go/aws/dynamodb/getTable.go index 9d1a6ab053..da7845a2fd 100644 --- a/sdk/go/aws/dynamodb/getTable.go +++ b/sdk/go/aws/dynamodb/getTable.go @@ -69,6 +69,7 @@ type LookupTableResult struct { // Throughput for the specified table, which consists of values for ``ReadCapacityUnits`` and ``WriteCapacityUnits``. For more information about the contents of a provisioned throughput structure, see [Amazon DynamoDB Table ProvisionedThroughput](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ProvisionedThroughput.html). // If you set ``BillingMode`` as ``PROVISIONED``, you must specify this property. If you set ``BillingMode`` as ``PAY_PER_REQUEST``, you cannot specify this property. ProvisionedThroughput *TableProvisionedThroughput `pulumi:"provisionedThroughput"` + ResourcePolicy *TableResourcePolicy `pulumi:"resourcePolicy"` // Specifies the settings to enable server-side encryption. SseSpecification *TableSseSpecification `pulumi:"sseSpecification"` StreamArn *string `pulumi:"streamArn"` @@ -196,6 +197,10 @@ func (o LookupTableResultOutput) ProvisionedThroughput() TableProvisionedThrough return o.ApplyT(func(v LookupTableResult) *TableProvisionedThroughput { return v.ProvisionedThroughput }).(TableProvisionedThroughputPtrOutput) } +func (o LookupTableResultOutput) ResourcePolicy() TableResourcePolicyPtrOutput { + return o.ApplyT(func(v LookupTableResult) *TableResourcePolicy { return v.ResourcePolicy }).(TableResourcePolicyPtrOutput) +} + // Specifies the settings to enable server-side encryption. func (o LookupTableResultOutput) SseSpecification() TableSseSpecificationPtrOutput { return o.ApplyT(func(v LookupTableResult) *TableSseSpecification { return v.SseSpecification }).(TableSseSpecificationPtrOutput) diff --git a/sdk/go/aws/dynamodb/pulumiTypes.go b/sdk/go/aws/dynamodb/pulumiTypes.go index a1076ac374..b3f05edf2b 100644 --- a/sdk/go/aws/dynamodb/pulumiTypes.go +++ b/sdk/go/aws/dynamodb/pulumiTypes.go @@ -1352,6 +1352,8 @@ type GlobalTableReplicaSpecification struct { PointInTimeRecoverySpecification *GlobalTablePointInTimeRecoverySpecification `pulumi:"pointInTimeRecoverySpecification"` ReadProvisionedThroughputSettings *GlobalTableReadProvisionedThroughputSettings `pulumi:"readProvisionedThroughputSettings"` Region string `pulumi:"region"` + ReplicaStreamSpecification *GlobalTableReplicaStreamSpecification `pulumi:"replicaStreamSpecification"` + ResourcePolicy *GlobalTableResourcePolicy `pulumi:"resourcePolicy"` SseSpecification *GlobalTableReplicaSseSpecification `pulumi:"sseSpecification"` TableClass *string `pulumi:"tableClass"` Tags []GlobalTableTag `pulumi:"tags"` @@ -1376,6 +1378,8 @@ type GlobalTableReplicaSpecificationArgs struct { PointInTimeRecoverySpecification GlobalTablePointInTimeRecoverySpecificationPtrInput `pulumi:"pointInTimeRecoverySpecification"` ReadProvisionedThroughputSettings GlobalTableReadProvisionedThroughputSettingsPtrInput `pulumi:"readProvisionedThroughputSettings"` Region pulumi.StringInput `pulumi:"region"` + ReplicaStreamSpecification GlobalTableReplicaStreamSpecificationPtrInput `pulumi:"replicaStreamSpecification"` + ResourcePolicy GlobalTableResourcePolicyPtrInput `pulumi:"resourcePolicy"` SseSpecification GlobalTableReplicaSseSpecificationPtrInput `pulumi:"sseSpecification"` TableClass pulumi.StringPtrInput `pulumi:"tableClass"` Tags GlobalTableTagArrayInput `pulumi:"tags"` @@ -1470,6 +1474,16 @@ func (o GlobalTableReplicaSpecificationOutput) Region() pulumi.StringOutput { return o.ApplyT(func(v GlobalTableReplicaSpecification) string { return v.Region }).(pulumi.StringOutput) } +func (o GlobalTableReplicaSpecificationOutput) ReplicaStreamSpecification() GlobalTableReplicaStreamSpecificationPtrOutput { + return o.ApplyT(func(v GlobalTableReplicaSpecification) *GlobalTableReplicaStreamSpecification { + return v.ReplicaStreamSpecification + }).(GlobalTableReplicaStreamSpecificationPtrOutput) +} + +func (o GlobalTableReplicaSpecificationOutput) ResourcePolicy() GlobalTableResourcePolicyPtrOutput { + return o.ApplyT(func(v GlobalTableReplicaSpecification) *GlobalTableResourcePolicy { return v.ResourcePolicy }).(GlobalTableResourcePolicyPtrOutput) +} + func (o GlobalTableReplicaSpecificationOutput) SseSpecification() GlobalTableReplicaSseSpecificationPtrOutput { return o.ApplyT(func(v GlobalTableReplicaSpecification) *GlobalTableReplicaSseSpecification { return v.SseSpecification }).(GlobalTableReplicaSseSpecificationPtrOutput) } @@ -1635,6 +1649,272 @@ func (o GlobalTableReplicaSseSpecificationPtrOutput) KmsMasterKeyId() pulumi.Str }).(pulumi.StringPtrOutput) } +type GlobalTableReplicaStreamSpecification struct { + ResourcePolicy GlobalTableResourcePolicy `pulumi:"resourcePolicy"` +} + +// GlobalTableReplicaStreamSpecificationInput is an input type that accepts GlobalTableReplicaStreamSpecificationArgs and GlobalTableReplicaStreamSpecificationOutput values. +// You can construct a concrete instance of `GlobalTableReplicaStreamSpecificationInput` via: +// +// GlobalTableReplicaStreamSpecificationArgs{...} +type GlobalTableReplicaStreamSpecificationInput interface { + pulumi.Input + + ToGlobalTableReplicaStreamSpecificationOutput() GlobalTableReplicaStreamSpecificationOutput + ToGlobalTableReplicaStreamSpecificationOutputWithContext(context.Context) GlobalTableReplicaStreamSpecificationOutput +} + +type GlobalTableReplicaStreamSpecificationArgs struct { + ResourcePolicy GlobalTableResourcePolicyInput `pulumi:"resourcePolicy"` +} + +func (GlobalTableReplicaStreamSpecificationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GlobalTableReplicaStreamSpecification)(nil)).Elem() +} + +func (i GlobalTableReplicaStreamSpecificationArgs) ToGlobalTableReplicaStreamSpecificationOutput() GlobalTableReplicaStreamSpecificationOutput { + return i.ToGlobalTableReplicaStreamSpecificationOutputWithContext(context.Background()) +} + +func (i GlobalTableReplicaStreamSpecificationArgs) ToGlobalTableReplicaStreamSpecificationOutputWithContext(ctx context.Context) GlobalTableReplicaStreamSpecificationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GlobalTableReplicaStreamSpecificationOutput) +} + +func (i GlobalTableReplicaStreamSpecificationArgs) ToGlobalTableReplicaStreamSpecificationPtrOutput() GlobalTableReplicaStreamSpecificationPtrOutput { + return i.ToGlobalTableReplicaStreamSpecificationPtrOutputWithContext(context.Background()) +} + +func (i GlobalTableReplicaStreamSpecificationArgs) ToGlobalTableReplicaStreamSpecificationPtrOutputWithContext(ctx context.Context) GlobalTableReplicaStreamSpecificationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GlobalTableReplicaStreamSpecificationOutput).ToGlobalTableReplicaStreamSpecificationPtrOutputWithContext(ctx) +} + +// GlobalTableReplicaStreamSpecificationPtrInput is an input type that accepts GlobalTableReplicaStreamSpecificationArgs, GlobalTableReplicaStreamSpecificationPtr and GlobalTableReplicaStreamSpecificationPtrOutput values. +// You can construct a concrete instance of `GlobalTableReplicaStreamSpecificationPtrInput` via: +// +// GlobalTableReplicaStreamSpecificationArgs{...} +// +// or: +// +// nil +type GlobalTableReplicaStreamSpecificationPtrInput interface { + pulumi.Input + + ToGlobalTableReplicaStreamSpecificationPtrOutput() GlobalTableReplicaStreamSpecificationPtrOutput + ToGlobalTableReplicaStreamSpecificationPtrOutputWithContext(context.Context) GlobalTableReplicaStreamSpecificationPtrOutput +} + +type globalTableReplicaStreamSpecificationPtrType GlobalTableReplicaStreamSpecificationArgs + +func GlobalTableReplicaStreamSpecificationPtr(v *GlobalTableReplicaStreamSpecificationArgs) GlobalTableReplicaStreamSpecificationPtrInput { + return (*globalTableReplicaStreamSpecificationPtrType)(v) +} + +func (*globalTableReplicaStreamSpecificationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GlobalTableReplicaStreamSpecification)(nil)).Elem() +} + +func (i *globalTableReplicaStreamSpecificationPtrType) ToGlobalTableReplicaStreamSpecificationPtrOutput() GlobalTableReplicaStreamSpecificationPtrOutput { + return i.ToGlobalTableReplicaStreamSpecificationPtrOutputWithContext(context.Background()) +} + +func (i *globalTableReplicaStreamSpecificationPtrType) ToGlobalTableReplicaStreamSpecificationPtrOutputWithContext(ctx context.Context) GlobalTableReplicaStreamSpecificationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GlobalTableReplicaStreamSpecificationPtrOutput) +} + +type GlobalTableReplicaStreamSpecificationOutput struct{ *pulumi.OutputState } + +func (GlobalTableReplicaStreamSpecificationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GlobalTableReplicaStreamSpecification)(nil)).Elem() +} + +func (o GlobalTableReplicaStreamSpecificationOutput) ToGlobalTableReplicaStreamSpecificationOutput() GlobalTableReplicaStreamSpecificationOutput { + return o +} + +func (o GlobalTableReplicaStreamSpecificationOutput) ToGlobalTableReplicaStreamSpecificationOutputWithContext(ctx context.Context) GlobalTableReplicaStreamSpecificationOutput { + return o +} + +func (o GlobalTableReplicaStreamSpecificationOutput) ToGlobalTableReplicaStreamSpecificationPtrOutput() GlobalTableReplicaStreamSpecificationPtrOutput { + return o.ToGlobalTableReplicaStreamSpecificationPtrOutputWithContext(context.Background()) +} + +func (o GlobalTableReplicaStreamSpecificationOutput) ToGlobalTableReplicaStreamSpecificationPtrOutputWithContext(ctx context.Context) GlobalTableReplicaStreamSpecificationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GlobalTableReplicaStreamSpecification) *GlobalTableReplicaStreamSpecification { + return &v + }).(GlobalTableReplicaStreamSpecificationPtrOutput) +} + +func (o GlobalTableReplicaStreamSpecificationOutput) ResourcePolicy() GlobalTableResourcePolicyOutput { + return o.ApplyT(func(v GlobalTableReplicaStreamSpecification) GlobalTableResourcePolicy { return v.ResourcePolicy }).(GlobalTableResourcePolicyOutput) +} + +type GlobalTableReplicaStreamSpecificationPtrOutput struct{ *pulumi.OutputState } + +func (GlobalTableReplicaStreamSpecificationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GlobalTableReplicaStreamSpecification)(nil)).Elem() +} + +func (o GlobalTableReplicaStreamSpecificationPtrOutput) ToGlobalTableReplicaStreamSpecificationPtrOutput() GlobalTableReplicaStreamSpecificationPtrOutput { + return o +} + +func (o GlobalTableReplicaStreamSpecificationPtrOutput) ToGlobalTableReplicaStreamSpecificationPtrOutputWithContext(ctx context.Context) GlobalTableReplicaStreamSpecificationPtrOutput { + return o +} + +func (o GlobalTableReplicaStreamSpecificationPtrOutput) Elem() GlobalTableReplicaStreamSpecificationOutput { + return o.ApplyT(func(v *GlobalTableReplicaStreamSpecification) GlobalTableReplicaStreamSpecification { + if v != nil { + return *v + } + var ret GlobalTableReplicaStreamSpecification + return ret + }).(GlobalTableReplicaStreamSpecificationOutput) +} + +func (o GlobalTableReplicaStreamSpecificationPtrOutput) ResourcePolicy() GlobalTableResourcePolicyPtrOutput { + return o.ApplyT(func(v *GlobalTableReplicaStreamSpecification) *GlobalTableResourcePolicy { + if v == nil { + return nil + } + return &v.ResourcePolicy + }).(GlobalTableResourcePolicyPtrOutput) +} + +type GlobalTableResourcePolicy struct { + PolicyDocument interface{} `pulumi:"policyDocument"` +} + +// GlobalTableResourcePolicyInput is an input type that accepts GlobalTableResourcePolicyArgs and GlobalTableResourcePolicyOutput values. +// You can construct a concrete instance of `GlobalTableResourcePolicyInput` via: +// +// GlobalTableResourcePolicyArgs{...} +type GlobalTableResourcePolicyInput interface { + pulumi.Input + + ToGlobalTableResourcePolicyOutput() GlobalTableResourcePolicyOutput + ToGlobalTableResourcePolicyOutputWithContext(context.Context) GlobalTableResourcePolicyOutput +} + +type GlobalTableResourcePolicyArgs struct { + PolicyDocument pulumi.Input `pulumi:"policyDocument"` +} + +func (GlobalTableResourcePolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GlobalTableResourcePolicy)(nil)).Elem() +} + +func (i GlobalTableResourcePolicyArgs) ToGlobalTableResourcePolicyOutput() GlobalTableResourcePolicyOutput { + return i.ToGlobalTableResourcePolicyOutputWithContext(context.Background()) +} + +func (i GlobalTableResourcePolicyArgs) ToGlobalTableResourcePolicyOutputWithContext(ctx context.Context) GlobalTableResourcePolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(GlobalTableResourcePolicyOutput) +} + +func (i GlobalTableResourcePolicyArgs) ToGlobalTableResourcePolicyPtrOutput() GlobalTableResourcePolicyPtrOutput { + return i.ToGlobalTableResourcePolicyPtrOutputWithContext(context.Background()) +} + +func (i GlobalTableResourcePolicyArgs) ToGlobalTableResourcePolicyPtrOutputWithContext(ctx context.Context) GlobalTableResourcePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GlobalTableResourcePolicyOutput).ToGlobalTableResourcePolicyPtrOutputWithContext(ctx) +} + +// GlobalTableResourcePolicyPtrInput is an input type that accepts GlobalTableResourcePolicyArgs, GlobalTableResourcePolicyPtr and GlobalTableResourcePolicyPtrOutput values. +// You can construct a concrete instance of `GlobalTableResourcePolicyPtrInput` via: +// +// GlobalTableResourcePolicyArgs{...} +// +// or: +// +// nil +type GlobalTableResourcePolicyPtrInput interface { + pulumi.Input + + ToGlobalTableResourcePolicyPtrOutput() GlobalTableResourcePolicyPtrOutput + ToGlobalTableResourcePolicyPtrOutputWithContext(context.Context) GlobalTableResourcePolicyPtrOutput +} + +type globalTableResourcePolicyPtrType GlobalTableResourcePolicyArgs + +func GlobalTableResourcePolicyPtr(v *GlobalTableResourcePolicyArgs) GlobalTableResourcePolicyPtrInput { + return (*globalTableResourcePolicyPtrType)(v) +} + +func (*globalTableResourcePolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GlobalTableResourcePolicy)(nil)).Elem() +} + +func (i *globalTableResourcePolicyPtrType) ToGlobalTableResourcePolicyPtrOutput() GlobalTableResourcePolicyPtrOutput { + return i.ToGlobalTableResourcePolicyPtrOutputWithContext(context.Background()) +} + +func (i *globalTableResourcePolicyPtrType) ToGlobalTableResourcePolicyPtrOutputWithContext(ctx context.Context) GlobalTableResourcePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GlobalTableResourcePolicyPtrOutput) +} + +type GlobalTableResourcePolicyOutput struct{ *pulumi.OutputState } + +func (GlobalTableResourcePolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GlobalTableResourcePolicy)(nil)).Elem() +} + +func (o GlobalTableResourcePolicyOutput) ToGlobalTableResourcePolicyOutput() GlobalTableResourcePolicyOutput { + return o +} + +func (o GlobalTableResourcePolicyOutput) ToGlobalTableResourcePolicyOutputWithContext(ctx context.Context) GlobalTableResourcePolicyOutput { + return o +} + +func (o GlobalTableResourcePolicyOutput) ToGlobalTableResourcePolicyPtrOutput() GlobalTableResourcePolicyPtrOutput { + return o.ToGlobalTableResourcePolicyPtrOutputWithContext(context.Background()) +} + +func (o GlobalTableResourcePolicyOutput) ToGlobalTableResourcePolicyPtrOutputWithContext(ctx context.Context) GlobalTableResourcePolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GlobalTableResourcePolicy) *GlobalTableResourcePolicy { + return &v + }).(GlobalTableResourcePolicyPtrOutput) +} + +func (o GlobalTableResourcePolicyOutput) PolicyDocument() pulumi.AnyOutput { + return o.ApplyT(func(v GlobalTableResourcePolicy) interface{} { return v.PolicyDocument }).(pulumi.AnyOutput) +} + +type GlobalTableResourcePolicyPtrOutput struct{ *pulumi.OutputState } + +func (GlobalTableResourcePolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GlobalTableResourcePolicy)(nil)).Elem() +} + +func (o GlobalTableResourcePolicyPtrOutput) ToGlobalTableResourcePolicyPtrOutput() GlobalTableResourcePolicyPtrOutput { + return o +} + +func (o GlobalTableResourcePolicyPtrOutput) ToGlobalTableResourcePolicyPtrOutputWithContext(ctx context.Context) GlobalTableResourcePolicyPtrOutput { + return o +} + +func (o GlobalTableResourcePolicyPtrOutput) Elem() GlobalTableResourcePolicyOutput { + return o.ApplyT(func(v *GlobalTableResourcePolicy) GlobalTableResourcePolicy { + if v != nil { + return *v + } + var ret GlobalTableResourcePolicy + return ret + }).(GlobalTableResourcePolicyOutput) +} + +func (o GlobalTableResourcePolicyPtrOutput) PolicyDocument() pulumi.AnyOutput { + return o.ApplyT(func(v *GlobalTableResourcePolicy) interface{} { + if v == nil { + return nil + } + return v.PolicyDocument + }).(pulumi.AnyOutput) +} + type GlobalTableSseSpecification struct { SseEnabled bool `pulumi:"sseEnabled"` SseType *string `pulumi:"sseType"` @@ -4224,6 +4504,139 @@ func (o TableProvisionedThroughputPtrOutput) WriteCapacityUnits() pulumi.IntPtrO }).(pulumi.IntPtrOutput) } +type TableResourcePolicy struct { + PolicyDocument interface{} `pulumi:"policyDocument"` +} + +// TableResourcePolicyInput is an input type that accepts TableResourcePolicyArgs and TableResourcePolicyOutput values. +// You can construct a concrete instance of `TableResourcePolicyInput` via: +// +// TableResourcePolicyArgs{...} +type TableResourcePolicyInput interface { + pulumi.Input + + ToTableResourcePolicyOutput() TableResourcePolicyOutput + ToTableResourcePolicyOutputWithContext(context.Context) TableResourcePolicyOutput +} + +type TableResourcePolicyArgs struct { + PolicyDocument pulumi.Input `pulumi:"policyDocument"` +} + +func (TableResourcePolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TableResourcePolicy)(nil)).Elem() +} + +func (i TableResourcePolicyArgs) ToTableResourcePolicyOutput() TableResourcePolicyOutput { + return i.ToTableResourcePolicyOutputWithContext(context.Background()) +} + +func (i TableResourcePolicyArgs) ToTableResourcePolicyOutputWithContext(ctx context.Context) TableResourcePolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(TableResourcePolicyOutput) +} + +func (i TableResourcePolicyArgs) ToTableResourcePolicyPtrOutput() TableResourcePolicyPtrOutput { + return i.ToTableResourcePolicyPtrOutputWithContext(context.Background()) +} + +func (i TableResourcePolicyArgs) ToTableResourcePolicyPtrOutputWithContext(ctx context.Context) TableResourcePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TableResourcePolicyOutput).ToTableResourcePolicyPtrOutputWithContext(ctx) +} + +// TableResourcePolicyPtrInput is an input type that accepts TableResourcePolicyArgs, TableResourcePolicyPtr and TableResourcePolicyPtrOutput values. +// You can construct a concrete instance of `TableResourcePolicyPtrInput` via: +// +// TableResourcePolicyArgs{...} +// +// or: +// +// nil +type TableResourcePolicyPtrInput interface { + pulumi.Input + + ToTableResourcePolicyPtrOutput() TableResourcePolicyPtrOutput + ToTableResourcePolicyPtrOutputWithContext(context.Context) TableResourcePolicyPtrOutput +} + +type tableResourcePolicyPtrType TableResourcePolicyArgs + +func TableResourcePolicyPtr(v *TableResourcePolicyArgs) TableResourcePolicyPtrInput { + return (*tableResourcePolicyPtrType)(v) +} + +func (*tableResourcePolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**TableResourcePolicy)(nil)).Elem() +} + +func (i *tableResourcePolicyPtrType) ToTableResourcePolicyPtrOutput() TableResourcePolicyPtrOutput { + return i.ToTableResourcePolicyPtrOutputWithContext(context.Background()) +} + +func (i *tableResourcePolicyPtrType) ToTableResourcePolicyPtrOutputWithContext(ctx context.Context) TableResourcePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(TableResourcePolicyPtrOutput) +} + +type TableResourcePolicyOutput struct{ *pulumi.OutputState } + +func (TableResourcePolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TableResourcePolicy)(nil)).Elem() +} + +func (o TableResourcePolicyOutput) ToTableResourcePolicyOutput() TableResourcePolicyOutput { + return o +} + +func (o TableResourcePolicyOutput) ToTableResourcePolicyOutputWithContext(ctx context.Context) TableResourcePolicyOutput { + return o +} + +func (o TableResourcePolicyOutput) ToTableResourcePolicyPtrOutput() TableResourcePolicyPtrOutput { + return o.ToTableResourcePolicyPtrOutputWithContext(context.Background()) +} + +func (o TableResourcePolicyOutput) ToTableResourcePolicyPtrOutputWithContext(ctx context.Context) TableResourcePolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v TableResourcePolicy) *TableResourcePolicy { + return &v + }).(TableResourcePolicyPtrOutput) +} + +func (o TableResourcePolicyOutput) PolicyDocument() pulumi.AnyOutput { + return o.ApplyT(func(v TableResourcePolicy) interface{} { return v.PolicyDocument }).(pulumi.AnyOutput) +} + +type TableResourcePolicyPtrOutput struct{ *pulumi.OutputState } + +func (TableResourcePolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**TableResourcePolicy)(nil)).Elem() +} + +func (o TableResourcePolicyPtrOutput) ToTableResourcePolicyPtrOutput() TableResourcePolicyPtrOutput { + return o +} + +func (o TableResourcePolicyPtrOutput) ToTableResourcePolicyPtrOutputWithContext(ctx context.Context) TableResourcePolicyPtrOutput { + return o +} + +func (o TableResourcePolicyPtrOutput) Elem() TableResourcePolicyOutput { + return o.ApplyT(func(v *TableResourcePolicy) TableResourcePolicy { + if v != nil { + return *v + } + var ret TableResourcePolicy + return ret + }).(TableResourcePolicyOutput) +} + +func (o TableResourcePolicyPtrOutput) PolicyDocument() pulumi.AnyOutput { + return o.ApplyT(func(v *TableResourcePolicy) interface{} { + if v == nil { + return nil + } + return v.PolicyDocument + }).(pulumi.AnyOutput) +} + // The S3 bucket that is being imported from. type TableS3BucketSource struct { // The S3 bucket that is being imported from. @@ -4586,6 +4999,7 @@ func (o TableSseSpecificationPtrOutput) SseType() pulumi.StringPtrOutput { // Represents the DynamoDB Streams configuration for a table in DynamoDB. type TableStreamSpecification struct { + ResourcePolicy *TableResourcePolicy `pulumi:"resourcePolicy"` // When an item in the table is modified, ``StreamViewType`` determines what information is written to the stream for this table. Valid values for ``StreamViewType`` are: // + ``KEYS_ONLY`` - Only the key attributes of the modified item are written to the stream. // + ``NEW_IMAGE`` - The entire item, as it appears after it was modified, is written to the stream. @@ -4607,6 +5021,7 @@ type TableStreamSpecificationInput interface { // Represents the DynamoDB Streams configuration for a table in DynamoDB. type TableStreamSpecificationArgs struct { + ResourcePolicy TableResourcePolicyPtrInput `pulumi:"resourcePolicy"` // When an item in the table is modified, ``StreamViewType`` determines what information is written to the stream for this table. Valid values for ``StreamViewType`` are: // + ``KEYS_ONLY`` - Only the key attributes of the modified item are written to the stream. // + ``NEW_IMAGE`` - The entire item, as it appears after it was modified, is written to the stream. @@ -4693,6 +5108,10 @@ func (o TableStreamSpecificationOutput) ToTableStreamSpecificationPtrOutputWithC }).(TableStreamSpecificationPtrOutput) } +func (o TableStreamSpecificationOutput) ResourcePolicy() TableResourcePolicyPtrOutput { + return o.ApplyT(func(v TableStreamSpecification) *TableResourcePolicy { return v.ResourcePolicy }).(TableResourcePolicyPtrOutput) +} + // When an item in the table is modified, “StreamViewType“ determines what information is written to the stream for this table. Valid values for “StreamViewType“ are: // - “KEYS_ONLY“ - Only the key attributes of the modified item are written to the stream. // - “NEW_IMAGE“ - The entire item, as it appears after it was modified, is written to the stream. @@ -4726,6 +5145,15 @@ func (o TableStreamSpecificationPtrOutput) Elem() TableStreamSpecificationOutput }).(TableStreamSpecificationOutput) } +func (o TableStreamSpecificationPtrOutput) ResourcePolicy() TableResourcePolicyPtrOutput { + return o.ApplyT(func(v *TableStreamSpecification) *TableResourcePolicy { + if v == nil { + return nil + } + return v.ResourcePolicy + }).(TableResourcePolicyPtrOutput) +} + // When an item in the table is modified, “StreamViewType“ determines what information is written to the stream for this table. Valid values for “StreamViewType“ are: // - “KEYS_ONLY“ - Only the key attributes of the modified item are written to the stream. // - “NEW_IMAGE“ - The entire item, as it appears after it was modified, is written to the stream. @@ -4944,6 +5372,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GlobalTableReplicaSpecificationArrayInput)(nil)).Elem(), GlobalTableReplicaSpecificationArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GlobalTableReplicaSseSpecificationInput)(nil)).Elem(), GlobalTableReplicaSseSpecificationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GlobalTableReplicaSseSpecificationPtrInput)(nil)).Elem(), GlobalTableReplicaSseSpecificationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GlobalTableReplicaStreamSpecificationInput)(nil)).Elem(), GlobalTableReplicaStreamSpecificationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GlobalTableReplicaStreamSpecificationPtrInput)(nil)).Elem(), GlobalTableReplicaStreamSpecificationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GlobalTableResourcePolicyInput)(nil)).Elem(), GlobalTableResourcePolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GlobalTableResourcePolicyPtrInput)(nil)).Elem(), GlobalTableResourcePolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GlobalTableSseSpecificationInput)(nil)).Elem(), GlobalTableSseSpecificationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GlobalTableSseSpecificationPtrInput)(nil)).Elem(), GlobalTableSseSpecificationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GlobalTableStreamSpecificationInput)(nil)).Elem(), GlobalTableStreamSpecificationArgs{}) @@ -4979,6 +5411,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*TableProjectionInput)(nil)).Elem(), TableProjectionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TableProvisionedThroughputInput)(nil)).Elem(), TableProvisionedThroughputArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TableProvisionedThroughputPtrInput)(nil)).Elem(), TableProvisionedThroughputArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TableResourcePolicyInput)(nil)).Elem(), TableResourcePolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TableResourcePolicyPtrInput)(nil)).Elem(), TableResourcePolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TableS3BucketSourceInput)(nil)).Elem(), TableS3BucketSourceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TableS3BucketSourcePtrInput)(nil)).Elem(), TableS3BucketSourceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TableSseSpecificationInput)(nil)).Elem(), TableSseSpecificationArgs{}) @@ -5012,6 +5446,10 @@ func init() { pulumi.RegisterOutputType(GlobalTableReplicaSpecificationArrayOutput{}) pulumi.RegisterOutputType(GlobalTableReplicaSseSpecificationOutput{}) pulumi.RegisterOutputType(GlobalTableReplicaSseSpecificationPtrOutput{}) + pulumi.RegisterOutputType(GlobalTableReplicaStreamSpecificationOutput{}) + pulumi.RegisterOutputType(GlobalTableReplicaStreamSpecificationPtrOutput{}) + pulumi.RegisterOutputType(GlobalTableResourcePolicyOutput{}) + pulumi.RegisterOutputType(GlobalTableResourcePolicyPtrOutput{}) pulumi.RegisterOutputType(GlobalTableSseSpecificationOutput{}) pulumi.RegisterOutputType(GlobalTableSseSpecificationPtrOutput{}) pulumi.RegisterOutputType(GlobalTableStreamSpecificationOutput{}) @@ -5047,6 +5485,8 @@ func init() { pulumi.RegisterOutputType(TableProjectionOutput{}) pulumi.RegisterOutputType(TableProvisionedThroughputOutput{}) pulumi.RegisterOutputType(TableProvisionedThroughputPtrOutput{}) + pulumi.RegisterOutputType(TableResourcePolicyOutput{}) + pulumi.RegisterOutputType(TableResourcePolicyPtrOutput{}) pulumi.RegisterOutputType(TableS3BucketSourceOutput{}) pulumi.RegisterOutputType(TableS3BucketSourcePtrOutput{}) pulumi.RegisterOutputType(TableSseSpecificationOutput{}) diff --git a/sdk/go/aws/dynamodb/table.go b/sdk/go/aws/dynamodb/table.go index bcfa6b1a40..27d3da72ac 100644 --- a/sdk/go/aws/dynamodb/table.go +++ b/sdk/go/aws/dynamodb/table.go @@ -319,6 +319,7 @@ type Table struct { // Throughput for the specified table, which consists of values for ``ReadCapacityUnits`` and ``WriteCapacityUnits``. For more information about the contents of a provisioned throughput structure, see [Amazon DynamoDB Table ProvisionedThroughput](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ProvisionedThroughput.html). // If you set ``BillingMode`` as ``PROVISIONED``, you must specify this property. If you set ``BillingMode`` as ``PAY_PER_REQUEST``, you cannot specify this property. ProvisionedThroughput TableProvisionedThroughputPtrOutput `pulumi:"provisionedThroughput"` + ResourcePolicy TableResourcePolicyPtrOutput `pulumi:"resourcePolicy"` // Specifies the settings to enable server-side encryption. SseSpecification TableSseSpecificationPtrOutput `pulumi:"sseSpecification"` StreamArn pulumi.StringOutput `pulumi:"streamArn"` @@ -421,6 +422,7 @@ type tableArgs struct { // Throughput for the specified table, which consists of values for ``ReadCapacityUnits`` and ``WriteCapacityUnits``. For more information about the contents of a provisioned throughput structure, see [Amazon DynamoDB Table ProvisionedThroughput](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ProvisionedThroughput.html). // If you set ``BillingMode`` as ``PROVISIONED``, you must specify this property. If you set ``BillingMode`` as ``PAY_PER_REQUEST``, you cannot specify this property. ProvisionedThroughput *TableProvisionedThroughput `pulumi:"provisionedThroughput"` + ResourcePolicy *TableResourcePolicy `pulumi:"resourcePolicy"` // Specifies the settings to enable server-side encryption. SseSpecification *TableSseSpecification `pulumi:"sseSpecification"` // The settings for the DDB table stream, which capture changes to items stored in the table. @@ -476,6 +478,7 @@ type TableArgs struct { // Throughput for the specified table, which consists of values for ``ReadCapacityUnits`` and ``WriteCapacityUnits``. For more information about the contents of a provisioned throughput structure, see [Amazon DynamoDB Table ProvisionedThroughput](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ProvisionedThroughput.html). // If you set ``BillingMode`` as ``PROVISIONED``, you must specify this property. If you set ``BillingMode`` as ``PAY_PER_REQUEST``, you cannot specify this property. ProvisionedThroughput TableProvisionedThroughputPtrInput + ResourcePolicy TableResourcePolicyPtrInput // Specifies the settings to enable server-side encryption. SseSpecification TableSseSpecificationPtrInput // The settings for the DDB table stream, which capture changes to items stored in the table. @@ -612,6 +615,10 @@ func (o TableOutput) ProvisionedThroughput() TableProvisionedThroughputPtrOutput return o.ApplyT(func(v *Table) TableProvisionedThroughputPtrOutput { return v.ProvisionedThroughput }).(TableProvisionedThroughputPtrOutput) } +func (o TableOutput) ResourcePolicy() TableResourcePolicyPtrOutput { + return o.ApplyT(func(v *Table) TableResourcePolicyPtrOutput { return v.ResourcePolicy }).(TableResourcePolicyPtrOutput) +} + // Specifies the settings to enable server-side encryption. func (o TableOutput) SseSpecification() TableSseSpecificationPtrOutput { return o.ApplyT(func(v *Table) TableSseSpecificationPtrOutput { return v.SseSpecification }).(TableSseSpecificationPtrOutput) diff --git a/sdk/go/aws/ec2/getInternetGateway.go b/sdk/go/aws/ec2/getInternetGateway.go index a923dab6b5..69cf0d8d0a 100644 --- a/sdk/go/aws/ec2/getInternetGateway.go +++ b/sdk/go/aws/ec2/getInternetGateway.go @@ -12,7 +12,7 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Resource Type definition for AWS::EC2::InternetGateway +// Allocates an internet gateway for use with a VPC. After creating the Internet gateway, you then attach it to a VPC. func LookupInternetGateway(ctx *pulumi.Context, args *LookupInternetGatewayArgs, opts ...pulumi.InvokeOption) (*LookupInternetGatewayResult, error) { opts = internal.PkgInvokeDefaultOpts(opts) var rv LookupInternetGatewayResult @@ -24,12 +24,10 @@ func LookupInternetGateway(ctx *pulumi.Context, args *LookupInternetGatewayArgs, } type LookupInternetGatewayArgs struct { - // ID of internet gateway. InternetGatewayId string `pulumi:"internetGatewayId"` } type LookupInternetGatewayResult struct { - // ID of internet gateway. InternetGatewayId *string `pulumi:"internetGatewayId"` // Any tags to assign to the internet gateway. Tags []aws.Tag `pulumi:"tags"` @@ -49,7 +47,6 @@ func LookupInternetGatewayOutput(ctx *pulumi.Context, args LookupInternetGateway } type LookupInternetGatewayOutputArgs struct { - // ID of internet gateway. InternetGatewayId pulumi.StringInput `pulumi:"internetGatewayId"` } @@ -71,7 +68,6 @@ func (o LookupInternetGatewayResultOutput) ToLookupInternetGatewayResultOutputWi return o } -// ID of internet gateway. func (o LookupInternetGatewayResultOutput) InternetGatewayId() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupInternetGatewayResult) *string { return v.InternetGatewayId }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/ec2/getSubnet.go b/sdk/go/aws/ec2/getSubnet.go index d47fc84aa1..7728664626 100644 --- a/sdk/go/aws/ec2/getSubnet.go +++ b/sdk/go/aws/ec2/getSubnet.go @@ -42,14 +42,14 @@ type LookupSubnetResult struct { // The IPv6 network ranges for the subnet, in CIDR notation. Ipv6CidrBlocks []string `pulumi:"ipv6CidrBlocks"` // Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``. - // AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). + // AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). MapPublicIpOnLaunch *bool `pulumi:"mapPublicIpOnLaunch"` NetworkAclAssociationId *string `pulumi:"networkAclAssociationId"` // The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. // Available options: - // + EnableResourceNameDnsAAAARecord (true | false) - // + EnableResourceNameDnsARecord (true | false) - // + HostnameType (ip-name | resource-name) + // + EnableResourceNameDnsAAAARecord (true | false) + // + EnableResourceNameDnsARecord (true | false) + // + HostnameType (ip-name | resource-name) PrivateDnsNameOptionsOnLaunch *PrivateDnsNameOptionsOnLaunchProperties `pulumi:"privateDnsNameOptionsOnLaunch"` SubnetId *string `pulumi:"subnetId"` // Any tags assigned to the subnet. @@ -129,9 +129,9 @@ func (o LookupSubnetResultOutput) NetworkAclAssociationId() pulumi.StringPtrOutp // The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. // // Available options: -// + EnableResourceNameDnsAAAARecord (true | false) -// + EnableResourceNameDnsARecord (true | false) -// + HostnameType (ip-name | resource-name) +// + EnableResourceNameDnsAAAARecord (true | false) +// + EnableResourceNameDnsARecord (true | false) +// + HostnameType (ip-name | resource-name) func (o LookupSubnetResultOutput) PrivateDnsNameOptionsOnLaunch() PrivateDnsNameOptionsOnLaunchPropertiesPtrOutput { return o.ApplyT(func(v LookupSubnetResult) *PrivateDnsNameOptionsOnLaunchProperties { return v.PrivateDnsNameOptionsOnLaunch diff --git a/sdk/go/aws/ec2/getTransitGatewayRouteTableAssociation.go b/sdk/go/aws/ec2/getTransitGatewayRouteTableAssociation.go deleted file mode 100644 index 474668523c..0000000000 --- a/sdk/go/aws/ec2/getTransitGatewayRouteTableAssociation.go +++ /dev/null @@ -1,74 +0,0 @@ -// 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 ec2 - -import ( - "context" - "reflect" - - "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" - "github.com/pulumi/pulumi/sdk/v3/go/pulumi" -) - -// Resource Type definition for AWS::EC2::TransitGatewayRouteTableAssociation -func LookupTransitGatewayRouteTableAssociation(ctx *pulumi.Context, args *LookupTransitGatewayRouteTableAssociationArgs, opts ...pulumi.InvokeOption) (*LookupTransitGatewayRouteTableAssociationResult, error) { - opts = internal.PkgInvokeDefaultOpts(opts) - var rv LookupTransitGatewayRouteTableAssociationResult - err := ctx.Invoke("aws-native:ec2:getTransitGatewayRouteTableAssociation", args, &rv, opts...) - if err != nil { - return nil, err - } - return &rv, nil -} - -type LookupTransitGatewayRouteTableAssociationArgs struct { - Id string `pulumi:"id"` -} - -type LookupTransitGatewayRouteTableAssociationResult struct { - Id *string `pulumi:"id"` -} - -func LookupTransitGatewayRouteTableAssociationOutput(ctx *pulumi.Context, args LookupTransitGatewayRouteTableAssociationOutputArgs, opts ...pulumi.InvokeOption) LookupTransitGatewayRouteTableAssociationResultOutput { - return pulumi.ToOutputWithContext(context.Background(), args). - ApplyT(func(v interface{}) (LookupTransitGatewayRouteTableAssociationResult, error) { - args := v.(LookupTransitGatewayRouteTableAssociationArgs) - r, err := LookupTransitGatewayRouteTableAssociation(ctx, &args, opts...) - var s LookupTransitGatewayRouteTableAssociationResult - if r != nil { - s = *r - } - return s, err - }).(LookupTransitGatewayRouteTableAssociationResultOutput) -} - -type LookupTransitGatewayRouteTableAssociationOutputArgs struct { - Id pulumi.StringInput `pulumi:"id"` -} - -func (LookupTransitGatewayRouteTableAssociationOutputArgs) ElementType() reflect.Type { - return reflect.TypeOf((*LookupTransitGatewayRouteTableAssociationArgs)(nil)).Elem() -} - -type LookupTransitGatewayRouteTableAssociationResultOutput struct{ *pulumi.OutputState } - -func (LookupTransitGatewayRouteTableAssociationResultOutput) ElementType() reflect.Type { - return reflect.TypeOf((*LookupTransitGatewayRouteTableAssociationResult)(nil)).Elem() -} - -func (o LookupTransitGatewayRouteTableAssociationResultOutput) ToLookupTransitGatewayRouteTableAssociationResultOutput() LookupTransitGatewayRouteTableAssociationResultOutput { - return o -} - -func (o LookupTransitGatewayRouteTableAssociationResultOutput) ToLookupTransitGatewayRouteTableAssociationResultOutputWithContext(ctx context.Context) LookupTransitGatewayRouteTableAssociationResultOutput { - return o -} - -func (o LookupTransitGatewayRouteTableAssociationResultOutput) Id() pulumi.StringPtrOutput { - return o.ApplyT(func(v LookupTransitGatewayRouteTableAssociationResult) *string { return v.Id }).(pulumi.StringPtrOutput) -} - -func init() { - pulumi.RegisterOutputType(LookupTransitGatewayRouteTableAssociationResultOutput{}) -} diff --git a/sdk/go/aws/ec2/internetGateway.go b/sdk/go/aws/ec2/internetGateway.go index dc8bcaa7ca..d240a67203 100644 --- a/sdk/go/aws/ec2/internetGateway.go +++ b/sdk/go/aws/ec2/internetGateway.go @@ -12,7 +12,7 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Resource Type definition for AWS::EC2::InternetGateway +// Allocates an internet gateway for use with a VPC. After creating the Internet gateway, you then attach it to a VPC. // // ## Example Usage // ### Example @@ -49,7 +49,6 @@ import ( type InternetGateway struct { pulumi.CustomResourceState - // ID of internet gateway. InternetGatewayId pulumi.StringOutput `pulumi:"internetGatewayId"` // Any tags to assign to the internet gateway. Tags aws.TagArrayOutput `pulumi:"tags"` @@ -142,7 +141,6 @@ func (o InternetGatewayOutput) ToInternetGatewayOutputWithContext(ctx context.Co return o } -// ID of internet gateway. func (o InternetGatewayOutput) InternetGatewayId() pulumi.StringOutput { return o.ApplyT(func(v *InternetGateway) pulumi.StringOutput { return v.InternetGatewayId }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/ec2/pulumiTypes.go b/sdk/go/aws/ec2/pulumiTypes.go index 0b0ef95d66..203e5eab3a 100644 --- a/sdk/go/aws/ec2/pulumiTypes.go +++ b/sdk/go/aws/ec2/pulumiTypes.go @@ -6764,8 +6764,11 @@ func (o InstanceVolumeArrayOutput) Index(i pulumi.IntInput) InstanceVolumeOutput }).(InstanceVolumeOutput) } +// Specifies a tag. For more information, see [Add tags to a resource](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#cloudformation-add-tag-specifications). type InternetGatewayTag struct { - Key string `pulumi:"key"` + // The tag key. + Key string `pulumi:"key"` + // The tag value. Value string `pulumi:"value"` } @@ -8913,7 +8916,9 @@ type LaunchTemplateData struct { // + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. // + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. // - // If you specify ``InstanceReq + // If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. + // Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. + // For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. InstanceRequirements *LaunchTemplateInstanceRequirements `pulumi:"instanceRequirements"` // The instance type. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon Elastic Compute Cloud User Guide*. // If you specify ``InstanceType``, you can't specify ``InstanceRequirements``. @@ -9018,7 +9023,9 @@ type LaunchTemplateDataArgs struct { // + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. // + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. // - // If you specify ``InstanceReq + // If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. + // Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. + // For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. InstanceRequirements LaunchTemplateInstanceRequirementsPtrInput `pulumi:"instanceRequirements"` // The instance type. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon Elastic Compute Cloud User Guide*. // If you specify ``InstanceType``, you can't specify ``InstanceRequirements``. @@ -9192,7 +9199,9 @@ func (o LaunchTemplateDataOutput) InstanceMarketOptions() LaunchTemplateInstance // + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. // + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. // -// If you specify ``InstanceReq +// If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. +// Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. +// For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. func (o LaunchTemplateDataOutput) InstanceRequirements() LaunchTemplateInstanceRequirementsPtrOutput { return o.ApplyT(func(v LaunchTemplateData) *LaunchTemplateInstanceRequirements { return v.InstanceRequirements }).(LaunchTemplateInstanceRequirementsPtrOutput) } @@ -9316,7 +9325,7 @@ type LaunchTemplateEbs struct { // + ``st1`` and ``sc1``: 125 - 16,384 GiB // + ``standard``: 1 - 1024 GiB VolumeSize *int `pulumi:"volumeSize"` - // The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*. + // The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon EBS User Guide*. VolumeType *string `pulumi:"volumeType"` } @@ -9362,7 +9371,7 @@ type LaunchTemplateEbsArgs struct { // + ``st1`` and ``sc1``: 125 - 16,384 GiB // + ``standard``: 1 - 1024 GiB VolumeSize pulumi.IntPtrInput `pulumi:"volumeSize"` - // The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*. + // The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon EBS User Guide*. VolumeType pulumi.StringPtrInput `pulumi:"volumeType"` } @@ -9496,7 +9505,7 @@ func (o LaunchTemplateEbsOutput) VolumeSize() pulumi.IntPtrOutput { return o.ApplyT(func(v LaunchTemplateEbs) *int { return v.VolumeSize }).(pulumi.IntPtrOutput) } -// The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*. +// The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon EBS User Guide*. func (o LaunchTemplateEbsOutput) VolumeType() pulumi.StringPtrOutput { return o.ApplyT(func(v LaunchTemplateEbs) *string { return v.VolumeType }).(pulumi.StringPtrOutput) } @@ -9610,7 +9619,7 @@ func (o LaunchTemplateEbsPtrOutput) VolumeSize() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } -// The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*. +// The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon EBS User Guide*. func (o LaunchTemplateEbsPtrOutput) VolumeType() pulumi.StringPtrOutput { return o.ApplyT(func(v *LaunchTemplateEbs) *string { if v == nil { @@ -9620,8 +9629,9 @@ func (o LaunchTemplateEbsPtrOutput) VolumeType() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Specifies a specification for an Elastic GPU for an Amazon EC2 launch template. +// Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. // +// Specifies a specification for an Elastic GPU for an Amazon EC2 launch template. // ``ElasticGpuSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html). type LaunchTemplateElasticGpuSpecification struct { // The type of Elastic Graphics accelerator. For more information about the values to specify for ``Type``, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*. @@ -9639,8 +9649,9 @@ type LaunchTemplateElasticGpuSpecificationInput interface { ToLaunchTemplateElasticGpuSpecificationOutputWithContext(context.Context) LaunchTemplateElasticGpuSpecificationOutput } -// Specifies a specification for an Elastic GPU for an Amazon EC2 launch template. +// Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. // +// Specifies a specification for an Elastic GPU for an Amazon EC2 launch template. // ``ElasticGpuSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html). type LaunchTemplateElasticGpuSpecificationArgs struct { // The type of Elastic Graphics accelerator. For more information about the values to specify for ``Type``, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*. @@ -9684,8 +9695,9 @@ func (i LaunchTemplateElasticGpuSpecificationArray) ToLaunchTemplateElasticGpuSp return pulumi.ToOutputWithContext(ctx, i).(LaunchTemplateElasticGpuSpecificationArrayOutput) } -// Specifies a specification for an Elastic GPU for an Amazon EC2 launch template. +// Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. // +// Specifies a specification for an Elastic GPU for an Amazon EC2 launch template. // ``ElasticGpuSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html). type LaunchTemplateElasticGpuSpecificationOutput struct{ *pulumi.OutputState } @@ -10446,7 +10458,7 @@ func (o LaunchTemplateHibernationOptionsPtrOutput) Configured() pulumi.BoolPtrOu // Specifies an IAM instance profile, which is a container for an IAM role for your instance. You can use an IAM role to distribute your AWS credentials to your instances. // -// If you are creating the launch template for use with an Amazon EC2 Auto Scaling group, you can specify either the name or the ARN of the instance profile, but not both. +// If you are creating the launch template for use with an ASlong group, you can specify either the name or the ARN of the instance profile, but not both. // ``IamInstanceProfile`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html). type LaunchTemplateIamInstanceProfile struct { // The Amazon Resource Name (ARN) of the instance profile. @@ -10468,7 +10480,7 @@ type LaunchTemplateIamInstanceProfileInput interface { // Specifies an IAM instance profile, which is a container for an IAM role for your instance. You can use an IAM role to distribute your AWS credentials to your instances. // -// If you are creating the launch template for use with an Amazon EC2 Auto Scaling group, you can specify either the name or the ARN of the instance profile, but not both. +// If you are creating the launch template for use with an ASlong group, you can specify either the name or the ARN of the instance profile, but not both. // ``IamInstanceProfile`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html). type LaunchTemplateIamInstanceProfileArgs struct { // The Amazon Resource Name (ARN) of the instance profile. @@ -10532,7 +10544,7 @@ func (i *launchTemplateIamInstanceProfilePtrType) ToLaunchTemplateIamInstancePro // Specifies an IAM instance profile, which is a container for an IAM role for your instance. You can use an IAM role to distribute your AWS credentials to your instances. // -// If you are creating the launch template for use with an Amazon EC2 Auto Scaling group, you can specify either the name or the ARN of the instance profile, but not both. +// If you are creating the launch template for use with an ASlong group, you can specify either the name or the ARN of the instance profile, but not both. // ``IamInstanceProfile`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html). type LaunchTemplateIamInstanceProfileOutput struct{ *pulumi.OutputState } @@ -10785,7 +10797,9 @@ func (o LaunchTemplateInstanceMarketOptionsPtrOutput) SpotOptions() LaunchTempla // + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. // + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. // -// If you specify ``InstanceReq +// If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. +// Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. +// For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. type LaunchTemplateInstanceRequirements struct { // The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) on an instance. // To exclude accelerator-enabled instance types, set ``Max`` to ``0``. @@ -10883,8 +10897,8 @@ type LaunchTemplateInstanceRequirements struct { LocalStorageTypes []string `pulumi:"localStorageTypes"` // [Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold. // The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - // To indicate no price protection threshold, specify a high value, such as ``999999``. - // If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instanc + // If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price. + // Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. MaxSpotPriceAsPercentageOfOptimalOnDemandPrice *int `pulumi:"maxSpotPriceAsPercentageOfOptimalOnDemandPrice"` // The minimum and maximum amount of memory per vCPU, in GiB. // Default: No minimum or maximum limits @@ -10901,7 +10915,8 @@ type LaunchTemplateInstanceRequirements struct { // The parameter accepts an integer, which Amazon EC2 interprets as a percentage. // To turn off price protection, specify a high value, such as ``999999``. // This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). - // If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per- + // If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. + // Default: ``20`` OnDemandMaxPricePercentageOverLowestPrice *int `pulumi:"onDemandMaxPricePercentageOverLowestPrice"` // Indicates whether instance types must support hibernation for On-Demand Instances. // This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html). @@ -10909,8 +10924,10 @@ type LaunchTemplateInstanceRequirements struct { RequireHibernateSupport *bool `pulumi:"requireHibernateSupport"` // [Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold. // The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - // To indicate no price protection threshold, specify a high value, such as ``999999``. - // If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price i + // If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. + // This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). + // Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. + // Default: ``100`` SpotMaxPricePercentageOverLowestPrice *int `pulumi:"spotMaxPricePercentageOverLowestPrice"` // The minimum and maximum amount of total local storage, in GB. // Default: No minimum or maximum limits @@ -10938,7 +10955,9 @@ type LaunchTemplateInstanceRequirementsInput interface { // + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. // + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. // -// If you specify ``InstanceReq +// If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. +// Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. +// For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. type LaunchTemplateInstanceRequirementsArgs struct { // The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) on an instance. // To exclude accelerator-enabled instance types, set ``Max`` to ``0``. @@ -11036,8 +11055,8 @@ type LaunchTemplateInstanceRequirementsArgs struct { LocalStorageTypes pulumi.StringArrayInput `pulumi:"localStorageTypes"` // [Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold. // The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - // To indicate no price protection threshold, specify a high value, such as ``999999``. - // If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instanc + // If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price. + // Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. MaxSpotPriceAsPercentageOfOptimalOnDemandPrice pulumi.IntPtrInput `pulumi:"maxSpotPriceAsPercentageOfOptimalOnDemandPrice"` // The minimum and maximum amount of memory per vCPU, in GiB. // Default: No minimum or maximum limits @@ -11054,7 +11073,8 @@ type LaunchTemplateInstanceRequirementsArgs struct { // The parameter accepts an integer, which Amazon EC2 interprets as a percentage. // To turn off price protection, specify a high value, such as ``999999``. // This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). - // If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per- + // If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. + // Default: ``20`` OnDemandMaxPricePercentageOverLowestPrice pulumi.IntPtrInput `pulumi:"onDemandMaxPricePercentageOverLowestPrice"` // Indicates whether instance types must support hibernation for On-Demand Instances. // This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html). @@ -11062,8 +11082,10 @@ type LaunchTemplateInstanceRequirementsArgs struct { RequireHibernateSupport pulumi.BoolPtrInput `pulumi:"requireHibernateSupport"` // [Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold. // The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - // To indicate no price protection threshold, specify a high value, such as ``999999``. - // If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price i + // If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. + // This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). + // Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. + // Default: ``100`` SpotMaxPricePercentageOverLowestPrice pulumi.IntPtrInput `pulumi:"spotMaxPricePercentageOverLowestPrice"` // The minimum and maximum amount of total local storage, in GB. // Default: No minimum or maximum limits @@ -11133,7 +11155,9 @@ func (i *launchTemplateInstanceRequirementsPtrType) ToLaunchTemplateInstanceRequ // + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. // + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. // -// If you specify ``InstanceReq +// If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. +// Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. +// For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. type LaunchTemplateInstanceRequirementsOutput struct{ *pulumi.OutputState } func (LaunchTemplateInstanceRequirementsOutput) ElementType() reflect.Type { @@ -11341,8 +11365,8 @@ func (o LaunchTemplateInstanceRequirementsOutput) LocalStorageTypes() pulumi.Str // [Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold. // // The parameter accepts an integer, which Amazon EC2 interprets as a percentage. -// To indicate no price protection threshold, specify a high value, such as ``999999``. -// If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instanc +// If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price. +// Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. func (o LaunchTemplateInstanceRequirementsOutput) MaxSpotPriceAsPercentageOfOptimalOnDemandPrice() pulumi.IntPtrOutput { return o.ApplyT(func(v LaunchTemplateInstanceRequirements) *int { return v.MaxSpotPriceAsPercentageOfOptimalOnDemandPrice @@ -11384,7 +11408,8 @@ func (o LaunchTemplateInstanceRequirementsOutput) NetworkInterfaceCount() Launch // The parameter accepts an integer, which Amazon EC2 interprets as a percentage. // To turn off price protection, specify a high value, such as ``999999``. // This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). -// If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per- +// If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. +// Default: ``20`` func (o LaunchTemplateInstanceRequirementsOutput) OnDemandMaxPricePercentageOverLowestPrice() pulumi.IntPtrOutput { return o.ApplyT(func(v LaunchTemplateInstanceRequirements) *int { return v.OnDemandMaxPricePercentageOverLowestPrice }).(pulumi.IntPtrOutput) } @@ -11400,8 +11425,10 @@ func (o LaunchTemplateInstanceRequirementsOutput) RequireHibernateSupport() pulu // [Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold. // // The parameter accepts an integer, which Amazon EC2 interprets as a percentage. -// To indicate no price protection threshold, specify a high value, such as ``999999``. -// If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price i +// If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. +// This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). +// Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. +// Default: ``100`` func (o LaunchTemplateInstanceRequirementsOutput) SpotMaxPricePercentageOverLowestPrice() pulumi.IntPtrOutput { return o.ApplyT(func(v LaunchTemplateInstanceRequirements) *int { return v.SpotMaxPricePercentageOverLowestPrice }).(pulumi.IntPtrOutput) } @@ -11693,8 +11720,8 @@ func (o LaunchTemplateInstanceRequirementsPtrOutput) LocalStorageTypes() pulumi. // [Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold. // // The parameter accepts an integer, which Amazon EC2 interprets as a percentage. -// To indicate no price protection threshold, specify a high value, such as ``999999``. -// If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instanc +// If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price. +// Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. func (o LaunchTemplateInstanceRequirementsPtrOutput) MaxSpotPriceAsPercentageOfOptimalOnDemandPrice() pulumi.IntPtrOutput { return o.ApplyT(func(v *LaunchTemplateInstanceRequirements) *int { if v == nil { @@ -11755,7 +11782,8 @@ func (o LaunchTemplateInstanceRequirementsPtrOutput) NetworkInterfaceCount() Lau // The parameter accepts an integer, which Amazon EC2 interprets as a percentage. // To turn off price protection, specify a high value, such as ``999999``. // This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). -// If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per- +// If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. +// Default: ``20`` func (o LaunchTemplateInstanceRequirementsPtrOutput) OnDemandMaxPricePercentageOverLowestPrice() pulumi.IntPtrOutput { return o.ApplyT(func(v *LaunchTemplateInstanceRequirements) *int { if v == nil { @@ -11781,8 +11809,10 @@ func (o LaunchTemplateInstanceRequirementsPtrOutput) RequireHibernateSupport() p // [Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold. // // The parameter accepts an integer, which Amazon EC2 interprets as a percentage. -// To indicate no price protection threshold, specify a high value, such as ``999999``. -// If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price i +// If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. +// This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). +// Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. +// Default: ``100`` func (o LaunchTemplateInstanceRequirementsPtrOutput) SpotMaxPricePercentageOverLowestPrice() pulumi.IntPtrOutput { return o.ApplyT(func(v *LaunchTemplateInstanceRequirements) *int { if v == nil { @@ -12241,8 +12271,7 @@ func (o LaunchTemplateLicenseSpecificationArrayOutput) Index(i pulumi.IntInput) // The maintenance options of your instance. type LaunchTemplateMaintenanceOptions struct { // Disables the automatic recovery behavior of your instance or sets it to default. - AutoRecovery *string `pulumi:"autoRecovery"` - RebootMigration *string `pulumi:"rebootMigration"` + AutoRecovery *string `pulumi:"autoRecovery"` } // LaunchTemplateMaintenanceOptionsInput is an input type that accepts LaunchTemplateMaintenanceOptionsArgs and LaunchTemplateMaintenanceOptionsOutput values. @@ -12259,8 +12288,7 @@ type LaunchTemplateMaintenanceOptionsInput interface { // The maintenance options of your instance. type LaunchTemplateMaintenanceOptionsArgs struct { // Disables the automatic recovery behavior of your instance or sets it to default. - AutoRecovery pulumi.StringPtrInput `pulumi:"autoRecovery"` - RebootMigration pulumi.StringPtrInput `pulumi:"rebootMigration"` + AutoRecovery pulumi.StringPtrInput `pulumi:"autoRecovery"` } func (LaunchTemplateMaintenanceOptionsArgs) ElementType() reflect.Type { @@ -12346,10 +12374,6 @@ func (o LaunchTemplateMaintenanceOptionsOutput) AutoRecovery() pulumi.StringPtrO return o.ApplyT(func(v LaunchTemplateMaintenanceOptions) *string { return v.AutoRecovery }).(pulumi.StringPtrOutput) } -func (o LaunchTemplateMaintenanceOptionsOutput) RebootMigration() pulumi.StringPtrOutput { - return o.ApplyT(func(v LaunchTemplateMaintenanceOptions) *string { return v.RebootMigration }).(pulumi.StringPtrOutput) -} - type LaunchTemplateMaintenanceOptionsPtrOutput struct{ *pulumi.OutputState } func (LaunchTemplateMaintenanceOptionsPtrOutput) ElementType() reflect.Type { @@ -12384,15 +12408,6 @@ func (o LaunchTemplateMaintenanceOptionsPtrOutput) AutoRecovery() pulumi.StringP }).(pulumi.StringPtrOutput) } -func (o LaunchTemplateMaintenanceOptionsPtrOutput) RebootMigration() pulumi.StringPtrOutput { - return o.ApplyT(func(v *LaunchTemplateMaintenanceOptions) *string { - if v == nil { - return nil - } - return v.RebootMigration - }).(pulumi.StringPtrOutput) -} - // The minimum and maximum amount of memory per vCPU, in GiB. type LaunchTemplateMemoryGiBPerVCpu struct { // The maximum amount of memory per vCPU, in GiB. To specify no maximum limit, omit this parameter. @@ -14368,7 +14383,7 @@ type LaunchTemplateSpotOptions struct { // If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter. MaxPrice *string `pulumi:"maxPrice"` // The Spot Instance request type. - // If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is below its desired capacity. + // If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the ASlong service handles requesting new Spot Instances whenever the group is below its desired capacity. SpotInstanceType *string `pulumi:"spotInstanceType"` // The end date of the request, in UTC format (*YYYY-MM-DD*T*HH:MM:SS*Z). Supported only for persistent requests. // + For a persistent request, the request remains active until the ``ValidUntil`` date and time is reached. Otherwise, the request remains active until you cancel it. @@ -14401,7 +14416,7 @@ type LaunchTemplateSpotOptionsArgs struct { // If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter. MaxPrice pulumi.StringPtrInput `pulumi:"maxPrice"` // The Spot Instance request type. - // If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is below its desired capacity. + // If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the ASlong service handles requesting new Spot Instances whenever the group is below its desired capacity. SpotInstanceType pulumi.StringPtrInput `pulumi:"spotInstanceType"` // The end date of the request, in UTC format (*YYYY-MM-DD*T*HH:MM:SS*Z). Supported only for persistent requests. // + For a persistent request, the request remains active until the ``ValidUntil`` date and time is reached. Otherwise, the request remains active until you cancel it. @@ -14510,7 +14525,7 @@ func (o LaunchTemplateSpotOptionsOutput) MaxPrice() pulumi.StringPtrOutput { // The Spot Instance request type. // -// If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is below its desired capacity. +// If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the ASlong service handles requesting new Spot Instances whenever the group is below its desired capacity. func (o LaunchTemplateSpotOptionsOutput) SpotInstanceType() pulumi.StringPtrOutput { return o.ApplyT(func(v LaunchTemplateSpotOptions) *string { return v.SpotInstanceType }).(pulumi.StringPtrOutput) } @@ -14584,7 +14599,7 @@ func (o LaunchTemplateSpotOptionsPtrOutput) MaxPrice() pulumi.StringPtrOutput { // The Spot Instance request type. // -// If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is below its desired capacity. +// If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the ASlong service handles requesting new Spot Instances whenever the group is below its desired capacity. func (o LaunchTemplateSpotOptionsPtrOutput) SpotInstanceType() pulumi.StringPtrOutput { return o.ApplyT(func(v *LaunchTemplateSpotOptions) *string { if v == nil { @@ -19050,9 +19065,9 @@ type PrefixListTag struct { // The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. // // Available options: -// + EnableResourceNameDnsAAAARecord (true | false) -// + EnableResourceNameDnsARecord (true | false) -// + HostnameType (ip-name | resource-name) +// + EnableResourceNameDnsAAAARecord (true | false) +// + EnableResourceNameDnsARecord (true | false) +// + HostnameType (ip-name | resource-name) type PrivateDnsNameOptionsOnLaunchProperties struct { EnableResourceNameDnsARecord *bool `pulumi:"enableResourceNameDnsARecord"` EnableResourceNameDnsAaaaRecord *bool `pulumi:"enableResourceNameDnsAaaaRecord"` @@ -19073,9 +19088,9 @@ type PrivateDnsNameOptionsOnLaunchPropertiesInput interface { // The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. // // Available options: -// + EnableResourceNameDnsAAAARecord (true | false) -// + EnableResourceNameDnsARecord (true | false) -// + HostnameType (ip-name | resource-name) +// + EnableResourceNameDnsAAAARecord (true | false) +// + EnableResourceNameDnsARecord (true | false) +// + HostnameType (ip-name | resource-name) type PrivateDnsNameOptionsOnLaunchPropertiesArgs struct { EnableResourceNameDnsARecord pulumi.BoolPtrInput `pulumi:"enableResourceNameDnsARecord"` EnableResourceNameDnsAaaaRecord pulumi.BoolPtrInput `pulumi:"enableResourceNameDnsAaaaRecord"` @@ -19138,9 +19153,9 @@ func (i *privateDnsNameOptionsOnLaunchPropertiesPtrType) ToPrivateDnsNameOptions // The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. // // Available options: -// + EnableResourceNameDnsAAAARecord (true | false) -// + EnableResourceNameDnsARecord (true | false) -// + HostnameType (ip-name | resource-name) +// + EnableResourceNameDnsAAAARecord (true | false) +// + EnableResourceNameDnsARecord (true | false) +// + HostnameType (ip-name | resource-name) type PrivateDnsNameOptionsOnLaunchPropertiesOutput struct{ *pulumi.OutputState } func (PrivateDnsNameOptionsOnLaunchPropertiesOutput) ElementType() reflect.Type { diff --git a/sdk/go/aws/ec2/subnet.go b/sdk/go/aws/ec2/subnet.go index d2f07607c8..db18ea1888 100644 --- a/sdk/go/aws/ec2/subnet.go +++ b/sdk/go/aws/ec2/subnet.go @@ -33,6 +33,8 @@ type Subnet struct { CidrBlock pulumi.StringPtrOutput `pulumi:"cidrBlock"` // Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. For more information, see [DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) in the *User Guide*. EnableDns64 pulumi.BoolPtrOutput `pulumi:"enableDns64"` + // Indicates the device position for local network interfaces in this subnet. For example, ``1`` indicates local network interfaces in this subnet are the secondary network interface (eth1). + EnableLniAtDeviceIndex pulumi.IntPtrOutput `pulumi:"enableLniAtDeviceIndex"` // An IPv4 IPAM pool ID for the subnet. Ipv4IpamPoolId pulumi.StringPtrOutput `pulumi:"ipv4IpamPoolId"` // An IPv4 netmask length for the subnet. @@ -49,16 +51,16 @@ type Subnet struct { // An IPv6 netmask length for the subnet. Ipv6NetmaskLength pulumi.IntPtrOutput `pulumi:"ipv6NetmaskLength"` // Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``. - // AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). + // AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). MapPublicIpOnLaunch pulumi.BoolPtrOutput `pulumi:"mapPublicIpOnLaunch"` NetworkAclAssociationId pulumi.StringOutput `pulumi:"networkAclAssociationId"` // The Amazon Resource Name (ARN) of the Outpost. OutpostArn pulumi.StringPtrOutput `pulumi:"outpostArn"` // The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. // Available options: - // + EnableResourceNameDnsAAAARecord (true | false) - // + EnableResourceNameDnsARecord (true | false) - // + HostnameType (ip-name | resource-name) + // + EnableResourceNameDnsAAAARecord (true | false) + // + EnableResourceNameDnsARecord (true | false) + // + HostnameType (ip-name | resource-name) PrivateDnsNameOptionsOnLaunch PrivateDnsNameOptionsOnLaunchPropertiesPtrOutput `pulumi:"privateDnsNameOptionsOnLaunch"` SubnetId pulumi.StringOutput `pulumi:"subnetId"` // Any tags assigned to the subnet. @@ -137,6 +139,8 @@ type subnetArgs struct { CidrBlock *string `pulumi:"cidrBlock"` // Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. For more information, see [DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) in the *User Guide*. EnableDns64 *bool `pulumi:"enableDns64"` + // Indicates the device position for local network interfaces in this subnet. For example, ``1`` indicates local network interfaces in this subnet are the secondary network interface (eth1). + EnableLniAtDeviceIndex *int `pulumi:"enableLniAtDeviceIndex"` // An IPv4 IPAM pool ID for the subnet. Ipv4IpamPoolId *string `pulumi:"ipv4IpamPoolId"` // An IPv4 netmask length for the subnet. @@ -153,15 +157,15 @@ type subnetArgs struct { // An IPv6 netmask length for the subnet. Ipv6NetmaskLength *int `pulumi:"ipv6NetmaskLength"` // Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``. - // AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). + // AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). MapPublicIpOnLaunch *bool `pulumi:"mapPublicIpOnLaunch"` // The Amazon Resource Name (ARN) of the Outpost. OutpostArn *string `pulumi:"outpostArn"` // The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. // Available options: - // + EnableResourceNameDnsAAAARecord (true | false) - // + EnableResourceNameDnsARecord (true | false) - // + HostnameType (ip-name | resource-name) + // + EnableResourceNameDnsAAAARecord (true | false) + // + EnableResourceNameDnsARecord (true | false) + // + HostnameType (ip-name | resource-name) PrivateDnsNameOptionsOnLaunch *PrivateDnsNameOptionsOnLaunchProperties `pulumi:"privateDnsNameOptionsOnLaunch"` // Any tags assigned to the subnet. Tags []aws.Tag `pulumi:"tags"` @@ -185,6 +189,8 @@ type SubnetArgs struct { CidrBlock pulumi.StringPtrInput // Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. For more information, see [DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) in the *User Guide*. EnableDns64 pulumi.BoolPtrInput + // Indicates the device position for local network interfaces in this subnet. For example, ``1`` indicates local network interfaces in this subnet are the secondary network interface (eth1). + EnableLniAtDeviceIndex pulumi.IntPtrInput // An IPv4 IPAM pool ID for the subnet. Ipv4IpamPoolId pulumi.StringPtrInput // An IPv4 netmask length for the subnet. @@ -201,15 +207,15 @@ type SubnetArgs struct { // An IPv6 netmask length for the subnet. Ipv6NetmaskLength pulumi.IntPtrInput // Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``. - // AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). + // AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). MapPublicIpOnLaunch pulumi.BoolPtrInput // The Amazon Resource Name (ARN) of the Outpost. OutpostArn pulumi.StringPtrInput // The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. // Available options: - // + EnableResourceNameDnsAAAARecord (true | false) - // + EnableResourceNameDnsARecord (true | false) - // + HostnameType (ip-name | resource-name) + // + EnableResourceNameDnsAAAARecord (true | false) + // + EnableResourceNameDnsARecord (true | false) + // + HostnameType (ip-name | resource-name) PrivateDnsNameOptionsOnLaunch PrivateDnsNameOptionsOnLaunchPropertiesPtrInput // Any tags assigned to the subnet. Tags aws.TagArrayInput @@ -286,6 +292,11 @@ func (o SubnetOutput) EnableDns64() pulumi.BoolPtrOutput { return o.ApplyT(func(v *Subnet) pulumi.BoolPtrOutput { return v.EnableDns64 }).(pulumi.BoolPtrOutput) } +// Indicates the device position for local network interfaces in this subnet. For example, “1“ indicates local network interfaces in this subnet are the secondary network interface (eth1). +func (o SubnetOutput) EnableLniAtDeviceIndex() pulumi.IntPtrOutput { + return o.ApplyT(func(v *Subnet) pulumi.IntPtrOutput { return v.EnableLniAtDeviceIndex }).(pulumi.IntPtrOutput) +} + // An IPv4 IPAM pool ID for the subnet. func (o SubnetOutput) Ipv4IpamPoolId() pulumi.StringPtrOutput { return o.ApplyT(func(v *Subnet) pulumi.StringPtrOutput { return v.Ipv4IpamPoolId }).(pulumi.StringPtrOutput) @@ -342,9 +353,9 @@ func (o SubnetOutput) OutpostArn() pulumi.StringPtrOutput { // The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. // // Available options: -// + EnableResourceNameDnsAAAARecord (true | false) -// + EnableResourceNameDnsARecord (true | false) -// + HostnameType (ip-name | resource-name) +// + EnableResourceNameDnsAAAARecord (true | false) +// + EnableResourceNameDnsARecord (true | false) +// + HostnameType (ip-name | resource-name) func (o SubnetOutput) PrivateDnsNameOptionsOnLaunch() PrivateDnsNameOptionsOnLaunchPropertiesPtrOutput { return o.ApplyT(func(v *Subnet) PrivateDnsNameOptionsOnLaunchPropertiesPtrOutput { return v.PrivateDnsNameOptionsOnLaunch diff --git a/sdk/go/aws/ec2/transitGatewayRouteTableAssociation.go b/sdk/go/aws/ec2/transitGatewayRouteTableAssociation.go index 97d3685ccf..eba642de5d 100644 --- a/sdk/go/aws/ec2/transitGatewayRouteTableAssociation.go +++ b/sdk/go/aws/ec2/transitGatewayRouteTableAssociation.go @@ -16,8 +16,9 @@ import ( type TransitGatewayRouteTableAssociation struct { pulumi.CustomResourceState - AwsId pulumi.StringOutput `pulumi:"awsId"` + // The ID of transit gateway attachment. TransitGatewayAttachmentId pulumi.StringOutput `pulumi:"transitGatewayAttachmentId"` + // The ID of transit gateway route table. TransitGatewayRouteTableId pulumi.StringOutput `pulumi:"transitGatewayRouteTableId"` } @@ -72,13 +73,17 @@ func (TransitGatewayRouteTableAssociationState) ElementType() reflect.Type { } type transitGatewayRouteTableAssociationArgs struct { + // The ID of transit gateway attachment. TransitGatewayAttachmentId string `pulumi:"transitGatewayAttachmentId"` + // The ID of transit gateway route table. TransitGatewayRouteTableId string `pulumi:"transitGatewayRouteTableId"` } // The set of arguments for constructing a TransitGatewayRouteTableAssociation resource. type TransitGatewayRouteTableAssociationArgs struct { + // The ID of transit gateway attachment. TransitGatewayAttachmentId pulumi.StringInput + // The ID of transit gateway route table. TransitGatewayRouteTableId pulumi.StringInput } @@ -119,14 +124,12 @@ func (o TransitGatewayRouteTableAssociationOutput) ToTransitGatewayRouteTableAss return o } -func (o TransitGatewayRouteTableAssociationOutput) AwsId() pulumi.StringOutput { - return o.ApplyT(func(v *TransitGatewayRouteTableAssociation) pulumi.StringOutput { return v.AwsId }).(pulumi.StringOutput) -} - +// The ID of transit gateway attachment. func (o TransitGatewayRouteTableAssociationOutput) TransitGatewayAttachmentId() pulumi.StringOutput { return o.ApplyT(func(v *TransitGatewayRouteTableAssociation) pulumi.StringOutput { return v.TransitGatewayAttachmentId }).(pulumi.StringOutput) } +// The ID of transit gateway route table. func (o TransitGatewayRouteTableAssociationOutput) TransitGatewayRouteTableId() pulumi.StringOutput { return o.ApplyT(func(v *TransitGatewayRouteTableAssociation) pulumi.StringOutput { return v.TransitGatewayRouteTableId }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/efs/pulumiEnums.go b/sdk/go/aws/efs/pulumiEnums.go index f753d99975..f68adf51e2 100644 --- a/sdk/go/aws/efs/pulumiEnums.go +++ b/sdk/go/aws/efs/pulumiEnums.go @@ -10,6 +10,174 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +// Set the backup policy status for the file system. +// - *ENABLED* - Turns automatic backups on for the file system. +// - *DISABLED* - Turns automatic backups off for the file system. +type FileSystemBackupPolicyStatus string + +const ( + FileSystemBackupPolicyStatusDisabled = FileSystemBackupPolicyStatus("DISABLED") + FileSystemBackupPolicyStatusEnabled = FileSystemBackupPolicyStatus("ENABLED") +) + +func (FileSystemBackupPolicyStatus) ElementType() reflect.Type { + return reflect.TypeOf((*FileSystemBackupPolicyStatus)(nil)).Elem() +} + +func (e FileSystemBackupPolicyStatus) ToFileSystemBackupPolicyStatusOutput() FileSystemBackupPolicyStatusOutput { + return pulumi.ToOutput(e).(FileSystemBackupPolicyStatusOutput) +} + +func (e FileSystemBackupPolicyStatus) ToFileSystemBackupPolicyStatusOutputWithContext(ctx context.Context) FileSystemBackupPolicyStatusOutput { + return pulumi.ToOutputWithContext(ctx, e).(FileSystemBackupPolicyStatusOutput) +} + +func (e FileSystemBackupPolicyStatus) ToFileSystemBackupPolicyStatusPtrOutput() FileSystemBackupPolicyStatusPtrOutput { + return e.ToFileSystemBackupPolicyStatusPtrOutputWithContext(context.Background()) +} + +func (e FileSystemBackupPolicyStatus) ToFileSystemBackupPolicyStatusPtrOutputWithContext(ctx context.Context) FileSystemBackupPolicyStatusPtrOutput { + return FileSystemBackupPolicyStatus(e).ToFileSystemBackupPolicyStatusOutputWithContext(ctx).ToFileSystemBackupPolicyStatusPtrOutputWithContext(ctx) +} + +func (e FileSystemBackupPolicyStatus) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e FileSystemBackupPolicyStatus) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e FileSystemBackupPolicyStatus) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e FileSystemBackupPolicyStatus) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type FileSystemBackupPolicyStatusOutput struct{ *pulumi.OutputState } + +func (FileSystemBackupPolicyStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FileSystemBackupPolicyStatus)(nil)).Elem() +} + +func (o FileSystemBackupPolicyStatusOutput) ToFileSystemBackupPolicyStatusOutput() FileSystemBackupPolicyStatusOutput { + return o +} + +func (o FileSystemBackupPolicyStatusOutput) ToFileSystemBackupPolicyStatusOutputWithContext(ctx context.Context) FileSystemBackupPolicyStatusOutput { + return o +} + +func (o FileSystemBackupPolicyStatusOutput) ToFileSystemBackupPolicyStatusPtrOutput() FileSystemBackupPolicyStatusPtrOutput { + return o.ToFileSystemBackupPolicyStatusPtrOutputWithContext(context.Background()) +} + +func (o FileSystemBackupPolicyStatusOutput) ToFileSystemBackupPolicyStatusPtrOutputWithContext(ctx context.Context) FileSystemBackupPolicyStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FileSystemBackupPolicyStatus) *FileSystemBackupPolicyStatus { + return &v + }).(FileSystemBackupPolicyStatusPtrOutput) +} + +func (o FileSystemBackupPolicyStatusOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o FileSystemBackupPolicyStatusOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e FileSystemBackupPolicyStatus) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o FileSystemBackupPolicyStatusOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o FileSystemBackupPolicyStatusOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e FileSystemBackupPolicyStatus) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type FileSystemBackupPolicyStatusPtrOutput struct{ *pulumi.OutputState } + +func (FileSystemBackupPolicyStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FileSystemBackupPolicyStatus)(nil)).Elem() +} + +func (o FileSystemBackupPolicyStatusPtrOutput) ToFileSystemBackupPolicyStatusPtrOutput() FileSystemBackupPolicyStatusPtrOutput { + return o +} + +func (o FileSystemBackupPolicyStatusPtrOutput) ToFileSystemBackupPolicyStatusPtrOutputWithContext(ctx context.Context) FileSystemBackupPolicyStatusPtrOutput { + return o +} + +func (o FileSystemBackupPolicyStatusPtrOutput) Elem() FileSystemBackupPolicyStatusOutput { + return o.ApplyT(func(v *FileSystemBackupPolicyStatus) FileSystemBackupPolicyStatus { + if v != nil { + return *v + } + var ret FileSystemBackupPolicyStatus + return ret + }).(FileSystemBackupPolicyStatusOutput) +} + +func (o FileSystemBackupPolicyStatusPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o FileSystemBackupPolicyStatusPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *FileSystemBackupPolicyStatus) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// FileSystemBackupPolicyStatusInput is an input type that accepts values of the FileSystemBackupPolicyStatus enum +// A concrete instance of `FileSystemBackupPolicyStatusInput` can be one of the following: +// +// FileSystemBackupPolicyStatusDisabled +// FileSystemBackupPolicyStatusEnabled +type FileSystemBackupPolicyStatusInput interface { + pulumi.Input + + ToFileSystemBackupPolicyStatusOutput() FileSystemBackupPolicyStatusOutput + ToFileSystemBackupPolicyStatusOutputWithContext(context.Context) FileSystemBackupPolicyStatusOutput +} + +var fileSystemBackupPolicyStatusPtrType = reflect.TypeOf((**FileSystemBackupPolicyStatus)(nil)).Elem() + +type FileSystemBackupPolicyStatusPtrInput interface { + pulumi.Input + + ToFileSystemBackupPolicyStatusPtrOutput() FileSystemBackupPolicyStatusPtrOutput + ToFileSystemBackupPolicyStatusPtrOutputWithContext(context.Context) FileSystemBackupPolicyStatusPtrOutput +} + +type fileSystemBackupPolicyStatusPtr string + +func FileSystemBackupPolicyStatusPtr(v string) FileSystemBackupPolicyStatusPtrInput { + return (*fileSystemBackupPolicyStatusPtr)(&v) +} + +func (*fileSystemBackupPolicyStatusPtr) ElementType() reflect.Type { + return fileSystemBackupPolicyStatusPtrType +} + +func (in *fileSystemBackupPolicyStatusPtr) ToFileSystemBackupPolicyStatusPtrOutput() FileSystemBackupPolicyStatusPtrOutput { + return pulumi.ToOutput(in).(FileSystemBackupPolicyStatusPtrOutput) +} + +func (in *fileSystemBackupPolicyStatusPtr) ToFileSystemBackupPolicyStatusPtrOutputWithContext(ctx context.Context) FileSystemBackupPolicyStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(FileSystemBackupPolicyStatusPtrOutput) +} + // The status of the file system's replication overwrite protection. // // - “ENABLED“ – The file system cannot be used as the destination file system in a replication configuration. The file system is writeable. Replication overwrite protection is “ENABLED“ by default. @@ -185,8 +353,12 @@ func (in *fileSystemProtectionReplicationOverwriteProtectionPtr) ToFileSystemPro } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*FileSystemBackupPolicyStatusInput)(nil)).Elem(), FileSystemBackupPolicyStatus("DISABLED")) + pulumi.RegisterInputType(reflect.TypeOf((*FileSystemBackupPolicyStatusPtrInput)(nil)).Elem(), FileSystemBackupPolicyStatus("DISABLED")) pulumi.RegisterInputType(reflect.TypeOf((*FileSystemProtectionReplicationOverwriteProtectionInput)(nil)).Elem(), FileSystemProtectionReplicationOverwriteProtection("DISABLED")) pulumi.RegisterInputType(reflect.TypeOf((*FileSystemProtectionReplicationOverwriteProtectionPtrInput)(nil)).Elem(), FileSystemProtectionReplicationOverwriteProtection("DISABLED")) + pulumi.RegisterOutputType(FileSystemBackupPolicyStatusOutput{}) + pulumi.RegisterOutputType(FileSystemBackupPolicyStatusPtrOutput{}) pulumi.RegisterOutputType(FileSystemProtectionReplicationOverwriteProtectionOutput{}) pulumi.RegisterOutputType(FileSystemProtectionReplicationOverwriteProtectionPtrOutput{}) } diff --git a/sdk/go/aws/efs/pulumiTypes.go b/sdk/go/aws/efs/pulumiTypes.go index 68dc795936..0351e0eeab 100644 --- a/sdk/go/aws/efs/pulumiTypes.go +++ b/sdk/go/aws/efs/pulumiTypes.go @@ -556,7 +556,7 @@ type FileSystemBackupPolicy struct { // Set the backup policy status for the file system. // + *ENABLED* - Turns automatic backups on for the file system. // + *DISABLED* - Turns automatic backups off for the file system. - Status string `pulumi:"status"` + Status FileSystemBackupPolicyStatus `pulumi:"status"` } // FileSystemBackupPolicyInput is an input type that accepts FileSystemBackupPolicyArgs and FileSystemBackupPolicyOutput values. @@ -575,7 +575,7 @@ type FileSystemBackupPolicyArgs struct { // Set the backup policy status for the file system. // + *ENABLED* - Turns automatic backups on for the file system. // + *DISABLED* - Turns automatic backups off for the file system. - Status pulumi.StringInput `pulumi:"status"` + Status FileSystemBackupPolicyStatusInput `pulumi:"status"` } func (FileSystemBackupPolicyArgs) ElementType() reflect.Type { @@ -659,8 +659,8 @@ func (o FileSystemBackupPolicyOutput) ToFileSystemBackupPolicyPtrOutputWithConte // Set the backup policy status for the file system. // - *ENABLED* - Turns automatic backups on for the file system. // - *DISABLED* - Turns automatic backups off for the file system. -func (o FileSystemBackupPolicyOutput) Status() pulumi.StringOutput { - return o.ApplyT(func(v FileSystemBackupPolicy) string { return v.Status }).(pulumi.StringOutput) +func (o FileSystemBackupPolicyOutput) Status() FileSystemBackupPolicyStatusOutput { + return o.ApplyT(func(v FileSystemBackupPolicy) FileSystemBackupPolicyStatus { return v.Status }).(FileSystemBackupPolicyStatusOutput) } type FileSystemBackupPolicyPtrOutput struct{ *pulumi.OutputState } @@ -690,13 +690,13 @@ func (o FileSystemBackupPolicyPtrOutput) Elem() FileSystemBackupPolicyOutput { // Set the backup policy status for the file system. // - *ENABLED* - Turns automatic backups on for the file system. // - *DISABLED* - Turns automatic backups off for the file system. -func (o FileSystemBackupPolicyPtrOutput) Status() pulumi.StringPtrOutput { - return o.ApplyT(func(v *FileSystemBackupPolicy) *string { +func (o FileSystemBackupPolicyPtrOutput) Status() FileSystemBackupPolicyStatusPtrOutput { + return o.ApplyT(func(v *FileSystemBackupPolicy) *FileSystemBackupPolicyStatus { if v == nil { return nil } return &v.Status - }).(pulumi.StringPtrOutput) + }).(FileSystemBackupPolicyStatusPtrOutput) } // A tag is a key-value pair attached to a file system. Allowed characters in the “Key“ and “Value“ properties are letters, white space, and numbers that can be represented in UTF-8, and the following characters:“+ - = . _ : /“ diff --git a/sdk/go/aws/elasticache/pulumiEnums.go b/sdk/go/aws/elasticache/pulumiEnums.go index ce1a94751e..4cb3ea571e 100644 --- a/sdk/go/aws/elasticache/pulumiEnums.go +++ b/sdk/go/aws/elasticache/pulumiEnums.go @@ -176,7 +176,7 @@ func (in *globalReplicationGroupMemberRolePtr) ToGlobalReplicationGroupMemberRol return pulumi.ToOutputWithContext(ctx, in).(GlobalReplicationGroupMemberRolePtrOutput) } -// The unix of cached data capacity of the Serverless Cache. +// The unit of cached data capacity of the Serverless Cache. type ServerlessCacheDataStorageUnit string const ( diff --git a/sdk/go/aws/elasticache/pulumiTypes.go b/sdk/go/aws/elasticache/pulumiTypes.go index 2dc4c90b7f..c3e7e61527 100644 --- a/sdk/go/aws/elasticache/pulumiTypes.go +++ b/sdk/go/aws/elasticache/pulumiTypes.go @@ -661,8 +661,10 @@ func (o ServerlessCacheCacheUsageLimitsPtrOutput) EcpuPerSecond() ServerlessCach // The cached data capacity of the Serverless Cache. type ServerlessCacheDataStorage struct { // The maximum cached data capacity of the Serverless Cache. - Maximum int `pulumi:"maximum"` - // The unix of cached data capacity of the Serverless Cache. + Maximum *int `pulumi:"maximum"` + // The minimum cached data capacity of the Serverless Cache. + Minimum *int `pulumi:"minimum"` + // The unit of cached data capacity of the Serverless Cache. Unit ServerlessCacheDataStorageUnit `pulumi:"unit"` } @@ -680,8 +682,10 @@ type ServerlessCacheDataStorageInput interface { // The cached data capacity of the Serverless Cache. type ServerlessCacheDataStorageArgs struct { // The maximum cached data capacity of the Serverless Cache. - Maximum pulumi.IntInput `pulumi:"maximum"` - // The unix of cached data capacity of the Serverless Cache. + Maximum pulumi.IntPtrInput `pulumi:"maximum"` + // The minimum cached data capacity of the Serverless Cache. + Minimum pulumi.IntPtrInput `pulumi:"minimum"` + // The unit of cached data capacity of the Serverless Cache. Unit ServerlessCacheDataStorageUnitInput `pulumi:"unit"` } @@ -764,11 +768,16 @@ func (o ServerlessCacheDataStorageOutput) ToServerlessCacheDataStoragePtrOutputW } // The maximum cached data capacity of the Serverless Cache. -func (o ServerlessCacheDataStorageOutput) Maximum() pulumi.IntOutput { - return o.ApplyT(func(v ServerlessCacheDataStorage) int { return v.Maximum }).(pulumi.IntOutput) +func (o ServerlessCacheDataStorageOutput) Maximum() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServerlessCacheDataStorage) *int { return v.Maximum }).(pulumi.IntPtrOutput) } -// The unix of cached data capacity of the Serverless Cache. +// The minimum cached data capacity of the Serverless Cache. +func (o ServerlessCacheDataStorageOutput) Minimum() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServerlessCacheDataStorage) *int { return v.Minimum }).(pulumi.IntPtrOutput) +} + +// The unit of cached data capacity of the Serverless Cache. func (o ServerlessCacheDataStorageOutput) Unit() ServerlessCacheDataStorageUnitOutput { return o.ApplyT(func(v ServerlessCacheDataStorage) ServerlessCacheDataStorageUnit { return v.Unit }).(ServerlessCacheDataStorageUnitOutput) } @@ -803,11 +812,21 @@ func (o ServerlessCacheDataStoragePtrOutput) Maximum() pulumi.IntPtrOutput { if v == nil { return nil } - return &v.Maximum + return v.Maximum + }).(pulumi.IntPtrOutput) +} + +// The minimum cached data capacity of the Serverless Cache. +func (o ServerlessCacheDataStoragePtrOutput) Minimum() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ServerlessCacheDataStorage) *int { + if v == nil { + return nil + } + return v.Minimum }).(pulumi.IntPtrOutput) } -// The unix of cached data capacity of the Serverless Cache. +// The unit of cached data capacity of the Serverless Cache. func (o ServerlessCacheDataStoragePtrOutput) Unit() ServerlessCacheDataStorageUnitPtrOutput { return o.ApplyT(func(v *ServerlessCacheDataStorage) *ServerlessCacheDataStorageUnit { if v == nil { @@ -820,7 +839,9 @@ func (o ServerlessCacheDataStoragePtrOutput) Unit() ServerlessCacheDataStorageUn // The ECPU per second of the Serverless Cache. type ServerlessCacheEcpuPerSecond struct { // The maximum ECPU per second of the Serverless Cache. - Maximum int `pulumi:"maximum"` + Maximum *int `pulumi:"maximum"` + // The minimum ECPU per second of the Serverless Cache. + Minimum *int `pulumi:"minimum"` } // ServerlessCacheEcpuPerSecondInput is an input type that accepts ServerlessCacheEcpuPerSecondArgs and ServerlessCacheEcpuPerSecondOutput values. @@ -837,7 +858,9 @@ type ServerlessCacheEcpuPerSecondInput interface { // The ECPU per second of the Serverless Cache. type ServerlessCacheEcpuPerSecondArgs struct { // The maximum ECPU per second of the Serverless Cache. - Maximum pulumi.IntInput `pulumi:"maximum"` + Maximum pulumi.IntPtrInput `pulumi:"maximum"` + // The minimum ECPU per second of the Serverless Cache. + Minimum pulumi.IntPtrInput `pulumi:"minimum"` } func (ServerlessCacheEcpuPerSecondArgs) ElementType() reflect.Type { @@ -919,8 +942,13 @@ func (o ServerlessCacheEcpuPerSecondOutput) ToServerlessCacheEcpuPerSecondPtrOut } // The maximum ECPU per second of the Serverless Cache. -func (o ServerlessCacheEcpuPerSecondOutput) Maximum() pulumi.IntOutput { - return o.ApplyT(func(v ServerlessCacheEcpuPerSecond) int { return v.Maximum }).(pulumi.IntOutput) +func (o ServerlessCacheEcpuPerSecondOutput) Maximum() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServerlessCacheEcpuPerSecond) *int { return v.Maximum }).(pulumi.IntPtrOutput) +} + +// The minimum ECPU per second of the Serverless Cache. +func (o ServerlessCacheEcpuPerSecondOutput) Minimum() pulumi.IntPtrOutput { + return o.ApplyT(func(v ServerlessCacheEcpuPerSecond) *int { return v.Minimum }).(pulumi.IntPtrOutput) } type ServerlessCacheEcpuPerSecondPtrOutput struct{ *pulumi.OutputState } @@ -953,7 +981,17 @@ func (o ServerlessCacheEcpuPerSecondPtrOutput) Maximum() pulumi.IntPtrOutput { if v == nil { return nil } - return &v.Maximum + return v.Maximum + }).(pulumi.IntPtrOutput) +} + +// The minimum ECPU per second of the Serverless Cache. +func (o ServerlessCacheEcpuPerSecondPtrOutput) Minimum() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ServerlessCacheEcpuPerSecond) *int { + if v == nil { + return nil + } + return v.Minimum }).(pulumi.IntPtrOutput) } diff --git a/sdk/go/aws/entityresolution/idMappingWorkflow.go b/sdk/go/aws/entityresolution/idMappingWorkflow.go index 5fc3a4cfb7..f49a88df47 100644 --- a/sdk/go/aws/entityresolution/idMappingWorkflow.go +++ b/sdk/go/aws/entityresolution/idMappingWorkflow.go @@ -44,9 +44,6 @@ func NewIdMappingWorkflow(ctx *pulumi.Context, if args.InputSourceConfig == nil { return nil, errors.New("invalid value for required argument 'InputSourceConfig'") } - if args.OutputSourceConfig == nil { - return nil, errors.New("invalid value for required argument 'OutputSourceConfig'") - } if args.RoleArn == nil { return nil, errors.New("invalid value for required argument 'RoleArn'") } diff --git a/sdk/go/aws/entityresolution/pulumiEnums.go b/sdk/go/aws/entityresolution/pulumiEnums.go index 36b733bdcf..bbb3a6cd0b 100644 --- a/sdk/go/aws/entityresolution/pulumiEnums.go +++ b/sdk/go/aws/entityresolution/pulumiEnums.go @@ -173,6 +173,171 @@ func (in *idMappingWorkflowIdMappingTechniquesIdMappingTypePtr) ToIdMappingWorkf return pulumi.ToOutputWithContext(ctx, in).(IdMappingWorkflowIdMappingTechniquesIdMappingTypePtrOutput) } +type IdMappingWorkflowInputSourceType string + +const ( + IdMappingWorkflowInputSourceTypeSource = IdMappingWorkflowInputSourceType("SOURCE") + IdMappingWorkflowInputSourceTypeTarget = IdMappingWorkflowInputSourceType("TARGET") +) + +func (IdMappingWorkflowInputSourceType) ElementType() reflect.Type { + return reflect.TypeOf((*IdMappingWorkflowInputSourceType)(nil)).Elem() +} + +func (e IdMappingWorkflowInputSourceType) ToIdMappingWorkflowInputSourceTypeOutput() IdMappingWorkflowInputSourceTypeOutput { + return pulumi.ToOutput(e).(IdMappingWorkflowInputSourceTypeOutput) +} + +func (e IdMappingWorkflowInputSourceType) ToIdMappingWorkflowInputSourceTypeOutputWithContext(ctx context.Context) IdMappingWorkflowInputSourceTypeOutput { + return pulumi.ToOutputWithContext(ctx, e).(IdMappingWorkflowInputSourceTypeOutput) +} + +func (e IdMappingWorkflowInputSourceType) ToIdMappingWorkflowInputSourceTypePtrOutput() IdMappingWorkflowInputSourceTypePtrOutput { + return e.ToIdMappingWorkflowInputSourceTypePtrOutputWithContext(context.Background()) +} + +func (e IdMappingWorkflowInputSourceType) ToIdMappingWorkflowInputSourceTypePtrOutputWithContext(ctx context.Context) IdMappingWorkflowInputSourceTypePtrOutput { + return IdMappingWorkflowInputSourceType(e).ToIdMappingWorkflowInputSourceTypeOutputWithContext(ctx).ToIdMappingWorkflowInputSourceTypePtrOutputWithContext(ctx) +} + +func (e IdMappingWorkflowInputSourceType) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e IdMappingWorkflowInputSourceType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e IdMappingWorkflowInputSourceType) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e IdMappingWorkflowInputSourceType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type IdMappingWorkflowInputSourceTypeOutput struct{ *pulumi.OutputState } + +func (IdMappingWorkflowInputSourceTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*IdMappingWorkflowInputSourceType)(nil)).Elem() +} + +func (o IdMappingWorkflowInputSourceTypeOutput) ToIdMappingWorkflowInputSourceTypeOutput() IdMappingWorkflowInputSourceTypeOutput { + return o +} + +func (o IdMappingWorkflowInputSourceTypeOutput) ToIdMappingWorkflowInputSourceTypeOutputWithContext(ctx context.Context) IdMappingWorkflowInputSourceTypeOutput { + return o +} + +func (o IdMappingWorkflowInputSourceTypeOutput) ToIdMappingWorkflowInputSourceTypePtrOutput() IdMappingWorkflowInputSourceTypePtrOutput { + return o.ToIdMappingWorkflowInputSourceTypePtrOutputWithContext(context.Background()) +} + +func (o IdMappingWorkflowInputSourceTypeOutput) ToIdMappingWorkflowInputSourceTypePtrOutputWithContext(ctx context.Context) IdMappingWorkflowInputSourceTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v IdMappingWorkflowInputSourceType) *IdMappingWorkflowInputSourceType { + return &v + }).(IdMappingWorkflowInputSourceTypePtrOutput) +} + +func (o IdMappingWorkflowInputSourceTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o IdMappingWorkflowInputSourceTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e IdMappingWorkflowInputSourceType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o IdMappingWorkflowInputSourceTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o IdMappingWorkflowInputSourceTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e IdMappingWorkflowInputSourceType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type IdMappingWorkflowInputSourceTypePtrOutput struct{ *pulumi.OutputState } + +func (IdMappingWorkflowInputSourceTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**IdMappingWorkflowInputSourceType)(nil)).Elem() +} + +func (o IdMappingWorkflowInputSourceTypePtrOutput) ToIdMappingWorkflowInputSourceTypePtrOutput() IdMappingWorkflowInputSourceTypePtrOutput { + return o +} + +func (o IdMappingWorkflowInputSourceTypePtrOutput) ToIdMappingWorkflowInputSourceTypePtrOutputWithContext(ctx context.Context) IdMappingWorkflowInputSourceTypePtrOutput { + return o +} + +func (o IdMappingWorkflowInputSourceTypePtrOutput) Elem() IdMappingWorkflowInputSourceTypeOutput { + return o.ApplyT(func(v *IdMappingWorkflowInputSourceType) IdMappingWorkflowInputSourceType { + if v != nil { + return *v + } + var ret IdMappingWorkflowInputSourceType + return ret + }).(IdMappingWorkflowInputSourceTypeOutput) +} + +func (o IdMappingWorkflowInputSourceTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o IdMappingWorkflowInputSourceTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *IdMappingWorkflowInputSourceType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// IdMappingWorkflowInputSourceTypeInput is an input type that accepts values of the IdMappingWorkflowInputSourceType enum +// A concrete instance of `IdMappingWorkflowInputSourceTypeInput` can be one of the following: +// +// IdMappingWorkflowInputSourceTypeSource +// IdMappingWorkflowInputSourceTypeTarget +type IdMappingWorkflowInputSourceTypeInput interface { + pulumi.Input + + ToIdMappingWorkflowInputSourceTypeOutput() IdMappingWorkflowInputSourceTypeOutput + ToIdMappingWorkflowInputSourceTypeOutputWithContext(context.Context) IdMappingWorkflowInputSourceTypeOutput +} + +var idMappingWorkflowInputSourceTypePtrType = reflect.TypeOf((**IdMappingWorkflowInputSourceType)(nil)).Elem() + +type IdMappingWorkflowInputSourceTypePtrInput interface { + pulumi.Input + + ToIdMappingWorkflowInputSourceTypePtrOutput() IdMappingWorkflowInputSourceTypePtrOutput + ToIdMappingWorkflowInputSourceTypePtrOutputWithContext(context.Context) IdMappingWorkflowInputSourceTypePtrOutput +} + +type idMappingWorkflowInputSourceTypePtr string + +func IdMappingWorkflowInputSourceTypePtr(v string) IdMappingWorkflowInputSourceTypePtrInput { + return (*idMappingWorkflowInputSourceTypePtr)(&v) +} + +func (*idMappingWorkflowInputSourceTypePtr) ElementType() reflect.Type { + return idMappingWorkflowInputSourceTypePtrType +} + +func (in *idMappingWorkflowInputSourceTypePtr) ToIdMappingWorkflowInputSourceTypePtrOutput() IdMappingWorkflowInputSourceTypePtrOutput { + return pulumi.ToOutput(in).(IdMappingWorkflowInputSourceTypePtrOutput) +} + +func (in *idMappingWorkflowInputSourceTypePtr) ToIdMappingWorkflowInputSourceTypePtrOutputWithContext(ctx context.Context) IdMappingWorkflowInputSourceTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(IdMappingWorkflowInputSourceTypePtrOutput) +} + type MatchingWorkflowResolutionTechniquesResolutionType string const ( @@ -709,6 +874,8 @@ func (in *schemaMappingSchemaAttributeTypePtr) ToSchemaMappingSchemaAttributeTyp func init() { pulumi.RegisterInputType(reflect.TypeOf((*IdMappingWorkflowIdMappingTechniquesIdMappingTypeInput)(nil)).Elem(), IdMappingWorkflowIdMappingTechniquesIdMappingType("PROVIDER")) pulumi.RegisterInputType(reflect.TypeOf((*IdMappingWorkflowIdMappingTechniquesIdMappingTypePtrInput)(nil)).Elem(), IdMappingWorkflowIdMappingTechniquesIdMappingType("PROVIDER")) + pulumi.RegisterInputType(reflect.TypeOf((*IdMappingWorkflowInputSourceTypeInput)(nil)).Elem(), IdMappingWorkflowInputSourceType("SOURCE")) + pulumi.RegisterInputType(reflect.TypeOf((*IdMappingWorkflowInputSourceTypePtrInput)(nil)).Elem(), IdMappingWorkflowInputSourceType("SOURCE")) pulumi.RegisterInputType(reflect.TypeOf((*MatchingWorkflowResolutionTechniquesResolutionTypeInput)(nil)).Elem(), MatchingWorkflowResolutionTechniquesResolutionType("RULE_MATCHING")) pulumi.RegisterInputType(reflect.TypeOf((*MatchingWorkflowResolutionTechniquesResolutionTypePtrInput)(nil)).Elem(), MatchingWorkflowResolutionTechniquesResolutionType("RULE_MATCHING")) pulumi.RegisterInputType(reflect.TypeOf((*MatchingWorkflowRuleBasedPropertiesAttributeMatchingModelInput)(nil)).Elem(), MatchingWorkflowRuleBasedPropertiesAttributeMatchingModel("ONE_TO_ONE")) @@ -717,6 +884,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*SchemaMappingSchemaAttributeTypePtrInput)(nil)).Elem(), SchemaMappingSchemaAttributeType("NAME")) pulumi.RegisterOutputType(IdMappingWorkflowIdMappingTechniquesIdMappingTypeOutput{}) pulumi.RegisterOutputType(IdMappingWorkflowIdMappingTechniquesIdMappingTypePtrOutput{}) + pulumi.RegisterOutputType(IdMappingWorkflowInputSourceTypeOutput{}) + pulumi.RegisterOutputType(IdMappingWorkflowInputSourceTypePtrOutput{}) pulumi.RegisterOutputType(MatchingWorkflowResolutionTechniquesResolutionTypeOutput{}) pulumi.RegisterOutputType(MatchingWorkflowResolutionTechniquesResolutionTypePtrOutput{}) pulumi.RegisterOutputType(MatchingWorkflowRuleBasedPropertiesAttributeMatchingModelOutput{}) diff --git a/sdk/go/aws/entityresolution/pulumiTypes.go b/sdk/go/aws/entityresolution/pulumiTypes.go index b2e267577e..d49f5c3135 100644 --- a/sdk/go/aws/entityresolution/pulumiTypes.go +++ b/sdk/go/aws/entityresolution/pulumiTypes.go @@ -115,9 +115,10 @@ func (o IdMappingWorkflowIdMappingTechniquesPtrOutput) ProviderProperties() IdMa } type IdMappingWorkflowInputSource struct { - // An Glue table ARN for the input source table - InputSourceArn string `pulumi:"inputSourceArn"` - SchemaArn string `pulumi:"schemaArn"` + // An Glue table ARN for the input source table or IdNamespace ARN + InputSourceArn string `pulumi:"inputSourceArn"` + SchemaArn *string `pulumi:"schemaArn"` + Type *IdMappingWorkflowInputSourceType `pulumi:"type"` } // IdMappingWorkflowInputSourceInput is an input type that accepts IdMappingWorkflowInputSourceArgs and IdMappingWorkflowInputSourceOutput values. @@ -132,9 +133,10 @@ type IdMappingWorkflowInputSourceInput interface { } type IdMappingWorkflowInputSourceArgs struct { - // An Glue table ARN for the input source table - InputSourceArn pulumi.StringInput `pulumi:"inputSourceArn"` - SchemaArn pulumi.StringInput `pulumi:"schemaArn"` + // An Glue table ARN for the input source table or IdNamespace ARN + InputSourceArn pulumi.StringInput `pulumi:"inputSourceArn"` + SchemaArn pulumi.StringPtrInput `pulumi:"schemaArn"` + Type IdMappingWorkflowInputSourceTypePtrInput `pulumi:"type"` } func (IdMappingWorkflowInputSourceArgs) ElementType() reflect.Type { @@ -188,13 +190,17 @@ func (o IdMappingWorkflowInputSourceOutput) ToIdMappingWorkflowInputSourceOutput return o } -// An Glue table ARN for the input source table +// An Glue table ARN for the input source table or IdNamespace ARN func (o IdMappingWorkflowInputSourceOutput) InputSourceArn() pulumi.StringOutput { return o.ApplyT(func(v IdMappingWorkflowInputSource) string { return v.InputSourceArn }).(pulumi.StringOutput) } -func (o IdMappingWorkflowInputSourceOutput) SchemaArn() pulumi.StringOutput { - return o.ApplyT(func(v IdMappingWorkflowInputSource) string { return v.SchemaArn }).(pulumi.StringOutput) +func (o IdMappingWorkflowInputSourceOutput) SchemaArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v IdMappingWorkflowInputSource) *string { return v.SchemaArn }).(pulumi.StringPtrOutput) +} + +func (o IdMappingWorkflowInputSourceOutput) Type() IdMappingWorkflowInputSourceTypePtrOutput { + return o.ApplyT(func(v IdMappingWorkflowInputSource) *IdMappingWorkflowInputSourceType { return v.Type }).(IdMappingWorkflowInputSourceTypePtrOutput) } type IdMappingWorkflowInputSourceArrayOutput struct{ *pulumi.OutputState } diff --git a/sdk/go/aws/gamelift/gameServerGroup.go b/sdk/go/aws/gamelift/gameServerGroup.go index 69aa06c473..a18004ae14 100644 --- a/sdk/go/aws/gamelift/gameServerGroup.go +++ b/sdk/go/aws/gamelift/gameServerGroup.go @@ -19,7 +19,7 @@ type GameServerGroup struct { // A generated unique ID for the EC2 Auto Scaling group that is associated with this game server group. AutoScalingGroupArn pulumi.StringOutput `pulumi:"autoScalingGroupArn"` - // Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting + // Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. AutoScalingPolicy GameServerGroupAutoScalingPolicyPtrOutput `pulumi:"autoScalingPolicy"` // The fallback balancing method to use for the game server group when Spot Instances in a Region become unavailable or are not viable for game hosting. BalancingStrategy GameServerGroupBalancingStrategyPtrOutput `pulumi:"balancingStrategy"` @@ -33,17 +33,17 @@ type GameServerGroup struct { GameServerProtectionPolicy GameServerGroupGameServerProtectionPolicyPtrOutput `pulumi:"gameServerProtectionPolicy"` // A set of EC2 instance types to use when creating instances in the group. InstanceDefinitions GameServerGroupInstanceDefinitionArrayOutput `pulumi:"instanceDefinitions"` - // The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. + // The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. LaunchTemplate GameServerGroupLaunchTemplatePtrOutput `pulumi:"launchTemplate"` - // The maximum number of instances allowed in the EC2 Auto Scaling group. + // The maximum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. MaxSize pulumi.Float64PtrOutput `pulumi:"maxSize"` - // The minimum number of instances allowed in the EC2 Auto Scaling group. + // The minimum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. MinSize pulumi.Float64PtrOutput `pulumi:"minSize"` // The Amazon Resource Name (ARN) for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups. RoleArn pulumi.StringOutput `pulumi:"roleArn"` - // A list of labels to assign to the new game server group resource. + // A list of labels to assign to the new game server group resource. Updating game server group tags with CloudFormation will not take effect. Please update this property using AWS GameLift APIs instead. Tags aws.TagArrayOutput `pulumi:"tags"` - // A list of virtual private cloud (VPC) subnets to use with instances in the game server group. + // A list of virtual private cloud (VPC) subnets to use with instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. VpcSubnets pulumi.StringArrayOutput `pulumi:"vpcSubnets"` } @@ -93,7 +93,7 @@ func (GameServerGroupState) ElementType() reflect.Type { } type gameServerGroupArgs struct { - // Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting + // Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. AutoScalingPolicy *GameServerGroupAutoScalingPolicy `pulumi:"autoScalingPolicy"` // The fallback balancing method to use for the game server group when Spot Instances in a Region become unavailable or are not viable for game hosting. BalancingStrategy *GameServerGroupBalancingStrategy `pulumi:"balancingStrategy"` @@ -105,23 +105,23 @@ type gameServerGroupArgs struct { GameServerProtectionPolicy *GameServerGroupGameServerProtectionPolicy `pulumi:"gameServerProtectionPolicy"` // A set of EC2 instance types to use when creating instances in the group. InstanceDefinitions []GameServerGroupInstanceDefinition `pulumi:"instanceDefinitions"` - // The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. + // The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. LaunchTemplate *GameServerGroupLaunchTemplate `pulumi:"launchTemplate"` - // The maximum number of instances allowed in the EC2 Auto Scaling group. + // The maximum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. MaxSize *float64 `pulumi:"maxSize"` - // The minimum number of instances allowed in the EC2 Auto Scaling group. + // The minimum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. MinSize *float64 `pulumi:"minSize"` // The Amazon Resource Name (ARN) for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups. RoleArn string `pulumi:"roleArn"` - // A list of labels to assign to the new game server group resource. + // A list of labels to assign to the new game server group resource. Updating game server group tags with CloudFormation will not take effect. Please update this property using AWS GameLift APIs instead. Tags []aws.Tag `pulumi:"tags"` - // A list of virtual private cloud (VPC) subnets to use with instances in the game server group. + // A list of virtual private cloud (VPC) subnets to use with instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. VpcSubnets []string `pulumi:"vpcSubnets"` } // The set of arguments for constructing a GameServerGroup resource. type GameServerGroupArgs struct { - // Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting + // Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. AutoScalingPolicy GameServerGroupAutoScalingPolicyPtrInput // The fallback balancing method to use for the game server group when Spot Instances in a Region become unavailable or are not viable for game hosting. BalancingStrategy GameServerGroupBalancingStrategyPtrInput @@ -133,17 +133,17 @@ type GameServerGroupArgs struct { GameServerProtectionPolicy GameServerGroupGameServerProtectionPolicyPtrInput // A set of EC2 instance types to use when creating instances in the group. InstanceDefinitions GameServerGroupInstanceDefinitionArrayInput - // The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. + // The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. LaunchTemplate GameServerGroupLaunchTemplatePtrInput - // The maximum number of instances allowed in the EC2 Auto Scaling group. + // The maximum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. MaxSize pulumi.Float64PtrInput - // The minimum number of instances allowed in the EC2 Auto Scaling group. + // The minimum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. MinSize pulumi.Float64PtrInput // The Amazon Resource Name (ARN) for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups. RoleArn pulumi.StringInput - // A list of labels to assign to the new game server group resource. + // A list of labels to assign to the new game server group resource. Updating game server group tags with CloudFormation will not take effect. Please update this property using AWS GameLift APIs instead. Tags aws.TagArrayInput - // A list of virtual private cloud (VPC) subnets to use with instances in the game server group. + // A list of virtual private cloud (VPC) subnets to use with instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. VpcSubnets pulumi.StringArrayInput } @@ -189,7 +189,7 @@ func (o GameServerGroupOutput) AutoScalingGroupArn() pulumi.StringOutput { return o.ApplyT(func(v *GameServerGroup) pulumi.StringOutput { return v.AutoScalingGroupArn }).(pulumi.StringOutput) } -// Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting +// Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. func (o GameServerGroupOutput) AutoScalingPolicy() GameServerGroupAutoScalingPolicyPtrOutput { return o.ApplyT(func(v *GameServerGroup) GameServerGroupAutoScalingPolicyPtrOutput { return v.AutoScalingPolicy }).(GameServerGroupAutoScalingPolicyPtrOutput) } @@ -226,17 +226,17 @@ func (o GameServerGroupOutput) InstanceDefinitions() GameServerGroupInstanceDefi return o.ApplyT(func(v *GameServerGroup) GameServerGroupInstanceDefinitionArrayOutput { return v.InstanceDefinitions }).(GameServerGroupInstanceDefinitionArrayOutput) } -// The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. +// The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. func (o GameServerGroupOutput) LaunchTemplate() GameServerGroupLaunchTemplatePtrOutput { return o.ApplyT(func(v *GameServerGroup) GameServerGroupLaunchTemplatePtrOutput { return v.LaunchTemplate }).(GameServerGroupLaunchTemplatePtrOutput) } -// The maximum number of instances allowed in the EC2 Auto Scaling group. +// The maximum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. func (o GameServerGroupOutput) MaxSize() pulumi.Float64PtrOutput { return o.ApplyT(func(v *GameServerGroup) pulumi.Float64PtrOutput { return v.MaxSize }).(pulumi.Float64PtrOutput) } -// The minimum number of instances allowed in the EC2 Auto Scaling group. +// The minimum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. func (o GameServerGroupOutput) MinSize() pulumi.Float64PtrOutput { return o.ApplyT(func(v *GameServerGroup) pulumi.Float64PtrOutput { return v.MinSize }).(pulumi.Float64PtrOutput) } @@ -246,12 +246,12 @@ func (o GameServerGroupOutput) RoleArn() pulumi.StringOutput { return o.ApplyT(func(v *GameServerGroup) pulumi.StringOutput { return v.RoleArn }).(pulumi.StringOutput) } -// A list of labels to assign to the new game server group resource. +// A list of labels to assign to the new game server group resource. Updating game server group tags with CloudFormation will not take effect. Please update this property using AWS GameLift APIs instead. func (o GameServerGroupOutput) Tags() aws.TagArrayOutput { return o.ApplyT(func(v *GameServerGroup) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) } -// A list of virtual private cloud (VPC) subnets to use with instances in the game server group. +// A list of virtual private cloud (VPC) subnets to use with instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. func (o GameServerGroupOutput) VpcSubnets() pulumi.StringArrayOutput { return o.ApplyT(func(v *GameServerGroup) pulumi.StringArrayOutput { return v.VpcSubnets }).(pulumi.StringArrayOutput) } diff --git a/sdk/go/aws/gamelift/pulumiTypes.go b/sdk/go/aws/gamelift/pulumiTypes.go index d249808a44..1ec02fec02 100644 --- a/sdk/go/aws/gamelift/pulumiTypes.go +++ b/sdk/go/aws/gamelift/pulumiTypes.go @@ -1838,7 +1838,7 @@ func (o FleetTargetConfigurationPtrOutput) TargetValue() pulumi.Float64PtrOutput }).(pulumi.Float64PtrOutput) } -// Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting +// Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. type GameServerGroupAutoScalingPolicy struct { EstimatedInstanceWarmup *float64 `pulumi:"estimatedInstanceWarmup"` TargetTrackingConfiguration GameServerGroupTargetTrackingConfiguration `pulumi:"targetTrackingConfiguration"` @@ -1855,7 +1855,7 @@ type GameServerGroupAutoScalingPolicyInput interface { ToGameServerGroupAutoScalingPolicyOutputWithContext(context.Context) GameServerGroupAutoScalingPolicyOutput } -// Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting +// Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. type GameServerGroupAutoScalingPolicyArgs struct { EstimatedInstanceWarmup pulumi.Float64PtrInput `pulumi:"estimatedInstanceWarmup"` TargetTrackingConfiguration GameServerGroupTargetTrackingConfigurationInput `pulumi:"targetTrackingConfiguration"` @@ -1914,7 +1914,7 @@ func (i *gameServerGroupAutoScalingPolicyPtrType) ToGameServerGroupAutoScalingPo return pulumi.ToOutputWithContext(ctx, i).(GameServerGroupAutoScalingPolicyPtrOutput) } -// Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting +// Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. type GameServerGroupAutoScalingPolicyOutput struct{ *pulumi.OutputState } func (GameServerGroupAutoScalingPolicyOutput) ElementType() reflect.Type { @@ -2094,7 +2094,7 @@ func (o GameServerGroupInstanceDefinitionArrayOutput) Index(i pulumi.IntInput) G }).(GameServerGroupInstanceDefinitionOutput) } -// The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. +// The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. type GameServerGroupLaunchTemplate struct { LaunchTemplateId *string `pulumi:"launchTemplateId"` LaunchTemplateName *string `pulumi:"launchTemplateName"` @@ -2112,7 +2112,7 @@ type GameServerGroupLaunchTemplateInput interface { ToGameServerGroupLaunchTemplateOutputWithContext(context.Context) GameServerGroupLaunchTemplateOutput } -// The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. +// The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. type GameServerGroupLaunchTemplateArgs struct { LaunchTemplateId pulumi.StringPtrInput `pulumi:"launchTemplateId"` LaunchTemplateName pulumi.StringPtrInput `pulumi:"launchTemplateName"` @@ -2172,7 +2172,7 @@ func (i *gameServerGroupLaunchTemplatePtrType) ToGameServerGroupLaunchTemplatePt return pulumi.ToOutputWithContext(ctx, i).(GameServerGroupLaunchTemplatePtrOutput) } -// The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. +// The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. type GameServerGroupLaunchTemplateOutput struct{ *pulumi.OutputState } func (GameServerGroupLaunchTemplateOutput) ElementType() reflect.Type { diff --git a/sdk/go/aws/iam/getManagedPolicy.go b/sdk/go/aws/iam/getManagedPolicy.go index db8795a832..679d0ea3c7 100644 --- a/sdk/go/aws/iam/getManagedPolicy.go +++ b/sdk/go/aws/iam/getManagedPolicy.go @@ -11,7 +11,11 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Resource Type definition for AWS::IAM::ManagedPolicy +// Creates a new managed policy for your AWS-account. +// +// This operation creates a policy version with a version identifier of ``v1`` and sets v1 as the policy's default version. For more information about policy versions, see [Versioning for managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) in the *IAM User Guide*. +// As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) in the *IAM User Guide*. +// For more information about managed policies in general, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*. func LookupManagedPolicy(ctx *pulumi.Context, args *LookupManagedPolicyArgs, opts ...pulumi.InvokeOption) (*LookupManagedPolicyResult, error) { opts = internal.PkgInvokeDefaultOpts(opts) var rv LookupManagedPolicyResult @@ -23,36 +27,38 @@ func LookupManagedPolicy(ctx *pulumi.Context, args *LookupManagedPolicyArgs, opt } type LookupManagedPolicyArgs struct { - // Amazon Resource Name (ARN) of the managed policy PolicyArn string `pulumi:"policyArn"` } type LookupManagedPolicyResult struct { - // The number of entities (users, groups, and roles) that the policy is attached to. - AttachmentCount *int `pulumi:"attachmentCount"` - // The date and time, in ISO 8601 date-time format, when the policy was created. - CreateDate *string `pulumi:"createDate"` - // The identifier for the version of the policy that is set as the default version. + AttachmentCount *int `pulumi:"attachmentCount"` + CreateDate *string `pulumi:"createDate"` DefaultVersionId *string `pulumi:"defaultVersionId"` // The name (friendly name, not ARN) of the group to attach the policy to. - Groups []string `pulumi:"groups"` - // Specifies whether the policy can be attached to an IAM user, group, or role. - IsAttachable *bool `pulumi:"isAttachable"` - // The number of entities (users and roles) for which the policy is used to set the permissions boundary. - PermissionsBoundaryUsageCount *int `pulumi:"permissionsBoundaryUsageCount"` - // Amazon Resource Name (ARN) of the managed policy - PolicyArn *string `pulumi:"policyArn"` + // This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + Groups []string `pulumi:"groups"` + IsAttachable *bool `pulumi:"isAttachable"` + PermissionsBoundaryUsageCount *int `pulumi:"permissionsBoundaryUsageCount"` + PolicyArn *string `pulumi:"policyArn"` // The JSON policy document that you want to use as the content for the new policy. + // You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM. + // The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + // To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. + // The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: + // + Any printable ASCII character ranging from the space character (``\u0020``) through the end of the ASCII character range + // + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\u00FF``) + // + The special characters tab (``\u0009``), line feed (``\u000A``), and carriage return (``\u000D``) // // Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property. PolicyDocument interface{} `pulumi:"policyDocument"` - // The stable and unique string identifying the policy. - PolicyId *string `pulumi:"policyId"` + PolicyId *string `pulumi:"policyId"` // The name (friendly name, not ARN) of the role to attach the policy to. - Roles []string `pulumi:"roles"` - // The date and time, in ISO 8601 date-time format, when the policy was last updated. - UpdateDate *string `pulumi:"updateDate"` + // This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + // If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy. + Roles []string `pulumi:"roles"` + UpdateDate *string `pulumi:"updateDate"` // The name (friendly name, not ARN) of the IAM user to attach the policy to. + // This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- Users []string `pulumi:"users"` } @@ -70,7 +76,6 @@ func LookupManagedPolicyOutput(ctx *pulumi.Context, args LookupManagedPolicyOutp } type LookupManagedPolicyOutputArgs struct { - // Amazon Resource Name (ARN) of the managed policy PolicyArn pulumi.StringInput `pulumi:"policyArn"` } @@ -92,64 +97,71 @@ func (o LookupManagedPolicyResultOutput) ToLookupManagedPolicyResultOutputWithCo return o } -// The number of entities (users, groups, and roles) that the policy is attached to. func (o LookupManagedPolicyResultOutput) AttachmentCount() pulumi.IntPtrOutput { return o.ApplyT(func(v LookupManagedPolicyResult) *int { return v.AttachmentCount }).(pulumi.IntPtrOutput) } -// The date and time, in ISO 8601 date-time format, when the policy was created. func (o LookupManagedPolicyResultOutput) CreateDate() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupManagedPolicyResult) *string { return v.CreateDate }).(pulumi.StringPtrOutput) } -// The identifier for the version of the policy that is set as the default version. func (o LookupManagedPolicyResultOutput) DefaultVersionId() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupManagedPolicyResult) *string { return v.DefaultVersionId }).(pulumi.StringPtrOutput) } // The name (friendly name, not ARN) of the group to attach the policy to. +// +// This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- func (o LookupManagedPolicyResultOutput) Groups() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupManagedPolicyResult) []string { return v.Groups }).(pulumi.StringArrayOutput) } -// Specifies whether the policy can be attached to an IAM user, group, or role. func (o LookupManagedPolicyResultOutput) IsAttachable() pulumi.BoolPtrOutput { return o.ApplyT(func(v LookupManagedPolicyResult) *bool { return v.IsAttachable }).(pulumi.BoolPtrOutput) } -// The number of entities (users and roles) for which the policy is used to set the permissions boundary. func (o LookupManagedPolicyResultOutput) PermissionsBoundaryUsageCount() pulumi.IntPtrOutput { return o.ApplyT(func(v LookupManagedPolicyResult) *int { return v.PermissionsBoundaryUsageCount }).(pulumi.IntPtrOutput) } -// Amazon Resource Name (ARN) of the managed policy func (o LookupManagedPolicyResultOutput) PolicyArn() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupManagedPolicyResult) *string { return v.PolicyArn }).(pulumi.StringPtrOutput) } // The JSON policy document that you want to use as the content for the new policy. // +// You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM. +// The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). +// To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. +// The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: +// + Any printable ASCII character ranging from the space character (``\u0020``) through the end of the ASCII character range +// + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\u00FF``) +// + The special characters tab (``\u0009``), line feed (``\u000A``), and carriage return (``\u000D``) +// // Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property. func (o LookupManagedPolicyResultOutput) PolicyDocument() pulumi.AnyOutput { return o.ApplyT(func(v LookupManagedPolicyResult) interface{} { return v.PolicyDocument }).(pulumi.AnyOutput) } -// The stable and unique string identifying the policy. func (o LookupManagedPolicyResultOutput) PolicyId() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupManagedPolicyResult) *string { return v.PolicyId }).(pulumi.StringPtrOutput) } // The name (friendly name, not ARN) of the role to attach the policy to. +// +// This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- +// If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy. func (o LookupManagedPolicyResultOutput) Roles() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupManagedPolicyResult) []string { return v.Roles }).(pulumi.StringArrayOutput) } -// The date and time, in ISO 8601 date-time format, when the policy was last updated. func (o LookupManagedPolicyResultOutput) UpdateDate() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupManagedPolicyResult) *string { return v.UpdateDate }).(pulumi.StringPtrOutput) } // The name (friendly name, not ARN) of the IAM user to attach the policy to. +// +// This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- func (o LookupManagedPolicyResultOutput) Users() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupManagedPolicyResult) []string { return v.Users }).(pulumi.StringArrayOutput) } diff --git a/sdk/go/aws/iam/managedPolicy.go b/sdk/go/aws/iam/managedPolicy.go index e5d3f4fafa..03396084d9 100644 --- a/sdk/go/aws/iam/managedPolicy.go +++ b/sdk/go/aws/iam/managedPolicy.go @@ -12,41 +12,57 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Resource Type definition for AWS::IAM::ManagedPolicy +// Creates a new managed policy for your AWS-account. +// +// This operation creates a policy version with a version identifier of ``v1`` and sets v1 as the policy's default version. For more information about policy versions, see [Versioning for managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) in the *IAM User Guide*. +// As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) in the *IAM User Guide*. +// For more information about managed policies in general, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*. type ManagedPolicy struct { pulumi.CustomResourceState - // The number of entities (users, groups, and roles) that the policy is attached to. - AttachmentCount pulumi.IntOutput `pulumi:"attachmentCount"` - // The date and time, in ISO 8601 date-time format, when the policy was created. - CreateDate pulumi.StringOutput `pulumi:"createDate"` - // The identifier for the version of the policy that is set as the default version. + AttachmentCount pulumi.IntOutput `pulumi:"attachmentCount"` + CreateDate pulumi.StringOutput `pulumi:"createDate"` DefaultVersionId pulumi.StringOutput `pulumi:"defaultVersionId"` // A friendly description of the policy. + // Typically used to store information about the permissions defined in the policy. For example, "Grants access to production DynamoDB tables." + // The policy description is immutable. After a value is assigned, it cannot be changed. Description pulumi.StringPtrOutput `pulumi:"description"` // The name (friendly name, not ARN) of the group to attach the policy to. - Groups pulumi.StringArrayOutput `pulumi:"groups"` - // Specifies whether the policy can be attached to an IAM user, group, or role. - IsAttachable pulumi.BoolOutput `pulumi:"isAttachable"` + // This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + Groups pulumi.StringArrayOutput `pulumi:"groups"` + IsAttachable pulumi.BoolOutput `pulumi:"isAttachable"` // The friendly name of the policy. + // If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. + // If you specify a name, you must specify the ``CAPABILITY_NAMED_IAM`` value to acknowledge your template's capabilities. For more information, see [Acknowledging Resources in Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities). + // Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using ``Fn::Join`` and ``AWS::Region`` to create a Region-specific name, as in the following example: ``{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}``. ManagedPolicyName pulumi.StringPtrOutput `pulumi:"managedPolicyName"` // The path for the policy. - Path pulumi.StringPtrOutput `pulumi:"path"` - // The number of entities (users and roles) for which the policy is used to set the permissions boundary. - PermissionsBoundaryUsageCount pulumi.IntOutput `pulumi:"permissionsBoundaryUsageCount"` - // Amazon Resource Name (ARN) of the managed policy - PolicyArn pulumi.StringOutput `pulumi:"policyArn"` + // For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*. + // This parameter is optional. If it is not included, it defaults to a slash (/). + // This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (``\u0021``) through the DEL character (``\u007F``), including most punctuation characters, digits, and upper and lowercased letters. + // You cannot use an asterisk (*) in the path name. + Path pulumi.StringPtrOutput `pulumi:"path"` + PermissionsBoundaryUsageCount pulumi.IntOutput `pulumi:"permissionsBoundaryUsageCount"` + PolicyArn pulumi.StringOutput `pulumi:"policyArn"` // The JSON policy document that you want to use as the content for the new policy. + // You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM. + // The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + // To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. + // The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: + // + Any printable ASCII character ranging from the space character (``\u0020``) through the end of the ASCII character range + // + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\u00FF``) + // + The special characters tab (``\u0009``), line feed (``\u000A``), and carriage return (``\u000D``) // // Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property. - PolicyDocument pulumi.AnyOutput `pulumi:"policyDocument"` - // The stable and unique string identifying the policy. - PolicyId pulumi.StringOutput `pulumi:"policyId"` + PolicyDocument pulumi.AnyOutput `pulumi:"policyDocument"` + PolicyId pulumi.StringOutput `pulumi:"policyId"` // The name (friendly name, not ARN) of the role to attach the policy to. - Roles pulumi.StringArrayOutput `pulumi:"roles"` - // The date and time, in ISO 8601 date-time format, when the policy was last updated. - UpdateDate pulumi.StringOutput `pulumi:"updateDate"` + // This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + // If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy. + Roles pulumi.StringArrayOutput `pulumi:"roles"` + UpdateDate pulumi.StringOutput `pulumi:"updateDate"` // The name (friendly name, not ARN) of the IAM user to attach the policy to. + // This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- Users pulumi.StringArrayOutput `pulumi:"users"` } @@ -100,40 +116,80 @@ func (ManagedPolicyState) ElementType() reflect.Type { type managedPolicyArgs struct { // A friendly description of the policy. + // Typically used to store information about the permissions defined in the policy. For example, "Grants access to production DynamoDB tables." + // The policy description is immutable. After a value is assigned, it cannot be changed. Description *string `pulumi:"description"` // The name (friendly name, not ARN) of the group to attach the policy to. + // This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- Groups []string `pulumi:"groups"` // The friendly name of the policy. + // If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. + // If you specify a name, you must specify the ``CAPABILITY_NAMED_IAM`` value to acknowledge your template's capabilities. For more information, see [Acknowledging Resources in Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities). + // Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using ``Fn::Join`` and ``AWS::Region`` to create a Region-specific name, as in the following example: ``{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}``. ManagedPolicyName *string `pulumi:"managedPolicyName"` // The path for the policy. + // For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*. + // This parameter is optional. If it is not included, it defaults to a slash (/). + // This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (``\u0021``) through the DEL character (``\u007F``), including most punctuation characters, digits, and upper and lowercased letters. + // You cannot use an asterisk (*) in the path name. Path *string `pulumi:"path"` // The JSON policy document that you want to use as the content for the new policy. + // You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM. + // The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + // To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. + // The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: + // + Any printable ASCII character ranging from the space character (``\u0020``) through the end of the ASCII character range + // + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\u00FF``) + // + The special characters tab (``\u0009``), line feed (``\u000A``), and carriage return (``\u000D``) // // Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property. PolicyDocument interface{} `pulumi:"policyDocument"` // The name (friendly name, not ARN) of the role to attach the policy to. + // This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + // If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy. Roles []string `pulumi:"roles"` // The name (friendly name, not ARN) of the IAM user to attach the policy to. + // This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- Users []string `pulumi:"users"` } // The set of arguments for constructing a ManagedPolicy resource. type ManagedPolicyArgs struct { // A friendly description of the policy. + // Typically used to store information about the permissions defined in the policy. For example, "Grants access to production DynamoDB tables." + // The policy description is immutable. After a value is assigned, it cannot be changed. Description pulumi.StringPtrInput // The name (friendly name, not ARN) of the group to attach the policy to. + // This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- Groups pulumi.StringArrayInput // The friendly name of the policy. + // If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. + // If you specify a name, you must specify the ``CAPABILITY_NAMED_IAM`` value to acknowledge your template's capabilities. For more information, see [Acknowledging Resources in Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities). + // Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using ``Fn::Join`` and ``AWS::Region`` to create a Region-specific name, as in the following example: ``{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}``. ManagedPolicyName pulumi.StringPtrInput // The path for the policy. + // For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*. + // This parameter is optional. If it is not included, it defaults to a slash (/). + // This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (``\u0021``) through the DEL character (``\u007F``), including most punctuation characters, digits, and upper and lowercased letters. + // You cannot use an asterisk (*) in the path name. Path pulumi.StringPtrInput // The JSON policy document that you want to use as the content for the new policy. + // You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM. + // The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + // To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. + // The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: + // + Any printable ASCII character ranging from the space character (``\u0020``) through the end of the ASCII character range + // + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\u00FF``) + // + The special characters tab (``\u0009``), line feed (``\u000A``), and carriage return (``\u000D``) // // Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property. PolicyDocument pulumi.Input // The name (friendly name, not ARN) of the role to attach the policy to. + // This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + // If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy. Roles pulumi.StringArrayInput // The name (friendly name, not ARN) of the IAM user to attach the policy to. + // This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- Users pulumi.StringArrayInput } @@ -174,79 +230,98 @@ func (o ManagedPolicyOutput) ToManagedPolicyOutputWithContext(ctx context.Contex return o } -// The number of entities (users, groups, and roles) that the policy is attached to. func (o ManagedPolicyOutput) AttachmentCount() pulumi.IntOutput { return o.ApplyT(func(v *ManagedPolicy) pulumi.IntOutput { return v.AttachmentCount }).(pulumi.IntOutput) } -// The date and time, in ISO 8601 date-time format, when the policy was created. func (o ManagedPolicyOutput) CreateDate() pulumi.StringOutput { return o.ApplyT(func(v *ManagedPolicy) pulumi.StringOutput { return v.CreateDate }).(pulumi.StringOutput) } -// The identifier for the version of the policy that is set as the default version. func (o ManagedPolicyOutput) DefaultVersionId() pulumi.StringOutput { return o.ApplyT(func(v *ManagedPolicy) pulumi.StringOutput { return v.DefaultVersionId }).(pulumi.StringOutput) } // A friendly description of the policy. +// +// Typically used to store information about the permissions defined in the policy. For example, "Grants access to production DynamoDB tables." +// The policy description is immutable. After a value is assigned, it cannot be changed. func (o ManagedPolicyOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *ManagedPolicy) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) } // The name (friendly name, not ARN) of the group to attach the policy to. +// +// This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- func (o ManagedPolicyOutput) Groups() pulumi.StringArrayOutput { return o.ApplyT(func(v *ManagedPolicy) pulumi.StringArrayOutput { return v.Groups }).(pulumi.StringArrayOutput) } -// Specifies whether the policy can be attached to an IAM user, group, or role. func (o ManagedPolicyOutput) IsAttachable() pulumi.BoolOutput { return o.ApplyT(func(v *ManagedPolicy) pulumi.BoolOutput { return v.IsAttachable }).(pulumi.BoolOutput) } // The friendly name of the policy. +// +// If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. +// If you specify a name, you must specify the ``CAPABILITY_NAMED_IAM`` value to acknowledge your template's capabilities. For more information, see [Acknowledging Resources in Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities). +// Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using ``Fn::Join`` and ``AWS::Region`` to create a Region-specific name, as in the following example: ``{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}``. func (o ManagedPolicyOutput) ManagedPolicyName() pulumi.StringPtrOutput { return o.ApplyT(func(v *ManagedPolicy) pulumi.StringPtrOutput { return v.ManagedPolicyName }).(pulumi.StringPtrOutput) } // The path for the policy. +// +// For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*. +// This parameter is optional. If it is not included, it defaults to a slash (/). +// This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (``\u0021``) through the DEL character (``\u007F``), including most punctuation characters, digits, and upper and lowercased letters. +// You cannot use an asterisk (*) in the path name. func (o ManagedPolicyOutput) Path() pulumi.StringPtrOutput { return o.ApplyT(func(v *ManagedPolicy) pulumi.StringPtrOutput { return v.Path }).(pulumi.StringPtrOutput) } -// The number of entities (users and roles) for which the policy is used to set the permissions boundary. func (o ManagedPolicyOutput) PermissionsBoundaryUsageCount() pulumi.IntOutput { return o.ApplyT(func(v *ManagedPolicy) pulumi.IntOutput { return v.PermissionsBoundaryUsageCount }).(pulumi.IntOutput) } -// Amazon Resource Name (ARN) of the managed policy func (o ManagedPolicyOutput) PolicyArn() pulumi.StringOutput { return o.ApplyT(func(v *ManagedPolicy) pulumi.StringOutput { return v.PolicyArn }).(pulumi.StringOutput) } // The JSON policy document that you want to use as the content for the new policy. // +// You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM. +// The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). +// To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. +// The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: +// + Any printable ASCII character ranging from the space character (``\u0020``) through the end of the ASCII character range +// + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\u00FF``) +// + The special characters tab (``\u0009``), line feed (``\u000A``), and carriage return (``\u000D``) +// // Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property. func (o ManagedPolicyOutput) PolicyDocument() pulumi.AnyOutput { return o.ApplyT(func(v *ManagedPolicy) pulumi.AnyOutput { return v.PolicyDocument }).(pulumi.AnyOutput) } -// The stable and unique string identifying the policy. func (o ManagedPolicyOutput) PolicyId() pulumi.StringOutput { return o.ApplyT(func(v *ManagedPolicy) pulumi.StringOutput { return v.PolicyId }).(pulumi.StringOutput) } // The name (friendly name, not ARN) of the role to attach the policy to. +// +// This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- +// If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy. func (o ManagedPolicyOutput) Roles() pulumi.StringArrayOutput { return o.ApplyT(func(v *ManagedPolicy) pulumi.StringArrayOutput { return v.Roles }).(pulumi.StringArrayOutput) } -// The date and time, in ISO 8601 date-time format, when the policy was last updated. func (o ManagedPolicyOutput) UpdateDate() pulumi.StringOutput { return o.ApplyT(func(v *ManagedPolicy) pulumi.StringOutput { return v.UpdateDate }).(pulumi.StringOutput) } // The name (friendly name, not ARN) of the IAM user to attach the policy to. +// +// This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- func (o ManagedPolicyOutput) Users() pulumi.StringArrayOutput { return o.ApplyT(func(v *ManagedPolicy) pulumi.StringArrayOutput { return v.Users }).(pulumi.StringArrayOutput) } diff --git a/sdk/go/aws/iotsitewise/pulumiTypes.go b/sdk/go/aws/iotsitewise/pulumiTypes.go index ccdb8c5266..87f1e4ad4b 100644 --- a/sdk/go/aws/iotsitewise/pulumiTypes.go +++ b/sdk/go/aws/iotsitewise/pulumiTypes.go @@ -3362,6 +3362,8 @@ type GatewayPlatform struct { Greengrass *GatewayGreengrass `pulumi:"greengrass"` // A gateway that runs on AWS IoT Greengrass V2. GreengrassV2 *GatewayGreengrassV2 `pulumi:"greengrassV2"` + // A gateway that runs on Siemens Industrial Edge. + SiemensIe *GatewaySiemensIe `pulumi:"siemensIe"` } // GatewayPlatformInput is an input type that accepts GatewayPlatformArgs and GatewayPlatformOutput values. @@ -3381,6 +3383,8 @@ type GatewayPlatformArgs struct { Greengrass GatewayGreengrassPtrInput `pulumi:"greengrass"` // A gateway that runs on AWS IoT Greengrass V2. GreengrassV2 GatewayGreengrassV2PtrInput `pulumi:"greengrassV2"` + // A gateway that runs on Siemens Industrial Edge. + SiemensIe GatewaySiemensIePtrInput `pulumi:"siemensIe"` } func (GatewayPlatformArgs) ElementType() reflect.Type { @@ -3420,6 +3424,151 @@ func (o GatewayPlatformOutput) GreengrassV2() GatewayGreengrassV2PtrOutput { return o.ApplyT(func(v GatewayPlatform) *GatewayGreengrassV2 { return v.GreengrassV2 }).(GatewayGreengrassV2PtrOutput) } +// A gateway that runs on Siemens Industrial Edge. +func (o GatewayPlatformOutput) SiemensIe() GatewaySiemensIePtrOutput { + return o.ApplyT(func(v GatewayPlatform) *GatewaySiemensIe { return v.SiemensIe }).(GatewaySiemensIePtrOutput) +} + +// Contains the IotCoreThingName of AWS IoT Thing that the gateway runs on. +type GatewaySiemensIe struct { + // The name of the IoT Core Thing. + IotCoreThingName string `pulumi:"iotCoreThingName"` +} + +// GatewaySiemensIeInput is an input type that accepts GatewaySiemensIeArgs and GatewaySiemensIeOutput values. +// You can construct a concrete instance of `GatewaySiemensIeInput` via: +// +// GatewaySiemensIeArgs{...} +type GatewaySiemensIeInput interface { + pulumi.Input + + ToGatewaySiemensIeOutput() GatewaySiemensIeOutput + ToGatewaySiemensIeOutputWithContext(context.Context) GatewaySiemensIeOutput +} + +// Contains the IotCoreThingName of AWS IoT Thing that the gateway runs on. +type GatewaySiemensIeArgs struct { + // The name of the IoT Core Thing. + IotCoreThingName pulumi.StringInput `pulumi:"iotCoreThingName"` +} + +func (GatewaySiemensIeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GatewaySiemensIe)(nil)).Elem() +} + +func (i GatewaySiemensIeArgs) ToGatewaySiemensIeOutput() GatewaySiemensIeOutput { + return i.ToGatewaySiemensIeOutputWithContext(context.Background()) +} + +func (i GatewaySiemensIeArgs) ToGatewaySiemensIeOutputWithContext(ctx context.Context) GatewaySiemensIeOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewaySiemensIeOutput) +} + +func (i GatewaySiemensIeArgs) ToGatewaySiemensIePtrOutput() GatewaySiemensIePtrOutput { + return i.ToGatewaySiemensIePtrOutputWithContext(context.Background()) +} + +func (i GatewaySiemensIeArgs) ToGatewaySiemensIePtrOutputWithContext(ctx context.Context) GatewaySiemensIePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewaySiemensIeOutput).ToGatewaySiemensIePtrOutputWithContext(ctx) +} + +// GatewaySiemensIePtrInput is an input type that accepts GatewaySiemensIeArgs, GatewaySiemensIePtr and GatewaySiemensIePtrOutput values. +// You can construct a concrete instance of `GatewaySiemensIePtrInput` via: +// +// GatewaySiemensIeArgs{...} +// +// or: +// +// nil +type GatewaySiemensIePtrInput interface { + pulumi.Input + + ToGatewaySiemensIePtrOutput() GatewaySiemensIePtrOutput + ToGatewaySiemensIePtrOutputWithContext(context.Context) GatewaySiemensIePtrOutput +} + +type gatewaySiemensIePtrType GatewaySiemensIeArgs + +func GatewaySiemensIePtr(v *GatewaySiemensIeArgs) GatewaySiemensIePtrInput { + return (*gatewaySiemensIePtrType)(v) +} + +func (*gatewaySiemensIePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GatewaySiemensIe)(nil)).Elem() +} + +func (i *gatewaySiemensIePtrType) ToGatewaySiemensIePtrOutput() GatewaySiemensIePtrOutput { + return i.ToGatewaySiemensIePtrOutputWithContext(context.Background()) +} + +func (i *gatewaySiemensIePtrType) ToGatewaySiemensIePtrOutputWithContext(ctx context.Context) GatewaySiemensIePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewaySiemensIePtrOutput) +} + +// Contains the IotCoreThingName of AWS IoT Thing that the gateway runs on. +type GatewaySiemensIeOutput struct{ *pulumi.OutputState } + +func (GatewaySiemensIeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GatewaySiemensIe)(nil)).Elem() +} + +func (o GatewaySiemensIeOutput) ToGatewaySiemensIeOutput() GatewaySiemensIeOutput { + return o +} + +func (o GatewaySiemensIeOutput) ToGatewaySiemensIeOutputWithContext(ctx context.Context) GatewaySiemensIeOutput { + return o +} + +func (o GatewaySiemensIeOutput) ToGatewaySiemensIePtrOutput() GatewaySiemensIePtrOutput { + return o.ToGatewaySiemensIePtrOutputWithContext(context.Background()) +} + +func (o GatewaySiemensIeOutput) ToGatewaySiemensIePtrOutputWithContext(ctx context.Context) GatewaySiemensIePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GatewaySiemensIe) *GatewaySiemensIe { + return &v + }).(GatewaySiemensIePtrOutput) +} + +// The name of the IoT Core Thing. +func (o GatewaySiemensIeOutput) IotCoreThingName() pulumi.StringOutput { + return o.ApplyT(func(v GatewaySiemensIe) string { return v.IotCoreThingName }).(pulumi.StringOutput) +} + +type GatewaySiemensIePtrOutput struct{ *pulumi.OutputState } + +func (GatewaySiemensIePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GatewaySiemensIe)(nil)).Elem() +} + +func (o GatewaySiemensIePtrOutput) ToGatewaySiemensIePtrOutput() GatewaySiemensIePtrOutput { + return o +} + +func (o GatewaySiemensIePtrOutput) ToGatewaySiemensIePtrOutputWithContext(ctx context.Context) GatewaySiemensIePtrOutput { + return o +} + +func (o GatewaySiemensIePtrOutput) Elem() GatewaySiemensIeOutput { + return o.ApplyT(func(v *GatewaySiemensIe) GatewaySiemensIe { + if v != nil { + return *v + } + var ret GatewaySiemensIe + return ret + }).(GatewaySiemensIeOutput) +} + +// The name of the IoT Core Thing. +func (o GatewaySiemensIePtrOutput) IotCoreThingName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GatewaySiemensIe) *string { + if v == nil { + return nil + } + return &v.IotCoreThingName + }).(pulumi.StringPtrOutput) +} + // To add or update tag, provide both key and value. To delete tag, provide only tag key to be deleted type GatewayTag struct { Key string `pulumi:"key"` @@ -3486,6 +3635,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GatewayGreengrassV2Input)(nil)).Elem(), GatewayGreengrassV2Args{}) pulumi.RegisterInputType(reflect.TypeOf((*GatewayGreengrassV2PtrInput)(nil)).Elem(), GatewayGreengrassV2Args{}) pulumi.RegisterInputType(reflect.TypeOf((*GatewayPlatformInput)(nil)).Elem(), GatewayPlatformArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GatewaySiemensIeInput)(nil)).Elem(), GatewaySiemensIeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GatewaySiemensIePtrInput)(nil)).Elem(), GatewaySiemensIeArgs{}) pulumi.RegisterOutputType(AccessPolicyIamRoleOutput{}) pulumi.RegisterOutputType(AccessPolicyIamRolePtrOutput{}) pulumi.RegisterOutputType(AccessPolicyIamUserOutput{}) @@ -3535,4 +3686,6 @@ func init() { pulumi.RegisterOutputType(GatewayGreengrassV2Output{}) pulumi.RegisterOutputType(GatewayGreengrassV2PtrOutput{}) pulumi.RegisterOutputType(GatewayPlatformOutput{}) + pulumi.RegisterOutputType(GatewaySiemensIeOutput{}) + pulumi.RegisterOutputType(GatewaySiemensIePtrOutput{}) } diff --git a/sdk/go/aws/kafkaconnect/customPlugin.go b/sdk/go/aws/kafkaconnect/customPlugin.go new file mode 100644 index 0000000000..80c9f77a9f --- /dev/null +++ b/sdk/go/aws/kafkaconnect/customPlugin.go @@ -0,0 +1,191 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package kafkaconnect + +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" +) + +// An example resource schema demonstrating some basic constructs and validation rules. +type CustomPlugin struct { + pulumi.CustomResourceState + + // The type of the plugin file. + ContentType CustomPluginContentTypeOutput `pulumi:"contentType"` + // The Amazon Resource Name (ARN) of the custom plugin to use. + CustomPluginArn pulumi.StringOutput `pulumi:"customPluginArn"` + // A summary description of the custom plugin. + Description pulumi.StringPtrOutput `pulumi:"description"` + FileDescription CustomPluginFileDescriptionOutput `pulumi:"fileDescription"` + Location CustomPluginLocationOutput `pulumi:"location"` + // The name of the custom plugin. + Name pulumi.StringOutput `pulumi:"name"` + // The revision of the custom plugin. + Revision pulumi.IntOutput `pulumi:"revision"` + // An array of key-value pairs to apply to this resource. + Tags aws.TagArrayOutput `pulumi:"tags"` +} + +// NewCustomPlugin registers a new resource with the given unique name, arguments, and options. +func NewCustomPlugin(ctx *pulumi.Context, + name string, args *CustomPluginArgs, opts ...pulumi.ResourceOption) (*CustomPlugin, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ContentType == nil { + return nil, errors.New("invalid value for required argument 'ContentType'") + } + if args.Location == nil { + return nil, errors.New("invalid value for required argument 'Location'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "contentType", + "description", + "location", + "name", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource CustomPlugin + err := ctx.RegisterResource("aws-native:kafkaconnect:CustomPlugin", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetCustomPlugin gets an existing CustomPlugin 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 GetCustomPlugin(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *CustomPluginState, opts ...pulumi.ResourceOption) (*CustomPlugin, error) { + var resource CustomPlugin + err := ctx.ReadResource("aws-native:kafkaconnect:CustomPlugin", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering CustomPlugin resources. +type customPluginState struct { +} + +type CustomPluginState struct { +} + +func (CustomPluginState) ElementType() reflect.Type { + return reflect.TypeOf((*customPluginState)(nil)).Elem() +} + +type customPluginArgs struct { + // The type of the plugin file. + ContentType CustomPluginContentType `pulumi:"contentType"` + // A summary description of the custom plugin. + Description *string `pulumi:"description"` + Location CustomPluginLocation `pulumi:"location"` + // The name of the custom plugin. + Name *string `pulumi:"name"` + // An array of key-value pairs to apply to this resource. + Tags []aws.Tag `pulumi:"tags"` +} + +// The set of arguments for constructing a CustomPlugin resource. +type CustomPluginArgs struct { + // The type of the plugin file. + ContentType CustomPluginContentTypeInput + // A summary description of the custom plugin. + Description pulumi.StringPtrInput + Location CustomPluginLocationInput + // The name of the custom plugin. + Name pulumi.StringPtrInput + // An array of key-value pairs to apply to this resource. + Tags aws.TagArrayInput +} + +func (CustomPluginArgs) ElementType() reflect.Type { + return reflect.TypeOf((*customPluginArgs)(nil)).Elem() +} + +type CustomPluginInput interface { + pulumi.Input + + ToCustomPluginOutput() CustomPluginOutput + ToCustomPluginOutputWithContext(ctx context.Context) CustomPluginOutput +} + +func (*CustomPlugin) ElementType() reflect.Type { + return reflect.TypeOf((**CustomPlugin)(nil)).Elem() +} + +func (i *CustomPlugin) ToCustomPluginOutput() CustomPluginOutput { + return i.ToCustomPluginOutputWithContext(context.Background()) +} + +func (i *CustomPlugin) ToCustomPluginOutputWithContext(ctx context.Context) CustomPluginOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomPluginOutput) +} + +type CustomPluginOutput struct{ *pulumi.OutputState } + +func (CustomPluginOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CustomPlugin)(nil)).Elem() +} + +func (o CustomPluginOutput) ToCustomPluginOutput() CustomPluginOutput { + return o +} + +func (o CustomPluginOutput) ToCustomPluginOutputWithContext(ctx context.Context) CustomPluginOutput { + return o +} + +// The type of the plugin file. +func (o CustomPluginOutput) ContentType() CustomPluginContentTypeOutput { + return o.ApplyT(func(v *CustomPlugin) CustomPluginContentTypeOutput { return v.ContentType }).(CustomPluginContentTypeOutput) +} + +// The Amazon Resource Name (ARN) of the custom plugin to use. +func (o CustomPluginOutput) CustomPluginArn() pulumi.StringOutput { + return o.ApplyT(func(v *CustomPlugin) pulumi.StringOutput { return v.CustomPluginArn }).(pulumi.StringOutput) +} + +// A summary description of the custom plugin. +func (o CustomPluginOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CustomPlugin) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +func (o CustomPluginOutput) FileDescription() CustomPluginFileDescriptionOutput { + return o.ApplyT(func(v *CustomPlugin) CustomPluginFileDescriptionOutput { return v.FileDescription }).(CustomPluginFileDescriptionOutput) +} + +func (o CustomPluginOutput) Location() CustomPluginLocationOutput { + return o.ApplyT(func(v *CustomPlugin) CustomPluginLocationOutput { return v.Location }).(CustomPluginLocationOutput) +} + +// The name of the custom plugin. +func (o CustomPluginOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *CustomPlugin) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The revision of the custom plugin. +func (o CustomPluginOutput) Revision() pulumi.IntOutput { + return o.ApplyT(func(v *CustomPlugin) pulumi.IntOutput { return v.Revision }).(pulumi.IntOutput) +} + +// An array of key-value pairs to apply to this resource. +func (o CustomPluginOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v *CustomPlugin) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*CustomPluginInput)(nil)).Elem(), &CustomPlugin{}) + pulumi.RegisterOutputType(CustomPluginOutput{}) +} diff --git a/sdk/go/aws/kafkaconnect/getCustomPlugin.go b/sdk/go/aws/kafkaconnect/getCustomPlugin.go new file mode 100644 index 0000000000..da10e6c05e --- /dev/null +++ b/sdk/go/aws/kafkaconnect/getCustomPlugin.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 kafkaconnect + +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" +) + +// An example resource schema demonstrating some basic constructs and validation rules. +func LookupCustomPlugin(ctx *pulumi.Context, args *LookupCustomPluginArgs, opts ...pulumi.InvokeOption) (*LookupCustomPluginResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupCustomPluginResult + err := ctx.Invoke("aws-native:kafkaconnect:getCustomPlugin", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupCustomPluginArgs struct { + // The Amazon Resource Name (ARN) of the custom plugin to use. + CustomPluginArn string `pulumi:"customPluginArn"` +} + +type LookupCustomPluginResult struct { + // The Amazon Resource Name (ARN) of the custom plugin to use. + CustomPluginArn *string `pulumi:"customPluginArn"` + FileDescription *CustomPluginFileDescription `pulumi:"fileDescription"` + // The revision of the custom plugin. + Revision *int `pulumi:"revision"` + // An array of key-value pairs to apply to this resource. + Tags []aws.Tag `pulumi:"tags"` +} + +func LookupCustomPluginOutput(ctx *pulumi.Context, args LookupCustomPluginOutputArgs, opts ...pulumi.InvokeOption) LookupCustomPluginResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupCustomPluginResult, error) { + args := v.(LookupCustomPluginArgs) + r, err := LookupCustomPlugin(ctx, &args, opts...) + var s LookupCustomPluginResult + if r != nil { + s = *r + } + return s, err + }).(LookupCustomPluginResultOutput) +} + +type LookupCustomPluginOutputArgs struct { + // The Amazon Resource Name (ARN) of the custom plugin to use. + CustomPluginArn pulumi.StringInput `pulumi:"customPluginArn"` +} + +func (LookupCustomPluginOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupCustomPluginArgs)(nil)).Elem() +} + +type LookupCustomPluginResultOutput struct{ *pulumi.OutputState } + +func (LookupCustomPluginResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupCustomPluginResult)(nil)).Elem() +} + +func (o LookupCustomPluginResultOutput) ToLookupCustomPluginResultOutput() LookupCustomPluginResultOutput { + return o +} + +func (o LookupCustomPluginResultOutput) ToLookupCustomPluginResultOutputWithContext(ctx context.Context) LookupCustomPluginResultOutput { + return o +} + +// The Amazon Resource Name (ARN) of the custom plugin to use. +func (o LookupCustomPluginResultOutput) CustomPluginArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupCustomPluginResult) *string { return v.CustomPluginArn }).(pulumi.StringPtrOutput) +} + +func (o LookupCustomPluginResultOutput) FileDescription() CustomPluginFileDescriptionPtrOutput { + return o.ApplyT(func(v LookupCustomPluginResult) *CustomPluginFileDescription { return v.FileDescription }).(CustomPluginFileDescriptionPtrOutput) +} + +// The revision of the custom plugin. +func (o LookupCustomPluginResultOutput) Revision() pulumi.IntPtrOutput { + return o.ApplyT(func(v LookupCustomPluginResult) *int { return v.Revision }).(pulumi.IntPtrOutput) +} + +// An array of key-value pairs to apply to this resource. +func (o LookupCustomPluginResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupCustomPluginResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupCustomPluginResultOutput{}) +} diff --git a/sdk/go/aws/kafkaconnect/getWorkerConfiguration.go b/sdk/go/aws/kafkaconnect/getWorkerConfiguration.go new file mode 100644 index 0000000000..c4904e369d --- /dev/null +++ b/sdk/go/aws/kafkaconnect/getWorkerConfiguration.go @@ -0,0 +1,93 @@ +// 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 kafkaconnect + +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 configuration of the workers, which are the processes that run the connector logic. +func LookupWorkerConfiguration(ctx *pulumi.Context, args *LookupWorkerConfigurationArgs, opts ...pulumi.InvokeOption) (*LookupWorkerConfigurationResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupWorkerConfigurationResult + err := ctx.Invoke("aws-native:kafkaconnect:getWorkerConfiguration", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupWorkerConfigurationArgs struct { + // The Amazon Resource Name (ARN) of the custom configuration. + WorkerConfigurationArn string `pulumi:"workerConfigurationArn"` +} + +type LookupWorkerConfigurationResult struct { + // The description of a revision of the worker configuration. + Revision *int `pulumi:"revision"` + // A collection of tags associated with a resource + Tags []aws.Tag `pulumi:"tags"` + // The Amazon Resource Name (ARN) of the custom configuration. + WorkerConfigurationArn *string `pulumi:"workerConfigurationArn"` +} + +func LookupWorkerConfigurationOutput(ctx *pulumi.Context, args LookupWorkerConfigurationOutputArgs, opts ...pulumi.InvokeOption) LookupWorkerConfigurationResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupWorkerConfigurationResult, error) { + args := v.(LookupWorkerConfigurationArgs) + r, err := LookupWorkerConfiguration(ctx, &args, opts...) + var s LookupWorkerConfigurationResult + if r != nil { + s = *r + } + return s, err + }).(LookupWorkerConfigurationResultOutput) +} + +type LookupWorkerConfigurationOutputArgs struct { + // The Amazon Resource Name (ARN) of the custom configuration. + WorkerConfigurationArn pulumi.StringInput `pulumi:"workerConfigurationArn"` +} + +func (LookupWorkerConfigurationOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupWorkerConfigurationArgs)(nil)).Elem() +} + +type LookupWorkerConfigurationResultOutput struct{ *pulumi.OutputState } + +func (LookupWorkerConfigurationResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupWorkerConfigurationResult)(nil)).Elem() +} + +func (o LookupWorkerConfigurationResultOutput) ToLookupWorkerConfigurationResultOutput() LookupWorkerConfigurationResultOutput { + return o +} + +func (o LookupWorkerConfigurationResultOutput) ToLookupWorkerConfigurationResultOutputWithContext(ctx context.Context) LookupWorkerConfigurationResultOutput { + return o +} + +// The description of a revision of the worker configuration. +func (o LookupWorkerConfigurationResultOutput) Revision() pulumi.IntPtrOutput { + return o.ApplyT(func(v LookupWorkerConfigurationResult) *int { return v.Revision }).(pulumi.IntPtrOutput) +} + +// A collection of tags associated with a resource +func (o LookupWorkerConfigurationResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupWorkerConfigurationResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + +// The Amazon Resource Name (ARN) of the custom configuration. +func (o LookupWorkerConfigurationResultOutput) WorkerConfigurationArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupWorkerConfigurationResult) *string { return v.WorkerConfigurationArn }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupWorkerConfigurationResultOutput{}) +} diff --git a/sdk/go/aws/kafkaconnect/init.go b/sdk/go/aws/kafkaconnect/init.go index 33e90df69e..4d34471a94 100644 --- a/sdk/go/aws/kafkaconnect/init.go +++ b/sdk/go/aws/kafkaconnect/init.go @@ -23,6 +23,10 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "aws-native:kafkaconnect:Connector": r = &Connector{} + case "aws-native:kafkaconnect:CustomPlugin": + r = &CustomPlugin{} + case "aws-native:kafkaconnect:WorkerConfiguration": + r = &WorkerConfiguration{} default: return nil, fmt.Errorf("unknown resource type: %s", typ) } diff --git a/sdk/go/aws/kafkaconnect/pulumiEnums.go b/sdk/go/aws/kafkaconnect/pulumiEnums.go index 980edffb4b..34af0b9995 100644 --- a/sdk/go/aws/kafkaconnect/pulumiEnums.go +++ b/sdk/go/aws/kafkaconnect/pulumiEnums.go @@ -342,13 +342,183 @@ func (in *connectorKafkaClusterEncryptionInTransitTypePtr) ToConnectorKafkaClust return pulumi.ToOutputWithContext(ctx, in).(ConnectorKafkaClusterEncryptionInTransitTypePtrOutput) } +// The type of the plugin file. +type CustomPluginContentType string + +const ( + CustomPluginContentTypeJar = CustomPluginContentType("JAR") + CustomPluginContentTypeZip = CustomPluginContentType("ZIP") +) + +func (CustomPluginContentType) ElementType() reflect.Type { + return reflect.TypeOf((*CustomPluginContentType)(nil)).Elem() +} + +func (e CustomPluginContentType) ToCustomPluginContentTypeOutput() CustomPluginContentTypeOutput { + return pulumi.ToOutput(e).(CustomPluginContentTypeOutput) +} + +func (e CustomPluginContentType) ToCustomPluginContentTypeOutputWithContext(ctx context.Context) CustomPluginContentTypeOutput { + return pulumi.ToOutputWithContext(ctx, e).(CustomPluginContentTypeOutput) +} + +func (e CustomPluginContentType) ToCustomPluginContentTypePtrOutput() CustomPluginContentTypePtrOutput { + return e.ToCustomPluginContentTypePtrOutputWithContext(context.Background()) +} + +func (e CustomPluginContentType) ToCustomPluginContentTypePtrOutputWithContext(ctx context.Context) CustomPluginContentTypePtrOutput { + return CustomPluginContentType(e).ToCustomPluginContentTypeOutputWithContext(ctx).ToCustomPluginContentTypePtrOutputWithContext(ctx) +} + +func (e CustomPluginContentType) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e CustomPluginContentType) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e CustomPluginContentType) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e CustomPluginContentType) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type CustomPluginContentTypeOutput struct{ *pulumi.OutputState } + +func (CustomPluginContentTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CustomPluginContentType)(nil)).Elem() +} + +func (o CustomPluginContentTypeOutput) ToCustomPluginContentTypeOutput() CustomPluginContentTypeOutput { + return o +} + +func (o CustomPluginContentTypeOutput) ToCustomPluginContentTypeOutputWithContext(ctx context.Context) CustomPluginContentTypeOutput { + return o +} + +func (o CustomPluginContentTypeOutput) ToCustomPluginContentTypePtrOutput() CustomPluginContentTypePtrOutput { + return o.ToCustomPluginContentTypePtrOutputWithContext(context.Background()) +} + +func (o CustomPluginContentTypeOutput) ToCustomPluginContentTypePtrOutputWithContext(ctx context.Context) CustomPluginContentTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CustomPluginContentType) *CustomPluginContentType { + return &v + }).(CustomPluginContentTypePtrOutput) +} + +func (o CustomPluginContentTypeOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o CustomPluginContentTypeOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e CustomPluginContentType) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o CustomPluginContentTypeOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o CustomPluginContentTypeOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e CustomPluginContentType) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type CustomPluginContentTypePtrOutput struct{ *pulumi.OutputState } + +func (CustomPluginContentTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CustomPluginContentType)(nil)).Elem() +} + +func (o CustomPluginContentTypePtrOutput) ToCustomPluginContentTypePtrOutput() CustomPluginContentTypePtrOutput { + return o +} + +func (o CustomPluginContentTypePtrOutput) ToCustomPluginContentTypePtrOutputWithContext(ctx context.Context) CustomPluginContentTypePtrOutput { + return o +} + +func (o CustomPluginContentTypePtrOutput) Elem() CustomPluginContentTypeOutput { + return o.ApplyT(func(v *CustomPluginContentType) CustomPluginContentType { + if v != nil { + return *v + } + var ret CustomPluginContentType + return ret + }).(CustomPluginContentTypeOutput) +} + +func (o CustomPluginContentTypePtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o CustomPluginContentTypePtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *CustomPluginContentType) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// CustomPluginContentTypeInput is an input type that accepts values of the CustomPluginContentType enum +// A concrete instance of `CustomPluginContentTypeInput` can be one of the following: +// +// CustomPluginContentTypeJar +// CustomPluginContentTypeZip +type CustomPluginContentTypeInput interface { + pulumi.Input + + ToCustomPluginContentTypeOutput() CustomPluginContentTypeOutput + ToCustomPluginContentTypeOutputWithContext(context.Context) CustomPluginContentTypeOutput +} + +var customPluginContentTypePtrType = reflect.TypeOf((**CustomPluginContentType)(nil)).Elem() + +type CustomPluginContentTypePtrInput interface { + pulumi.Input + + ToCustomPluginContentTypePtrOutput() CustomPluginContentTypePtrOutput + ToCustomPluginContentTypePtrOutputWithContext(context.Context) CustomPluginContentTypePtrOutput +} + +type customPluginContentTypePtr string + +func CustomPluginContentTypePtr(v string) CustomPluginContentTypePtrInput { + return (*customPluginContentTypePtr)(&v) +} + +func (*customPluginContentTypePtr) ElementType() reflect.Type { + return customPluginContentTypePtrType +} + +func (in *customPluginContentTypePtr) ToCustomPluginContentTypePtrOutput() CustomPluginContentTypePtrOutput { + return pulumi.ToOutput(in).(CustomPluginContentTypePtrOutput) +} + +func (in *customPluginContentTypePtr) ToCustomPluginContentTypePtrOutputWithContext(ctx context.Context) CustomPluginContentTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(CustomPluginContentTypePtrOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*ConnectorKafkaClusterClientAuthenticationTypeInput)(nil)).Elem(), ConnectorKafkaClusterClientAuthenticationType("NONE")) pulumi.RegisterInputType(reflect.TypeOf((*ConnectorKafkaClusterClientAuthenticationTypePtrInput)(nil)).Elem(), ConnectorKafkaClusterClientAuthenticationType("NONE")) pulumi.RegisterInputType(reflect.TypeOf((*ConnectorKafkaClusterEncryptionInTransitTypeInput)(nil)).Elem(), ConnectorKafkaClusterEncryptionInTransitType("PLAINTEXT")) pulumi.RegisterInputType(reflect.TypeOf((*ConnectorKafkaClusterEncryptionInTransitTypePtrInput)(nil)).Elem(), ConnectorKafkaClusterEncryptionInTransitType("PLAINTEXT")) + pulumi.RegisterInputType(reflect.TypeOf((*CustomPluginContentTypeInput)(nil)).Elem(), CustomPluginContentType("JAR")) + pulumi.RegisterInputType(reflect.TypeOf((*CustomPluginContentTypePtrInput)(nil)).Elem(), CustomPluginContentType("JAR")) pulumi.RegisterOutputType(ConnectorKafkaClusterClientAuthenticationTypeOutput{}) pulumi.RegisterOutputType(ConnectorKafkaClusterClientAuthenticationTypePtrOutput{}) pulumi.RegisterOutputType(ConnectorKafkaClusterEncryptionInTransitTypeOutput{}) pulumi.RegisterOutputType(ConnectorKafkaClusterEncryptionInTransitTypePtrOutput{}) + pulumi.RegisterOutputType(CustomPluginContentTypeOutput{}) + pulumi.RegisterOutputType(CustomPluginContentTypePtrOutput{}) } diff --git a/sdk/go/aws/kafkaconnect/pulumiTypes.go b/sdk/go/aws/kafkaconnect/pulumiTypes.go index dd0b99e6d0..02e675150c 100644 --- a/sdk/go/aws/kafkaconnect/pulumiTypes.go +++ b/sdk/go/aws/kafkaconnect/pulumiTypes.go @@ -2168,6 +2168,221 @@ func (o ConnectorWorkerLogDeliveryPtrOutput) S3() ConnectorS3LogDeliveryPtrOutpu }).(ConnectorS3LogDeliveryPtrOutput) } +// Details about the custom plugin file. +type CustomPluginFileDescription struct { + // The hex-encoded MD5 checksum of the custom plugin file. You can use it to validate the file. + FileMd5 *string `pulumi:"fileMd5"` + // The size in bytes of the custom plugin file. You can use it to validate the file. + FileSize *int `pulumi:"fileSize"` +} + +// Details about the custom plugin file. +type CustomPluginFileDescriptionOutput struct{ *pulumi.OutputState } + +func (CustomPluginFileDescriptionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CustomPluginFileDescription)(nil)).Elem() +} + +func (o CustomPluginFileDescriptionOutput) ToCustomPluginFileDescriptionOutput() CustomPluginFileDescriptionOutput { + return o +} + +func (o CustomPluginFileDescriptionOutput) ToCustomPluginFileDescriptionOutputWithContext(ctx context.Context) CustomPluginFileDescriptionOutput { + return o +} + +// The hex-encoded MD5 checksum of the custom plugin file. You can use it to validate the file. +func (o CustomPluginFileDescriptionOutput) FileMd5() pulumi.StringPtrOutput { + return o.ApplyT(func(v CustomPluginFileDescription) *string { return v.FileMd5 }).(pulumi.StringPtrOutput) +} + +// The size in bytes of the custom plugin file. You can use it to validate the file. +func (o CustomPluginFileDescriptionOutput) FileSize() pulumi.IntPtrOutput { + return o.ApplyT(func(v CustomPluginFileDescription) *int { return v.FileSize }).(pulumi.IntPtrOutput) +} + +type CustomPluginFileDescriptionPtrOutput struct{ *pulumi.OutputState } + +func (CustomPluginFileDescriptionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CustomPluginFileDescription)(nil)).Elem() +} + +func (o CustomPluginFileDescriptionPtrOutput) ToCustomPluginFileDescriptionPtrOutput() CustomPluginFileDescriptionPtrOutput { + return o +} + +func (o CustomPluginFileDescriptionPtrOutput) ToCustomPluginFileDescriptionPtrOutputWithContext(ctx context.Context) CustomPluginFileDescriptionPtrOutput { + return o +} + +func (o CustomPluginFileDescriptionPtrOutput) Elem() CustomPluginFileDescriptionOutput { + return o.ApplyT(func(v *CustomPluginFileDescription) CustomPluginFileDescription { + if v != nil { + return *v + } + var ret CustomPluginFileDescription + return ret + }).(CustomPluginFileDescriptionOutput) +} + +// The hex-encoded MD5 checksum of the custom plugin file. You can use it to validate the file. +func (o CustomPluginFileDescriptionPtrOutput) FileMd5() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CustomPluginFileDescription) *string { + if v == nil { + return nil + } + return v.FileMd5 + }).(pulumi.StringPtrOutput) +} + +// The size in bytes of the custom plugin file. You can use it to validate the file. +func (o CustomPluginFileDescriptionPtrOutput) FileSize() pulumi.IntPtrOutput { + return o.ApplyT(func(v *CustomPluginFileDescription) *int { + if v == nil { + return nil + } + return v.FileSize + }).(pulumi.IntPtrOutput) +} + +// Information about the location of a custom plugin. +type CustomPluginLocation struct { + S3Location CustomPluginS3Location `pulumi:"s3Location"` +} + +// CustomPluginLocationInput is an input type that accepts CustomPluginLocationArgs and CustomPluginLocationOutput values. +// You can construct a concrete instance of `CustomPluginLocationInput` via: +// +// CustomPluginLocationArgs{...} +type CustomPluginLocationInput interface { + pulumi.Input + + ToCustomPluginLocationOutput() CustomPluginLocationOutput + ToCustomPluginLocationOutputWithContext(context.Context) CustomPluginLocationOutput +} + +// Information about the location of a custom plugin. +type CustomPluginLocationArgs struct { + S3Location CustomPluginS3LocationInput `pulumi:"s3Location"` +} + +func (CustomPluginLocationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CustomPluginLocation)(nil)).Elem() +} + +func (i CustomPluginLocationArgs) ToCustomPluginLocationOutput() CustomPluginLocationOutput { + return i.ToCustomPluginLocationOutputWithContext(context.Background()) +} + +func (i CustomPluginLocationArgs) ToCustomPluginLocationOutputWithContext(ctx context.Context) CustomPluginLocationOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomPluginLocationOutput) +} + +// Information about the location of a custom plugin. +type CustomPluginLocationOutput struct{ *pulumi.OutputState } + +func (CustomPluginLocationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CustomPluginLocation)(nil)).Elem() +} + +func (o CustomPluginLocationOutput) ToCustomPluginLocationOutput() CustomPluginLocationOutput { + return o +} + +func (o CustomPluginLocationOutput) ToCustomPluginLocationOutputWithContext(ctx context.Context) CustomPluginLocationOutput { + return o +} + +func (o CustomPluginLocationOutput) S3Location() CustomPluginS3LocationOutput { + return o.ApplyT(func(v CustomPluginLocation) CustomPluginS3Location { return v.S3Location }).(CustomPluginS3LocationOutput) +} + +// The S3 bucket Amazon Resource Name (ARN), file key, and object version of the plugin file stored in Amazon S3. +type CustomPluginS3Location struct { + // The Amazon Resource Name (ARN) of an S3 bucket. + BucketArn string `pulumi:"bucketArn"` + // The file key for an object in an S3 bucket. + FileKey string `pulumi:"fileKey"` + // The version of an object in an S3 bucket. + ObjectVersion *string `pulumi:"objectVersion"` +} + +// CustomPluginS3LocationInput is an input type that accepts CustomPluginS3LocationArgs and CustomPluginS3LocationOutput values. +// You can construct a concrete instance of `CustomPluginS3LocationInput` via: +// +// CustomPluginS3LocationArgs{...} +type CustomPluginS3LocationInput interface { + pulumi.Input + + ToCustomPluginS3LocationOutput() CustomPluginS3LocationOutput + ToCustomPluginS3LocationOutputWithContext(context.Context) CustomPluginS3LocationOutput +} + +// The S3 bucket Amazon Resource Name (ARN), file key, and object version of the plugin file stored in Amazon S3. +type CustomPluginS3LocationArgs struct { + // The Amazon Resource Name (ARN) of an S3 bucket. + BucketArn pulumi.StringInput `pulumi:"bucketArn"` + // The file key for an object in an S3 bucket. + FileKey pulumi.StringInput `pulumi:"fileKey"` + // The version of an object in an S3 bucket. + ObjectVersion pulumi.StringPtrInput `pulumi:"objectVersion"` +} + +func (CustomPluginS3LocationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CustomPluginS3Location)(nil)).Elem() +} + +func (i CustomPluginS3LocationArgs) ToCustomPluginS3LocationOutput() CustomPluginS3LocationOutput { + return i.ToCustomPluginS3LocationOutputWithContext(context.Background()) +} + +func (i CustomPluginS3LocationArgs) ToCustomPluginS3LocationOutputWithContext(ctx context.Context) CustomPluginS3LocationOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomPluginS3LocationOutput) +} + +// The S3 bucket Amazon Resource Name (ARN), file key, and object version of the plugin file stored in Amazon S3. +type CustomPluginS3LocationOutput struct{ *pulumi.OutputState } + +func (CustomPluginS3LocationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CustomPluginS3Location)(nil)).Elem() +} + +func (o CustomPluginS3LocationOutput) ToCustomPluginS3LocationOutput() CustomPluginS3LocationOutput { + return o +} + +func (o CustomPluginS3LocationOutput) ToCustomPluginS3LocationOutputWithContext(ctx context.Context) CustomPluginS3LocationOutput { + return o +} + +// The Amazon Resource Name (ARN) of an S3 bucket. +func (o CustomPluginS3LocationOutput) BucketArn() pulumi.StringOutput { + return o.ApplyT(func(v CustomPluginS3Location) string { return v.BucketArn }).(pulumi.StringOutput) +} + +// The file key for an object in an S3 bucket. +func (o CustomPluginS3LocationOutput) FileKey() pulumi.StringOutput { + return o.ApplyT(func(v CustomPluginS3Location) string { return v.FileKey }).(pulumi.StringOutput) +} + +// The version of an object in an S3 bucket. +func (o CustomPluginS3LocationOutput) ObjectVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v CustomPluginS3Location) *string { return v.ObjectVersion }).(pulumi.StringPtrOutput) +} + +// A key-value pair to associate with a resource. +type CustomPluginTag 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"` +} + +type WorkerConfigurationTag struct { + Key string `pulumi:"key"` + Value string `pulumi:"value"` +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*ConnectorApacheKafkaClusterInput)(nil)).Elem(), ConnectorApacheKafkaClusterArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConnectorAutoScalingInput)(nil)).Elem(), ConnectorAutoScalingArgs{}) @@ -2198,6 +2413,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ConnectorWorkerConfigurationPtrInput)(nil)).Elem(), ConnectorWorkerConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConnectorWorkerLogDeliveryInput)(nil)).Elem(), ConnectorWorkerLogDeliveryArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConnectorWorkerLogDeliveryPtrInput)(nil)).Elem(), ConnectorWorkerLogDeliveryArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CustomPluginLocationInput)(nil)).Elem(), CustomPluginLocationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CustomPluginS3LocationInput)(nil)).Elem(), CustomPluginS3LocationArgs{}) pulumi.RegisterOutputType(ConnectorApacheKafkaClusterOutput{}) pulumi.RegisterOutputType(ConnectorAutoScalingOutput{}) pulumi.RegisterOutputType(ConnectorAutoScalingPtrOutput{}) @@ -2228,4 +2445,8 @@ func init() { pulumi.RegisterOutputType(ConnectorWorkerConfigurationPtrOutput{}) pulumi.RegisterOutputType(ConnectorWorkerLogDeliveryOutput{}) pulumi.RegisterOutputType(ConnectorWorkerLogDeliveryPtrOutput{}) + pulumi.RegisterOutputType(CustomPluginFileDescriptionOutput{}) + pulumi.RegisterOutputType(CustomPluginFileDescriptionPtrOutput{}) + pulumi.RegisterOutputType(CustomPluginLocationOutput{}) + pulumi.RegisterOutputType(CustomPluginS3LocationOutput{}) } diff --git a/sdk/go/aws/kafkaconnect/workerConfiguration.go b/sdk/go/aws/kafkaconnect/workerConfiguration.go new file mode 100644 index 0000000000..29dee6e8d0 --- /dev/null +++ b/sdk/go/aws/kafkaconnect/workerConfiguration.go @@ -0,0 +1,175 @@ +// 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 kafkaconnect + +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" +) + +// The configuration of the workers, which are the processes that run the connector logic. +type WorkerConfiguration struct { + pulumi.CustomResourceState + + // A summary description of the worker configuration. + Description pulumi.StringPtrOutput `pulumi:"description"` + // The name of the worker configuration. + Name pulumi.StringOutput `pulumi:"name"` + // Base64 encoded contents of connect-distributed.properties file. + PropertiesFileContent pulumi.StringOutput `pulumi:"propertiesFileContent"` + // The description of a revision of the worker configuration. + Revision pulumi.IntOutput `pulumi:"revision"` + // A collection of tags associated with a resource + Tags aws.TagArrayOutput `pulumi:"tags"` + // The Amazon Resource Name (ARN) of the custom configuration. + WorkerConfigurationArn pulumi.StringOutput `pulumi:"workerConfigurationArn"` +} + +// NewWorkerConfiguration registers a new resource with the given unique name, arguments, and options. +func NewWorkerConfiguration(ctx *pulumi.Context, + name string, args *WorkerConfigurationArgs, opts ...pulumi.ResourceOption) (*WorkerConfiguration, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.PropertiesFileContent == nil { + return nil, errors.New("invalid value for required argument 'PropertiesFileContent'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "description", + "name", + "propertiesFileContent", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource WorkerConfiguration + err := ctx.RegisterResource("aws-native:kafkaconnect:WorkerConfiguration", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetWorkerConfiguration gets an existing WorkerConfiguration 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 GetWorkerConfiguration(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *WorkerConfigurationState, opts ...pulumi.ResourceOption) (*WorkerConfiguration, error) { + var resource WorkerConfiguration + err := ctx.ReadResource("aws-native:kafkaconnect:WorkerConfiguration", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering WorkerConfiguration resources. +type workerConfigurationState struct { +} + +type WorkerConfigurationState struct { +} + +func (WorkerConfigurationState) ElementType() reflect.Type { + return reflect.TypeOf((*workerConfigurationState)(nil)).Elem() +} + +type workerConfigurationArgs struct { + // A summary description of the worker configuration. + Description *string `pulumi:"description"` + // The name of the worker configuration. + Name *string `pulumi:"name"` + // Base64 encoded contents of connect-distributed.properties file. + PropertiesFileContent string `pulumi:"propertiesFileContent"` + // A collection of tags associated with a resource + Tags []aws.Tag `pulumi:"tags"` +} + +// The set of arguments for constructing a WorkerConfiguration resource. +type WorkerConfigurationArgs struct { + // A summary description of the worker configuration. + Description pulumi.StringPtrInput + // The name of the worker configuration. + Name pulumi.StringPtrInput + // Base64 encoded contents of connect-distributed.properties file. + PropertiesFileContent pulumi.StringInput + // A collection of tags associated with a resource + Tags aws.TagArrayInput +} + +func (WorkerConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*workerConfigurationArgs)(nil)).Elem() +} + +type WorkerConfigurationInput interface { + pulumi.Input + + ToWorkerConfigurationOutput() WorkerConfigurationOutput + ToWorkerConfigurationOutputWithContext(ctx context.Context) WorkerConfigurationOutput +} + +func (*WorkerConfiguration) ElementType() reflect.Type { + return reflect.TypeOf((**WorkerConfiguration)(nil)).Elem() +} + +func (i *WorkerConfiguration) ToWorkerConfigurationOutput() WorkerConfigurationOutput { + return i.ToWorkerConfigurationOutputWithContext(context.Background()) +} + +func (i *WorkerConfiguration) ToWorkerConfigurationOutputWithContext(ctx context.Context) WorkerConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(WorkerConfigurationOutput) +} + +type WorkerConfigurationOutput struct{ *pulumi.OutputState } + +func (WorkerConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((**WorkerConfiguration)(nil)).Elem() +} + +func (o WorkerConfigurationOutput) ToWorkerConfigurationOutput() WorkerConfigurationOutput { + return o +} + +func (o WorkerConfigurationOutput) ToWorkerConfigurationOutputWithContext(ctx context.Context) WorkerConfigurationOutput { + return o +} + +// A summary description of the worker configuration. +func (o WorkerConfigurationOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *WorkerConfiguration) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// The name of the worker configuration. +func (o WorkerConfigurationOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *WorkerConfiguration) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Base64 encoded contents of connect-distributed.properties file. +func (o WorkerConfigurationOutput) PropertiesFileContent() pulumi.StringOutput { + return o.ApplyT(func(v *WorkerConfiguration) pulumi.StringOutput { return v.PropertiesFileContent }).(pulumi.StringOutput) +} + +// The description of a revision of the worker configuration. +func (o WorkerConfigurationOutput) Revision() pulumi.IntOutput { + return o.ApplyT(func(v *WorkerConfiguration) pulumi.IntOutput { return v.Revision }).(pulumi.IntOutput) +} + +// A collection of tags associated with a resource +func (o WorkerConfigurationOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v *WorkerConfiguration) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) +} + +// The Amazon Resource Name (ARN) of the custom configuration. +func (o WorkerConfigurationOutput) WorkerConfigurationArn() pulumi.StringOutput { + return o.ApplyT(func(v *WorkerConfiguration) pulumi.StringOutput { return v.WorkerConfigurationArn }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*WorkerConfigurationInput)(nil)).Elem(), &WorkerConfiguration{}) + pulumi.RegisterOutputType(WorkerConfigurationOutput{}) +} diff --git a/sdk/go/aws/logs/getLogGroup.go b/sdk/go/aws/logs/getLogGroup.go index 68c415d66a..bf496c87fc 100644 --- a/sdk/go/aws/logs/getLogGroup.go +++ b/sdk/go/aws/logs/getLogGroup.go @@ -12,7 +12,12 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Resource schema for AWS::Logs::LogGroup +// The “AWS::Logs::LogGroup“ resource specifies a log group. A log group defines common properties for log streams, such as their retention and access control rules. Each log stream must belong to one log group. +// +// You can create up to 1,000,000 log groups per Region per account. You must use the following guidelines when naming a log group: +// + Log group names must be unique within a Region for an AWS account. +// + Log group names can be between 1 and 512 characters long. +// + Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period). func LookupLogGroup(ctx *pulumi.Context, args *LookupLogGroupArgs, opts ...pulumi.InvokeOption) (*LookupLogGroupResult, error) { opts = internal.PkgInvokeDefaultOpts(opts) var rv LookupLogGroupResult @@ -24,30 +29,33 @@ func LookupLogGroup(ctx *pulumi.Context, args *LookupLogGroupArgs, opts ...pulum } type LookupLogGroupArgs struct { - // The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group. + // The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group. LogGroupName string `pulumi:"logGroupName"` } type LookupLogGroupResult struct { - // The CloudWatch log group ARN. Arn *string `pulumi:"arn"` - // The body of the policy document you want to use for this topic. - // - // You can only add one policy per topic. - // - // The policy must be in JSON string format. - // - // Length Constraints: Maximum length of 30720 + // Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks. + // For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html). // // Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property. DataProtectionPolicy interface{} `pulumi:"dataProtectionPolicy"` - // The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. + // The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data. + // To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested. + // If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error. + // Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) KmsKeyId *string `pulumi:"kmsKeyId"` - // The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class + // Specifies the log group class for this log group. There are two classes: + // + The ``Standard`` log class supports all CWL features. + // + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs. + // + // For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) LogGroupClass *LogGroupClass `pulumi:"logGroupClass"` - // The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653. + // The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653. + // To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). RetentionInDays *int `pulumi:"retentionInDays"` - // An array of key-value pairs to apply to this resource. + // An array of key-value pairs to apply to the log group. + // For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). Tags []aws.Tag `pulumi:"tags"` } @@ -65,7 +73,7 @@ func LookupLogGroupOutput(ctx *pulumi.Context, args LookupLogGroupOutputArgs, op } type LookupLogGroupOutputArgs struct { - // The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group. + // The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group. LogGroupName pulumi.StringInput `pulumi:"logGroupName"` } @@ -87,40 +95,49 @@ func (o LookupLogGroupResultOutput) ToLookupLogGroupResultOutputWithContext(ctx return o } -// The CloudWatch log group ARN. func (o LookupLogGroupResultOutput) Arn() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupLogGroupResult) *string { return v.Arn }).(pulumi.StringPtrOutput) } -// The body of the policy document you want to use for this topic. -// -// You can only add one policy per topic. -// -// The policy must be in JSON string format. +// Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks. // -// Length Constraints: Maximum length of 30720 +// For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html). // // Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property. func (o LookupLogGroupResultOutput) DataProtectionPolicy() pulumi.AnyOutput { return o.ApplyT(func(v LookupLogGroupResult) interface{} { return v.DataProtectionPolicy }).(pulumi.AnyOutput) } -// The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. +// The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data. +// +// To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested. +// If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error. +// Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) func (o LookupLogGroupResultOutput) KmsKeyId() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupLogGroupResult) *string { return v.KmsKeyId }).(pulumi.StringPtrOutput) } -// The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class +// Specifies the log group class for this log group. There are two classes: +// +// - The “Standard“ log class supports all CWL features. +// +// - The “Infrequent Access“ log class supports a subset of CWL features and incurs lower costs. +// +// For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) func (o LookupLogGroupResultOutput) LogGroupClass() LogGroupClassPtrOutput { return o.ApplyT(func(v LookupLogGroupResult) *LogGroupClass { return v.LogGroupClass }).(LogGroupClassPtrOutput) } -// The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653. +// The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653. +// +// To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). func (o LookupLogGroupResultOutput) RetentionInDays() pulumi.IntPtrOutput { return o.ApplyT(func(v LookupLogGroupResult) *int { return v.RetentionInDays }).(pulumi.IntPtrOutput) } -// An array of key-value pairs to apply to this resource. +// An array of key-value pairs to apply to the log group. +// +// For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). func (o LookupLogGroupResultOutput) Tags() aws.TagArrayOutput { return o.ApplyT(func(v LookupLogGroupResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) } diff --git a/sdk/go/aws/logs/getMetricFilter.go b/sdk/go/aws/logs/getMetricFilter.go index 9444344f98..2f29042275 100644 --- a/sdk/go/aws/logs/getMetricFilter.go +++ b/sdk/go/aws/logs/getMetricFilter.go @@ -11,7 +11,9 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Specifies a metric filter that describes how CloudWatch Logs extracts information from logs and transforms it into Amazon CloudWatch metrics. +// The “AWS::Logs::MetricFilter“ resource specifies a metric filter that describes how CWL extracts information from logs and transforms it into Amazon CloudWatch metrics. If you have multiple metric filters that are associated with a log group, all the filters are applied to the log streams in that group. +// +// The maximum number of metric filters that can be associated with a log group is 100. func LookupMetricFilter(ctx *pulumi.Context, args *LookupMetricFilterArgs, opts ...pulumi.InvokeOption) (*LookupMetricFilterResult, error) { opts = internal.PkgInvokeDefaultOpts(opts) var rv LookupMetricFilterResult @@ -23,16 +25,16 @@ func LookupMetricFilter(ctx *pulumi.Context, args *LookupMetricFilterArgs, opts } type LookupMetricFilterArgs struct { - // A name for the metric filter. + // The name of the metric filter. FilterName string `pulumi:"filterName"` - // Existing log group that you want to associate with this filter. + // The name of an existing log group that you want to associate with this metric filter. LogGroupName string `pulumi:"logGroupName"` } type LookupMetricFilterResult struct { - // Pattern that Logs follows to interpret each entry in a log. + // A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). FilterPattern *string `pulumi:"filterPattern"` - // A collection of information that defines how metric data gets emitted. + // The metric transformations. MetricTransformations []MetricFilterMetricTransformation `pulumi:"metricTransformations"` } @@ -50,9 +52,9 @@ func LookupMetricFilterOutput(ctx *pulumi.Context, args LookupMetricFilterOutput } type LookupMetricFilterOutputArgs struct { - // A name for the metric filter. + // The name of the metric filter. FilterName pulumi.StringInput `pulumi:"filterName"` - // Existing log group that you want to associate with this filter. + // The name of an existing log group that you want to associate with this metric filter. LogGroupName pulumi.StringInput `pulumi:"logGroupName"` } @@ -74,12 +76,12 @@ func (o LookupMetricFilterResultOutput) ToLookupMetricFilterResultOutputWithCont return o } -// Pattern that Logs follows to interpret each entry in a log. +// A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). func (o LookupMetricFilterResultOutput) FilterPattern() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupMetricFilterResult) *string { return v.FilterPattern }).(pulumi.StringPtrOutput) } -// A collection of information that defines how metric data gets emitted. +// The metric transformations. func (o LookupMetricFilterResultOutput) MetricTransformations() MetricFilterMetricTransformationArrayOutput { return o.ApplyT(func(v LookupMetricFilterResult) []MetricFilterMetricTransformation { return v.MetricTransformations }).(MetricFilterMetricTransformationArrayOutput) } diff --git a/sdk/go/aws/logs/getSubscriptionFilter.go b/sdk/go/aws/logs/getSubscriptionFilter.go index 3477541d11..cc5b547f33 100644 --- a/sdk/go/aws/logs/getSubscriptionFilter.go +++ b/sdk/go/aws/logs/getSubscriptionFilter.go @@ -11,7 +11,17 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. +// The “AWS::Logs::SubscriptionFilter“ resource specifies a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. Currently, the supported destinations are: +// +// - An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery. +// +// - A logical destination that belongs to a different account, for cross-account delivery. +// +// - An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery. +// +// - An LAMlong function that belongs to the same account as the subscription filter, for same-account delivery. +// +// There can be as many as two subscription filters associated with a log group. func LookupSubscriptionFilter(ctx *pulumi.Context, args *LookupSubscriptionFilterArgs, opts ...pulumi.InvokeOption) (*LookupSubscriptionFilterResult, error) { opts = internal.PkgInvokeDefaultOpts(opts) var rv LookupSubscriptionFilterResult @@ -23,20 +33,20 @@ func LookupSubscriptionFilter(ctx *pulumi.Context, args *LookupSubscriptionFilte } type LookupSubscriptionFilterArgs struct { - // The name of the filter generated by resource. + // The name of the subscription filter. FilterName string `pulumi:"filterName"` - // Existing log group that you want to associate with this filter. + // The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events. LogGroupName string `pulumi:"logGroupName"` } type LookupSubscriptionFilterResult struct { // The Amazon Resource Name (ARN) of the destination. DestinationArn *string `pulumi:"destinationArn"` - // The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. + // The method used to distribute log data to the destination, which can be either random or grouped by log stream. Distribution *SubscriptionFilterDistribution `pulumi:"distribution"` - // The filtering expressions that restrict what gets delivered to the destination AWS resource. + // The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). FilterPattern *string `pulumi:"filterPattern"` - // The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. + // The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. RoleArn *string `pulumi:"roleArn"` } @@ -54,9 +64,9 @@ func LookupSubscriptionFilterOutput(ctx *pulumi.Context, args LookupSubscription } type LookupSubscriptionFilterOutputArgs struct { - // The name of the filter generated by resource. + // The name of the subscription filter. FilterName pulumi.StringInput `pulumi:"filterName"` - // Existing log group that you want to associate with this filter. + // The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events. LogGroupName pulumi.StringInput `pulumi:"logGroupName"` } @@ -83,17 +93,17 @@ func (o LookupSubscriptionFilterResultOutput) DestinationArn() pulumi.StringPtrO return o.ApplyT(func(v LookupSubscriptionFilterResult) *string { return v.DestinationArn }).(pulumi.StringPtrOutput) } -// The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. +// The method used to distribute log data to the destination, which can be either random or grouped by log stream. func (o LookupSubscriptionFilterResultOutput) Distribution() SubscriptionFilterDistributionPtrOutput { return o.ApplyT(func(v LookupSubscriptionFilterResult) *SubscriptionFilterDistribution { return v.Distribution }).(SubscriptionFilterDistributionPtrOutput) } -// The filtering expressions that restrict what gets delivered to the destination AWS resource. +// The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). func (o LookupSubscriptionFilterResultOutput) FilterPattern() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupSubscriptionFilterResult) *string { return v.FilterPattern }).(pulumi.StringPtrOutput) } -// The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. +// The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. func (o LookupSubscriptionFilterResultOutput) RoleArn() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupSubscriptionFilterResult) *string { return v.RoleArn }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/logs/logGroup.go b/sdk/go/aws/logs/logGroup.go index 4e9feade7e..ee0ee20ae9 100644 --- a/sdk/go/aws/logs/logGroup.go +++ b/sdk/go/aws/logs/logGroup.go @@ -12,31 +12,39 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Resource schema for AWS::Logs::LogGroup +// The “AWS::Logs::LogGroup“ resource specifies a log group. A log group defines common properties for log streams, such as their retention and access control rules. Each log stream must belong to one log group. +// +// You can create up to 1,000,000 log groups per Region per account. You must use the following guidelines when naming a log group: +// + Log group names must be unique within a Region for an AWS account. +// + Log group names can be between 1 and 512 characters long. +// + Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period). type LogGroup struct { pulumi.CustomResourceState - // The CloudWatch log group ARN. Arn pulumi.StringOutput `pulumi:"arn"` - // The body of the policy document you want to use for this topic. - // - // You can only add one policy per topic. - // - // The policy must be in JSON string format. - // - // Length Constraints: Maximum length of 30720 + // Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks. + // For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html). // // Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property. DataProtectionPolicy pulumi.AnyOutput `pulumi:"dataProtectionPolicy"` - // The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. + // The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data. + // To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested. + // If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error. + // Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) KmsKeyId pulumi.StringPtrOutput `pulumi:"kmsKeyId"` - // The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class + // Specifies the log group class for this log group. There are two classes: + // + The ``Standard`` log class supports all CWL features. + // + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs. + // + // For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) LogGroupClass LogGroupClassPtrOutput `pulumi:"logGroupClass"` - // The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group. + // The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group. LogGroupName pulumi.StringPtrOutput `pulumi:"logGroupName"` - // The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653. + // The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653. + // To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). RetentionInDays pulumi.IntPtrOutput `pulumi:"retentionInDays"` - // An array of key-value pairs to apply to this resource. + // An array of key-value pairs to apply to the log group. + // For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). Tags aws.TagArrayOutput `pulumi:"tags"` } @@ -84,49 +92,57 @@ func (LogGroupState) ElementType() reflect.Type { } type logGroupArgs struct { - // The body of the policy document you want to use for this topic. - // - // You can only add one policy per topic. - // - // The policy must be in JSON string format. - // - // Length Constraints: Maximum length of 30720 + // Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks. + // For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html). // // Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property. DataProtectionPolicy interface{} `pulumi:"dataProtectionPolicy"` - // The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. + // The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data. + // To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested. + // If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error. + // Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) KmsKeyId *string `pulumi:"kmsKeyId"` - // The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class + // Specifies the log group class for this log group. There are two classes: + // + The ``Standard`` log class supports all CWL features. + // + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs. + // + // For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) LogGroupClass *LogGroupClass `pulumi:"logGroupClass"` - // The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group. + // The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group. LogGroupName *string `pulumi:"logGroupName"` - // The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653. + // The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653. + // To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). RetentionInDays *int `pulumi:"retentionInDays"` - // An array of key-value pairs to apply to this resource. + // An array of key-value pairs to apply to the log group. + // For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). Tags []aws.Tag `pulumi:"tags"` } // The set of arguments for constructing a LogGroup resource. type LogGroupArgs struct { - // The body of the policy document you want to use for this topic. - // - // You can only add one policy per topic. - // - // The policy must be in JSON string format. - // - // Length Constraints: Maximum length of 30720 + // Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks. + // For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html). // // Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property. DataProtectionPolicy pulumi.Input - // The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. + // The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data. + // To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested. + // If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error. + // Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) KmsKeyId pulumi.StringPtrInput - // The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class + // Specifies the log group class for this log group. There are two classes: + // + The ``Standard`` log class supports all CWL features. + // + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs. + // + // For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) LogGroupClass LogGroupClassPtrInput - // The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group. + // The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group. LogGroupName pulumi.StringPtrInput - // The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653. + // The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653. + // To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). RetentionInDays pulumi.IntPtrInput - // An array of key-value pairs to apply to this resource. + // An array of key-value pairs to apply to the log group. + // For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). Tags aws.TagArrayInput } @@ -167,45 +183,54 @@ func (o LogGroupOutput) ToLogGroupOutputWithContext(ctx context.Context) LogGrou return o } -// The CloudWatch log group ARN. func (o LogGroupOutput) Arn() pulumi.StringOutput { return o.ApplyT(func(v *LogGroup) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) } -// The body of the policy document you want to use for this topic. -// -// You can only add one policy per topic. +// Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks. // -// The policy must be in JSON string format. -// -// Length Constraints: Maximum length of 30720 +// For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html). // // Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property. func (o LogGroupOutput) DataProtectionPolicy() pulumi.AnyOutput { return o.ApplyT(func(v *LogGroup) pulumi.AnyOutput { return v.DataProtectionPolicy }).(pulumi.AnyOutput) } -// The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. +// The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data. +// +// To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested. +// If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error. +// Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) func (o LogGroupOutput) KmsKeyId() pulumi.StringPtrOutput { return o.ApplyT(func(v *LogGroup) pulumi.StringPtrOutput { return v.KmsKeyId }).(pulumi.StringPtrOutput) } -// The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class +// Specifies the log group class for this log group. There are two classes: +// +// - The “Standard“ log class supports all CWL features. +// +// - The “Infrequent Access“ log class supports a subset of CWL features and incurs lower costs. +// +// For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) func (o LogGroupOutput) LogGroupClass() LogGroupClassPtrOutput { return o.ApplyT(func(v *LogGroup) LogGroupClassPtrOutput { return v.LogGroupClass }).(LogGroupClassPtrOutput) } -// The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group. +// The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group. func (o LogGroupOutput) LogGroupName() pulumi.StringPtrOutput { return o.ApplyT(func(v *LogGroup) pulumi.StringPtrOutput { return v.LogGroupName }).(pulumi.StringPtrOutput) } -// The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653. +// The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653. +// +// To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). func (o LogGroupOutput) RetentionInDays() pulumi.IntPtrOutput { return o.ApplyT(func(v *LogGroup) pulumi.IntPtrOutput { return v.RetentionInDays }).(pulumi.IntPtrOutput) } -// An array of key-value pairs to apply to this resource. +// An array of key-value pairs to apply to the log group. +// +// For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). func (o LogGroupOutput) Tags() aws.TagArrayOutput { return o.ApplyT(func(v *LogGroup) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) } diff --git a/sdk/go/aws/logs/metricFilter.go b/sdk/go/aws/logs/metricFilter.go index 2f62151ffe..68aaa9f4f3 100644 --- a/sdk/go/aws/logs/metricFilter.go +++ b/sdk/go/aws/logs/metricFilter.go @@ -12,17 +12,19 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Specifies a metric filter that describes how CloudWatch Logs extracts information from logs and transforms it into Amazon CloudWatch metrics. +// The “AWS::Logs::MetricFilter“ resource specifies a metric filter that describes how CWL extracts information from logs and transforms it into Amazon CloudWatch metrics. If you have multiple metric filters that are associated with a log group, all the filters are applied to the log streams in that group. +// +// The maximum number of metric filters that can be associated with a log group is 100. type MetricFilter struct { pulumi.CustomResourceState - // A name for the metric filter. + // The name of the metric filter. FilterName pulumi.StringPtrOutput `pulumi:"filterName"` - // Pattern that Logs follows to interpret each entry in a log. + // A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). FilterPattern pulumi.StringOutput `pulumi:"filterPattern"` - // Existing log group that you want to associate with this filter. + // The name of an existing log group that you want to associate with this metric filter. LogGroupName pulumi.StringOutput `pulumi:"logGroupName"` - // A collection of information that defines how metric data gets emitted. + // The metric transformations. MetricTransformations MetricFilterMetricTransformationArrayOutput `pulumi:"metricTransformations"` } @@ -80,25 +82,25 @@ func (MetricFilterState) ElementType() reflect.Type { } type metricFilterArgs struct { - // A name for the metric filter. + // The name of the metric filter. FilterName *string `pulumi:"filterName"` - // Pattern that Logs follows to interpret each entry in a log. + // A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). FilterPattern string `pulumi:"filterPattern"` - // Existing log group that you want to associate with this filter. + // The name of an existing log group that you want to associate with this metric filter. LogGroupName string `pulumi:"logGroupName"` - // A collection of information that defines how metric data gets emitted. + // The metric transformations. MetricTransformations []MetricFilterMetricTransformation `pulumi:"metricTransformations"` } // The set of arguments for constructing a MetricFilter resource. type MetricFilterArgs struct { - // A name for the metric filter. + // The name of the metric filter. FilterName pulumi.StringPtrInput - // Pattern that Logs follows to interpret each entry in a log. + // A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). FilterPattern pulumi.StringInput - // Existing log group that you want to associate with this filter. + // The name of an existing log group that you want to associate with this metric filter. LogGroupName pulumi.StringInput - // A collection of information that defines how metric data gets emitted. + // The metric transformations. MetricTransformations MetricFilterMetricTransformationArrayInput } @@ -139,22 +141,22 @@ func (o MetricFilterOutput) ToMetricFilterOutputWithContext(ctx context.Context) return o } -// A name for the metric filter. +// The name of the metric filter. func (o MetricFilterOutput) FilterName() pulumi.StringPtrOutput { return o.ApplyT(func(v *MetricFilter) pulumi.StringPtrOutput { return v.FilterName }).(pulumi.StringPtrOutput) } -// Pattern that Logs follows to interpret each entry in a log. +// A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). func (o MetricFilterOutput) FilterPattern() pulumi.StringOutput { return o.ApplyT(func(v *MetricFilter) pulumi.StringOutput { return v.FilterPattern }).(pulumi.StringOutput) } -// Existing log group that you want to associate with this filter. +// The name of an existing log group that you want to associate with this metric filter. func (o MetricFilterOutput) LogGroupName() pulumi.StringOutput { return o.ApplyT(func(v *MetricFilter) pulumi.StringOutput { return v.LogGroupName }).(pulumi.StringOutput) } -// A collection of information that defines how metric data gets emitted. +// The metric transformations. func (o MetricFilterOutput) MetricTransformations() MetricFilterMetricTransformationArrayOutput { return o.ApplyT(func(v *MetricFilter) MetricFilterMetricTransformationArrayOutput { return v.MetricTransformations }).(MetricFilterMetricTransformationArrayOutput) } diff --git a/sdk/go/aws/logs/pulumiEnums.go b/sdk/go/aws/logs/pulumiEnums.go index 54b045cddb..4f666ef08e 100644 --- a/sdk/go/aws/logs/pulumiEnums.go +++ b/sdk/go/aws/logs/pulumiEnums.go @@ -512,7 +512,13 @@ func (in *logAnomalyDetectorEvaluationFrequencyPtr) ToLogAnomalyDetectorEvaluati return pulumi.ToOutputWithContext(ctx, in).(LogAnomalyDetectorEvaluationFrequencyPtrOutput) } -// The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class +// Specifies the log group class for this log group. There are two classes: +// +// - The “Standard“ log class supports all CWL features. +// +// - The “Infrequent Access“ log class supports a subset of CWL features and incurs lower costs. +// +// For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) type LogGroupClass string const ( @@ -678,7 +684,7 @@ func (in *logGroupClassPtr) ToLogGroupClassPtrOutputWithContext(ctx context.Cont return pulumi.ToOutputWithContext(ctx, in).(LogGroupClassPtrOutput) } -// The unit to assign to the metric. If you omit this, the unit is set as None. +// The unit to assign to the metric. If you omit this, the unit is set as “None“. type MetricFilterMetricTransformationUnit string const ( @@ -894,7 +900,7 @@ func (in *metricFilterMetricTransformationUnitPtr) ToMetricFilterMetricTransform return pulumi.ToOutputWithContext(ctx, in).(MetricFilterMetricTransformationUnitPtrOutput) } -// The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. +// The method used to distribute log data to the destination, which can be either random or grouped by log stream. type SubscriptionFilterDistribution string const ( diff --git a/sdk/go/aws/logs/pulumiTypes.go b/sdk/go/aws/logs/pulumiTypes.go index 3e2c2b354f..f34b8d403d 100644 --- a/sdk/go/aws/logs/pulumiTypes.go +++ b/sdk/go/aws/logs/pulumiTypes.go @@ -143,19 +143,23 @@ type DeliveryTag struct { Value string `pulumi:"value"` } -// A key-value pair to associate with a resource. type LogGroupTag 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. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., :, /, =, +, - and @. + Key string `pulumi:"key"` Value string `pulumi:"value"` } -// the key-value pairs that further define a metric. +// Specifies the CW metric dimensions to publish with this metric. +// +// Because dimensions are part of the unique identifier for a metric, whenever a unique dimension name/value pair is extracted from your logs, you are creating a new variation of that metric. +// For more information about publishing dimensions with metrics created by metric filters, see [Publishing dimensions with metrics from values in JSON or space-delimited log events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html#logs-metric-filters-dimensions). +// Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. +// To help prevent accidental high charges, Amazon disables a metric filter if it generates 1000 different name/value pairs for the dimensions that you have specified within a certain amount of time. +// You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). type MetricFilterDimension struct { - // The key of the dimension. Maximum length of 255. + // The name for the CW metric dimension that the metric filter creates. + // Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon (:). Key string `pulumi:"key"` - // The value of the dimension. Maximum length of 255. + // The log event field that will contain the value for this dimension. This dimension will only be published for a metric if the value is found in the log event. For example, ``$.eventType`` for JSON log events, or ``$server`` for space-delimited log events. Value string `pulumi:"value"` } @@ -170,11 +174,18 @@ type MetricFilterDimensionInput interface { ToMetricFilterDimensionOutputWithContext(context.Context) MetricFilterDimensionOutput } -// the key-value pairs that further define a metric. +// Specifies the CW metric dimensions to publish with this metric. +// +// Because dimensions are part of the unique identifier for a metric, whenever a unique dimension name/value pair is extracted from your logs, you are creating a new variation of that metric. +// For more information about publishing dimensions with metrics created by metric filters, see [Publishing dimensions with metrics from values in JSON or space-delimited log events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html#logs-metric-filters-dimensions). +// Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. +// To help prevent accidental high charges, Amazon disables a metric filter if it generates 1000 different name/value pairs for the dimensions that you have specified within a certain amount of time. +// You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). type MetricFilterDimensionArgs struct { - // The key of the dimension. Maximum length of 255. + // The name for the CW metric dimension that the metric filter creates. + // Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon (:). Key pulumi.StringInput `pulumi:"key"` - // The value of the dimension. Maximum length of 255. + // The log event field that will contain the value for this dimension. This dimension will only be published for a metric if the value is found in the log event. For example, ``$.eventType`` for JSON log events, or ``$server`` for space-delimited log events. Value pulumi.StringInput `pulumi:"value"` } @@ -215,7 +226,13 @@ func (i MetricFilterDimensionArray) ToMetricFilterDimensionArrayOutputWithContex return pulumi.ToOutputWithContext(ctx, i).(MetricFilterDimensionArrayOutput) } -// the key-value pairs that further define a metric. +// Specifies the CW metric dimensions to publish with this metric. +// +// Because dimensions are part of the unique identifier for a metric, whenever a unique dimension name/value pair is extracted from your logs, you are creating a new variation of that metric. +// For more information about publishing dimensions with metrics created by metric filters, see [Publishing dimensions with metrics from values in JSON or space-delimited log events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html#logs-metric-filters-dimensions). +// Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. +// To help prevent accidental high charges, Amazon disables a metric filter if it generates 1000 different name/value pairs for the dimensions that you have specified within a certain amount of time. +// You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). type MetricFilterDimensionOutput struct{ *pulumi.OutputState } func (MetricFilterDimensionOutput) ElementType() reflect.Type { @@ -230,12 +247,14 @@ func (o MetricFilterDimensionOutput) ToMetricFilterDimensionOutputWithContext(ct return o } -// The key of the dimension. Maximum length of 255. +// The name for the CW metric dimension that the metric filter creates. +// +// Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon (:). func (o MetricFilterDimensionOutput) Key() pulumi.StringOutput { return o.ApplyT(func(v MetricFilterDimension) string { return v.Key }).(pulumi.StringOutput) } -// The value of the dimension. Maximum length of 255. +// The log event field that will contain the value for this dimension. This dimension will only be published for a metric if the value is found in the log event. For example, “$.eventType“ for JSON log events, or “$server“ for space-delimited log events. func (o MetricFilterDimensionOutput) Value() pulumi.StringOutput { return o.ApplyT(func(v MetricFilterDimension) string { return v.Value }).(pulumi.StringOutput) } @@ -260,18 +279,22 @@ func (o MetricFilterDimensionArrayOutput) Index(i pulumi.IntInput) MetricFilterD }).(MetricFilterDimensionOutput) } +// “MetricTransformation“ is a property of the “AWS::Logs::MetricFilter“ resource that describes how to transform log streams into a CloudWatch metric. type MetricFilterMetricTransformation struct { - // The value to emit when a filter pattern does not match a log event. This value can be null. + // (Optional) The value to emit when a filter pattern does not match a log event. This value can be null. DefaultValue *float64 `pulumi:"defaultValue"` - // Dimensions are the key-value pairs that further define a metric + // The fields to use as dimensions for the metric. One metric filter can include as many as three dimensions. + // Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. + // CloudWatch Logs disables a metric filter if it generates 1000 different name/value pairs for your specified dimensions within a certain amount of time. This helps to prevent accidental high charges. + // You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). Dimensions []MetricFilterDimension `pulumi:"dimensions"` - // The name of the CloudWatch metric. Metric name must be in ASCII format. + // The name of the CloudWatch metric. MetricName string `pulumi:"metricName"` - // The namespace of the CloudWatch metric. + // A custom namespace to contain your metric in CloudWatch. Use namespaces to group together metrics that are similar. For more information, see [Namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace). MetricNamespace string `pulumi:"metricNamespace"` - // The value to publish to the CloudWatch metric when a filter pattern matches a log event. + // The value that is published to the CloudWatch metric. For example, if you're counting the occurrences of a particular term like ``Error``, specify 1 for the metric value. If you're counting the number of bytes transferred, reference the value that is in the log event by using $. followed by the name of the field that you specified in the filter pattern, such as ``$.size``. MetricValue string `pulumi:"metricValue"` - // The unit to assign to the metric. If you omit this, the unit is set as None. + // The unit to assign to the metric. If you omit this, the unit is set as ``None``. Unit *MetricFilterMetricTransformationUnit `pulumi:"unit"` } @@ -286,18 +309,22 @@ type MetricFilterMetricTransformationInput interface { ToMetricFilterMetricTransformationOutputWithContext(context.Context) MetricFilterMetricTransformationOutput } +// “MetricTransformation“ is a property of the “AWS::Logs::MetricFilter“ resource that describes how to transform log streams into a CloudWatch metric. type MetricFilterMetricTransformationArgs struct { - // The value to emit when a filter pattern does not match a log event. This value can be null. + // (Optional) The value to emit when a filter pattern does not match a log event. This value can be null. DefaultValue pulumi.Float64PtrInput `pulumi:"defaultValue"` - // Dimensions are the key-value pairs that further define a metric + // The fields to use as dimensions for the metric. One metric filter can include as many as three dimensions. + // Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. + // CloudWatch Logs disables a metric filter if it generates 1000 different name/value pairs for your specified dimensions within a certain amount of time. This helps to prevent accidental high charges. + // You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). Dimensions MetricFilterDimensionArrayInput `pulumi:"dimensions"` - // The name of the CloudWatch metric. Metric name must be in ASCII format. + // The name of the CloudWatch metric. MetricName pulumi.StringInput `pulumi:"metricName"` - // The namespace of the CloudWatch metric. + // A custom namespace to contain your metric in CloudWatch. Use namespaces to group together metrics that are similar. For more information, see [Namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace). MetricNamespace pulumi.StringInput `pulumi:"metricNamespace"` - // The value to publish to the CloudWatch metric when a filter pattern matches a log event. + // The value that is published to the CloudWatch metric. For example, if you're counting the occurrences of a particular term like ``Error``, specify 1 for the metric value. If you're counting the number of bytes transferred, reference the value that is in the log event by using $. followed by the name of the field that you specified in the filter pattern, such as ``$.size``. MetricValue pulumi.StringInput `pulumi:"metricValue"` - // The unit to assign to the metric. If you omit this, the unit is set as None. + // The unit to assign to the metric. If you omit this, the unit is set as ``None``. Unit MetricFilterMetricTransformationUnitPtrInput `pulumi:"unit"` } @@ -338,6 +365,7 @@ func (i MetricFilterMetricTransformationArray) ToMetricFilterMetricTransformatio return pulumi.ToOutputWithContext(ctx, i).(MetricFilterMetricTransformationArrayOutput) } +// “MetricTransformation“ is a property of the “AWS::Logs::MetricFilter“ resource that describes how to transform log streams into a CloudWatch metric. type MetricFilterMetricTransformationOutput struct{ *pulumi.OutputState } func (MetricFilterMetricTransformationOutput) ElementType() reflect.Type { @@ -352,32 +380,36 @@ func (o MetricFilterMetricTransformationOutput) ToMetricFilterMetricTransformati return o } -// The value to emit when a filter pattern does not match a log event. This value can be null. +// (Optional) The value to emit when a filter pattern does not match a log event. This value can be null. func (o MetricFilterMetricTransformationOutput) DefaultValue() pulumi.Float64PtrOutput { return o.ApplyT(func(v MetricFilterMetricTransformation) *float64 { return v.DefaultValue }).(pulumi.Float64PtrOutput) } -// Dimensions are the key-value pairs that further define a metric +// The fields to use as dimensions for the metric. One metric filter can include as many as three dimensions. +// +// Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. +// CloudWatch Logs disables a metric filter if it generates 1000 different name/value pairs for your specified dimensions within a certain amount of time. This helps to prevent accidental high charges. +// You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). func (o MetricFilterMetricTransformationOutput) Dimensions() MetricFilterDimensionArrayOutput { return o.ApplyT(func(v MetricFilterMetricTransformation) []MetricFilterDimension { return v.Dimensions }).(MetricFilterDimensionArrayOutput) } -// The name of the CloudWatch metric. Metric name must be in ASCII format. +// The name of the CloudWatch metric. func (o MetricFilterMetricTransformationOutput) MetricName() pulumi.StringOutput { return o.ApplyT(func(v MetricFilterMetricTransformation) string { return v.MetricName }).(pulumi.StringOutput) } -// The namespace of the CloudWatch metric. +// A custom namespace to contain your metric in CloudWatch. Use namespaces to group together metrics that are similar. For more information, see [Namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace). func (o MetricFilterMetricTransformationOutput) MetricNamespace() pulumi.StringOutput { return o.ApplyT(func(v MetricFilterMetricTransformation) string { return v.MetricNamespace }).(pulumi.StringOutput) } -// The value to publish to the CloudWatch metric when a filter pattern matches a log event. +// The value that is published to the CloudWatch metric. For example, if you're counting the occurrences of a particular term like “Error“, specify 1 for the metric value. If you're counting the number of bytes transferred, reference the value that is in the log event by using $. followed by the name of the field that you specified in the filter pattern, such as “$.size“. func (o MetricFilterMetricTransformationOutput) MetricValue() pulumi.StringOutput { return o.ApplyT(func(v MetricFilterMetricTransformation) string { return v.MetricValue }).(pulumi.StringOutput) } -// The unit to assign to the metric. If you omit this, the unit is set as None. +// The unit to assign to the metric. If you omit this, the unit is set as “None“. func (o MetricFilterMetricTransformationOutput) Unit() MetricFilterMetricTransformationUnitPtrOutput { return o.ApplyT(func(v MetricFilterMetricTransformation) *MetricFilterMetricTransformationUnit { return v.Unit }).(MetricFilterMetricTransformationUnitPtrOutput) } diff --git a/sdk/go/aws/logs/subscriptionFilter.go b/sdk/go/aws/logs/subscriptionFilter.go index 0ddecc664d..85e15b1f68 100644 --- a/sdk/go/aws/logs/subscriptionFilter.go +++ b/sdk/go/aws/logs/subscriptionFilter.go @@ -12,21 +12,31 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. +// The “AWS::Logs::SubscriptionFilter“ resource specifies a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. Currently, the supported destinations are: +// +// - An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery. +// +// - A logical destination that belongs to a different account, for cross-account delivery. +// +// - An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery. +// +// - An LAMlong function that belongs to the same account as the subscription filter, for same-account delivery. +// +// There can be as many as two subscription filters associated with a log group. type SubscriptionFilter struct { pulumi.CustomResourceState // The Amazon Resource Name (ARN) of the destination. DestinationArn pulumi.StringOutput `pulumi:"destinationArn"` - // The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. + // The method used to distribute log data to the destination, which can be either random or grouped by log stream. Distribution SubscriptionFilterDistributionPtrOutput `pulumi:"distribution"` - // The name of the filter generated by resource. + // The name of the subscription filter. FilterName pulumi.StringPtrOutput `pulumi:"filterName"` - // The filtering expressions that restrict what gets delivered to the destination AWS resource. + // The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). FilterPattern pulumi.StringOutput `pulumi:"filterPattern"` - // Existing log group that you want to associate with this filter. + // The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events. LogGroupName pulumi.StringOutput `pulumi:"logGroupName"` - // The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. + // The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. RoleArn pulumi.StringPtrOutput `pulumi:"roleArn"` } @@ -86,15 +96,15 @@ func (SubscriptionFilterState) ElementType() reflect.Type { type subscriptionFilterArgs struct { // The Amazon Resource Name (ARN) of the destination. DestinationArn string `pulumi:"destinationArn"` - // The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. + // The method used to distribute log data to the destination, which can be either random or grouped by log stream. Distribution *SubscriptionFilterDistribution `pulumi:"distribution"` - // The name of the filter generated by resource. + // The name of the subscription filter. FilterName *string `pulumi:"filterName"` - // The filtering expressions that restrict what gets delivered to the destination AWS resource. + // The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). FilterPattern string `pulumi:"filterPattern"` - // Existing log group that you want to associate with this filter. + // The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events. LogGroupName string `pulumi:"logGroupName"` - // The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. + // The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. RoleArn *string `pulumi:"roleArn"` } @@ -102,15 +112,15 @@ type subscriptionFilterArgs struct { type SubscriptionFilterArgs struct { // The Amazon Resource Name (ARN) of the destination. DestinationArn pulumi.StringInput - // The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. + // The method used to distribute log data to the destination, which can be either random or grouped by log stream. Distribution SubscriptionFilterDistributionPtrInput - // The name of the filter generated by resource. + // The name of the subscription filter. FilterName pulumi.StringPtrInput - // The filtering expressions that restrict what gets delivered to the destination AWS resource. + // The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). FilterPattern pulumi.StringInput - // Existing log group that you want to associate with this filter. + // The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events. LogGroupName pulumi.StringInput - // The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. + // The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. RoleArn pulumi.StringPtrInput } @@ -156,27 +166,27 @@ func (o SubscriptionFilterOutput) DestinationArn() pulumi.StringOutput { return o.ApplyT(func(v *SubscriptionFilter) pulumi.StringOutput { return v.DestinationArn }).(pulumi.StringOutput) } -// The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. +// The method used to distribute log data to the destination, which can be either random or grouped by log stream. func (o SubscriptionFilterOutput) Distribution() SubscriptionFilterDistributionPtrOutput { return o.ApplyT(func(v *SubscriptionFilter) SubscriptionFilterDistributionPtrOutput { return v.Distribution }).(SubscriptionFilterDistributionPtrOutput) } -// The name of the filter generated by resource. +// The name of the subscription filter. func (o SubscriptionFilterOutput) FilterName() pulumi.StringPtrOutput { return o.ApplyT(func(v *SubscriptionFilter) pulumi.StringPtrOutput { return v.FilterName }).(pulumi.StringPtrOutput) } -// The filtering expressions that restrict what gets delivered to the destination AWS resource. +// The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). func (o SubscriptionFilterOutput) FilterPattern() pulumi.StringOutput { return o.ApplyT(func(v *SubscriptionFilter) pulumi.StringOutput { return v.FilterPattern }).(pulumi.StringOutput) } -// Existing log group that you want to associate with this filter. +// The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events. func (o SubscriptionFilterOutput) LogGroupName() pulumi.StringOutput { return o.ApplyT(func(v *SubscriptionFilter) pulumi.StringOutput { return v.LogGroupName }).(pulumi.StringOutput) } -// The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. +// The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. func (o SubscriptionFilterOutput) RoleArn() pulumi.StringPtrOutput { return o.ApplyT(func(v *SubscriptionFilter) pulumi.StringPtrOutput { return v.RoleArn }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/rds/getIntegration.go b/sdk/go/aws/rds/getIntegration.go index 34cebcb3d5..abf8aab476 100644 --- a/sdk/go/aws/rds/getIntegration.go +++ b/sdk/go/aws/rds/getIntegration.go @@ -30,8 +30,14 @@ type LookupIntegrationArgs struct { type LookupIntegrationResult struct { CreateTime *string `pulumi:"createTime"` + // The data filter for the integration. + DataFilter *string `pulumi:"dataFilter"` + // The description of the integration. + Description *string `pulumi:"description"` // The ARN of the integration. IntegrationArn *string `pulumi:"integrationArn"` + // The name of the integration. + IntegrationName *string `pulumi:"integrationName"` // An array of key-value pairs to apply to this resource. Tags []aws.Tag `pulumi:"tags"` } @@ -76,11 +82,26 @@ func (o LookupIntegrationResultOutput) CreateTime() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupIntegrationResult) *string { return v.CreateTime }).(pulumi.StringPtrOutput) } +// The data filter for the integration. +func (o LookupIntegrationResultOutput) DataFilter() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupIntegrationResult) *string { return v.DataFilter }).(pulumi.StringPtrOutput) +} + +// The description of the integration. +func (o LookupIntegrationResultOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupIntegrationResult) *string { return v.Description }).(pulumi.StringPtrOutput) +} + // The ARN of the integration. func (o LookupIntegrationResultOutput) IntegrationArn() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupIntegrationResult) *string { return v.IntegrationArn }).(pulumi.StringPtrOutput) } +// The name of the integration. +func (o LookupIntegrationResultOutput) IntegrationName() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupIntegrationResult) *string { return v.IntegrationName }).(pulumi.StringPtrOutput) +} + // An array of key-value pairs to apply to this resource. func (o LookupIntegrationResultOutput) Tags() aws.TagArrayOutput { return o.ApplyT(func(v LookupIntegrationResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) diff --git a/sdk/go/aws/rds/integration.go b/sdk/go/aws/rds/integration.go index 4427bb8043..501dadc2a1 100644 --- a/sdk/go/aws/rds/integration.go +++ b/sdk/go/aws/rds/integration.go @@ -19,6 +19,10 @@ type Integration struct { AdditionalEncryptionContext pulumi.StringMapOutput `pulumi:"additionalEncryptionContext"` CreateTime pulumi.StringOutput `pulumi:"createTime"` + // The data filter for the integration. + DataFilter pulumi.StringPtrOutput `pulumi:"dataFilter"` + // The description of the integration. + Description pulumi.StringPtrOutput `pulumi:"description"` // The ARN of the integration. IntegrationArn pulumi.StringOutput `pulumi:"integrationArn"` // The name of the integration. @@ -48,7 +52,6 @@ func NewIntegration(ctx *pulumi.Context, } replaceOnChanges := pulumi.ReplaceOnChanges([]string{ "additionalEncryptionContext.*", - "integrationName", "kmsKeyId", "sourceArn", "targetArn", @@ -88,6 +91,10 @@ func (IntegrationState) ElementType() reflect.Type { type integrationArgs struct { AdditionalEncryptionContext map[string]string `pulumi:"additionalEncryptionContext"` + // The data filter for the integration. + DataFilter *string `pulumi:"dataFilter"` + // The description of the integration. + Description *string `pulumi:"description"` // The name of the integration. IntegrationName *string `pulumi:"integrationName"` // An optional AWS Key Management System (AWS KMS) key ARN for the key used to to encrypt the integration. The resource accepts the key ID and the key ARN forms. The key ID form can be used if the KMS key is owned by te same account. If the KMS key belongs to a different account than the calling account, the full key ARN must be specified. Do not use the key alias or the key alias ARN as this will cause a false drift of the resource. @@ -103,6 +110,10 @@ type integrationArgs struct { // The set of arguments for constructing a Integration resource. type IntegrationArgs struct { AdditionalEncryptionContext pulumi.StringMapInput + // The data filter for the integration. + DataFilter pulumi.StringPtrInput + // The description of the integration. + Description pulumi.StringPtrInput // The name of the integration. IntegrationName pulumi.StringPtrInput // An optional AWS Key Management System (AWS KMS) key ARN for the key used to to encrypt the integration. The resource accepts the key ID and the key ARN forms. The key ID form can be used if the KMS key is owned by te same account. If the KMS key belongs to a different account than the calling account, the full key ARN must be specified. Do not use the key alias or the key alias ARN as this will cause a false drift of the resource. @@ -160,6 +171,16 @@ func (o IntegrationOutput) CreateTime() pulumi.StringOutput { return o.ApplyT(func(v *Integration) pulumi.StringOutput { return v.CreateTime }).(pulumi.StringOutput) } +// The data filter for the integration. +func (o IntegrationOutput) DataFilter() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Integration) pulumi.StringPtrOutput { return v.DataFilter }).(pulumi.StringPtrOutput) +} + +// The description of the integration. +func (o IntegrationOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Integration) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + // The ARN of the integration. func (o IntegrationOutput) IntegrationArn() pulumi.StringOutput { return o.ApplyT(func(v *Integration) pulumi.StringOutput { return v.IntegrationArn }).(pulumi.StringOutput) diff --git a/sdk/go/aws/resiliencehub/getResiliencyPolicy.go b/sdk/go/aws/resiliencehub/getResiliencyPolicy.go index 6490e40019..c769d9d4d5 100644 --- a/sdk/go/aws/resiliencehub/getResiliencyPolicy.go +++ b/sdk/go/aws/resiliencehub/getResiliencyPolicy.go @@ -29,8 +29,8 @@ type LookupResiliencyPolicyArgs struct { type LookupResiliencyPolicyResult struct { // Data Location Constraint of the Policy. - DataLocationConstraint *ResiliencyPolicyDataLocationConstraint `pulumi:"dataLocationConstraint"` - Policy map[string]ResiliencyPolicyFailurePolicy `pulumi:"policy"` + DataLocationConstraint *ResiliencyPolicyDataLocationConstraint `pulumi:"dataLocationConstraint"` + Policy *ResiliencyPolicyPolicyMap `pulumi:"policy"` // Amazon Resource Name (ARN) of the Resiliency Policy. PolicyArn *string `pulumi:"policyArn"` // Description of Resiliency Policy. @@ -85,8 +85,8 @@ func (o LookupResiliencyPolicyResultOutput) DataLocationConstraint() ResiliencyP }).(ResiliencyPolicyDataLocationConstraintPtrOutput) } -func (o LookupResiliencyPolicyResultOutput) Policy() ResiliencyPolicyFailurePolicyMapOutput { - return o.ApplyT(func(v LookupResiliencyPolicyResult) map[string]ResiliencyPolicyFailurePolicy { return v.Policy }).(ResiliencyPolicyFailurePolicyMapOutput) +func (o LookupResiliencyPolicyResultOutput) Policy() ResiliencyPolicyPolicyMapPtrOutput { + return o.ApplyT(func(v LookupResiliencyPolicyResult) *ResiliencyPolicyPolicyMap { return v.Policy }).(ResiliencyPolicyPolicyMapPtrOutput) } // Amazon Resource Name (ARN) of the Resiliency Policy. diff --git a/sdk/go/aws/resiliencehub/pulumiTypes.go b/sdk/go/aws/resiliencehub/pulumiTypes.go index e661fba7b5..5a94577388 100644 --- a/sdk/go/aws/resiliencehub/pulumiTypes.go +++ b/sdk/go/aws/resiliencehub/pulumiTypes.go @@ -542,29 +542,45 @@ func (i ResiliencyPolicyFailurePolicyArgs) ToResiliencyPolicyFailurePolicyOutput return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyFailurePolicyOutput) } -// ResiliencyPolicyFailurePolicyMapInput is an input type that accepts ResiliencyPolicyFailurePolicyMap and ResiliencyPolicyFailurePolicyMapOutput values. -// You can construct a concrete instance of `ResiliencyPolicyFailurePolicyMapInput` via: +func (i ResiliencyPolicyFailurePolicyArgs) ToResiliencyPolicyFailurePolicyPtrOutput() ResiliencyPolicyFailurePolicyPtrOutput { + return i.ToResiliencyPolicyFailurePolicyPtrOutputWithContext(context.Background()) +} + +func (i ResiliencyPolicyFailurePolicyArgs) ToResiliencyPolicyFailurePolicyPtrOutputWithContext(ctx context.Context) ResiliencyPolicyFailurePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyFailurePolicyOutput).ToResiliencyPolicyFailurePolicyPtrOutputWithContext(ctx) +} + +// ResiliencyPolicyFailurePolicyPtrInput is an input type that accepts ResiliencyPolicyFailurePolicyArgs, ResiliencyPolicyFailurePolicyPtr and ResiliencyPolicyFailurePolicyPtrOutput values. +// You can construct a concrete instance of `ResiliencyPolicyFailurePolicyPtrInput` via: +// +// ResiliencyPolicyFailurePolicyArgs{...} +// +// or: // -// ResiliencyPolicyFailurePolicyMap{ "key": ResiliencyPolicyFailurePolicyArgs{...} } -type ResiliencyPolicyFailurePolicyMapInput interface { +// nil +type ResiliencyPolicyFailurePolicyPtrInput interface { pulumi.Input - ToResiliencyPolicyFailurePolicyMapOutput() ResiliencyPolicyFailurePolicyMapOutput - ToResiliencyPolicyFailurePolicyMapOutputWithContext(context.Context) ResiliencyPolicyFailurePolicyMapOutput + ToResiliencyPolicyFailurePolicyPtrOutput() ResiliencyPolicyFailurePolicyPtrOutput + ToResiliencyPolicyFailurePolicyPtrOutputWithContext(context.Context) ResiliencyPolicyFailurePolicyPtrOutput } -type ResiliencyPolicyFailurePolicyMap map[string]ResiliencyPolicyFailurePolicyInput +type resiliencyPolicyFailurePolicyPtrType ResiliencyPolicyFailurePolicyArgs + +func ResiliencyPolicyFailurePolicyPtr(v *ResiliencyPolicyFailurePolicyArgs) ResiliencyPolicyFailurePolicyPtrInput { + return (*resiliencyPolicyFailurePolicyPtrType)(v) +} -func (ResiliencyPolicyFailurePolicyMap) ElementType() reflect.Type { - return reflect.TypeOf((*map[string]ResiliencyPolicyFailurePolicy)(nil)).Elem() +func (*resiliencyPolicyFailurePolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResiliencyPolicyFailurePolicy)(nil)).Elem() } -func (i ResiliencyPolicyFailurePolicyMap) ToResiliencyPolicyFailurePolicyMapOutput() ResiliencyPolicyFailurePolicyMapOutput { - return i.ToResiliencyPolicyFailurePolicyMapOutputWithContext(context.Background()) +func (i *resiliencyPolicyFailurePolicyPtrType) ToResiliencyPolicyFailurePolicyPtrOutput() ResiliencyPolicyFailurePolicyPtrOutput { + return i.ToResiliencyPolicyFailurePolicyPtrOutputWithContext(context.Background()) } -func (i ResiliencyPolicyFailurePolicyMap) ToResiliencyPolicyFailurePolicyMapOutputWithContext(ctx context.Context) ResiliencyPolicyFailurePolicyMapOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyFailurePolicyMapOutput) +func (i *resiliencyPolicyFailurePolicyPtrType) ToResiliencyPolicyFailurePolicyPtrOutputWithContext(ctx context.Context) ResiliencyPolicyFailurePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyFailurePolicyPtrOutput) } // Failure Policy. @@ -582,6 +598,16 @@ func (o ResiliencyPolicyFailurePolicyOutput) ToResiliencyPolicyFailurePolicyOutp return o } +func (o ResiliencyPolicyFailurePolicyOutput) ToResiliencyPolicyFailurePolicyPtrOutput() ResiliencyPolicyFailurePolicyPtrOutput { + return o.ToResiliencyPolicyFailurePolicyPtrOutputWithContext(context.Background()) +} + +func (o ResiliencyPolicyFailurePolicyOutput) ToResiliencyPolicyFailurePolicyPtrOutputWithContext(ctx context.Context) ResiliencyPolicyFailurePolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResiliencyPolicyFailurePolicy) *ResiliencyPolicyFailurePolicy { + return &v + }).(ResiliencyPolicyFailurePolicyPtrOutput) +} + // RPO in seconds. func (o ResiliencyPolicyFailurePolicyOutput) RpoInSecs() pulumi.IntOutput { return o.ApplyT(func(v ResiliencyPolicyFailurePolicy) int { return v.RpoInSecs }).(pulumi.IntOutput) @@ -592,26 +618,177 @@ func (o ResiliencyPolicyFailurePolicyOutput) RtoInSecs() pulumi.IntOutput { return o.ApplyT(func(v ResiliencyPolicyFailurePolicy) int { return v.RtoInSecs }).(pulumi.IntOutput) } -type ResiliencyPolicyFailurePolicyMapOutput struct{ *pulumi.OutputState } +type ResiliencyPolicyFailurePolicyPtrOutput struct{ *pulumi.OutputState } -func (ResiliencyPolicyFailurePolicyMapOutput) ElementType() reflect.Type { - return reflect.TypeOf((*map[string]ResiliencyPolicyFailurePolicy)(nil)).Elem() +func (ResiliencyPolicyFailurePolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResiliencyPolicyFailurePolicy)(nil)).Elem() } -func (o ResiliencyPolicyFailurePolicyMapOutput) ToResiliencyPolicyFailurePolicyMapOutput() ResiliencyPolicyFailurePolicyMapOutput { +func (o ResiliencyPolicyFailurePolicyPtrOutput) ToResiliencyPolicyFailurePolicyPtrOutput() ResiliencyPolicyFailurePolicyPtrOutput { return o } -func (o ResiliencyPolicyFailurePolicyMapOutput) ToResiliencyPolicyFailurePolicyMapOutputWithContext(ctx context.Context) ResiliencyPolicyFailurePolicyMapOutput { +func (o ResiliencyPolicyFailurePolicyPtrOutput) ToResiliencyPolicyFailurePolicyPtrOutputWithContext(ctx context.Context) ResiliencyPolicyFailurePolicyPtrOutput { return o } -func (o ResiliencyPolicyFailurePolicyMapOutput) MapIndex(k pulumi.StringInput) ResiliencyPolicyFailurePolicyOutput { - return pulumi.All(o, k).ApplyT(func(vs []interface{}) ResiliencyPolicyFailurePolicy { - return vs[0].(map[string]ResiliencyPolicyFailurePolicy)[vs[1].(string)] +func (o ResiliencyPolicyFailurePolicyPtrOutput) Elem() ResiliencyPolicyFailurePolicyOutput { + return o.ApplyT(func(v *ResiliencyPolicyFailurePolicy) ResiliencyPolicyFailurePolicy { + if v != nil { + return *v + } + var ret ResiliencyPolicyFailurePolicy + return ret }).(ResiliencyPolicyFailurePolicyOutput) } +// RPO in seconds. +func (o ResiliencyPolicyFailurePolicyPtrOutput) RpoInSecs() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ResiliencyPolicyFailurePolicy) *int { + if v == nil { + return nil + } + return &v.RpoInSecs + }).(pulumi.IntPtrOutput) +} + +// RTO in seconds. +func (o ResiliencyPolicyFailurePolicyPtrOutput) RtoInSecs() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ResiliencyPolicyFailurePolicy) *int { + if v == nil { + return nil + } + return &v.RtoInSecs + }).(pulumi.IntPtrOutput) +} + +type ResiliencyPolicyPolicyMap struct { + Az ResiliencyPolicyFailurePolicy `pulumi:"az"` + Hardware ResiliencyPolicyFailurePolicy `pulumi:"hardware"` + Region *ResiliencyPolicyFailurePolicy `pulumi:"region"` + Software ResiliencyPolicyFailurePolicy `pulumi:"software"` +} + +// ResiliencyPolicyPolicyMapInput is an input type that accepts ResiliencyPolicyPolicyMap and ResiliencyPolicyPolicyMapOutput values. +// You can construct a concrete instance of `ResiliencyPolicyPolicyMapInput` via: +// +// ResiliencyPolicyPolicyMap{ "key": ResiliencyPolicyPolicyArgs{...} } +type ResiliencyPolicyPolicyMapInput interface { + pulumi.Input + + ToResiliencyPolicyPolicyMapOutput() ResiliencyPolicyPolicyMapOutput + ToResiliencyPolicyPolicyMapOutputWithContext(context.Context) ResiliencyPolicyPolicyMapOutput +} + +type ResiliencyPolicyPolicyMapArgs struct { + Az ResiliencyPolicyFailurePolicyInput `pulumi:"az"` + Hardware ResiliencyPolicyFailurePolicyInput `pulumi:"hardware"` + Region ResiliencyPolicyFailurePolicyPtrInput `pulumi:"region"` + Software ResiliencyPolicyFailurePolicyInput `pulumi:"software"` +} + +func (ResiliencyPolicyPolicyMapArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResiliencyPolicyPolicyMap)(nil)).Elem() +} + +func (i ResiliencyPolicyPolicyMapArgs) ToResiliencyPolicyPolicyMapOutput() ResiliencyPolicyPolicyMapOutput { + return i.ToResiliencyPolicyPolicyMapOutputWithContext(context.Background()) +} + +func (i ResiliencyPolicyPolicyMapArgs) ToResiliencyPolicyPolicyMapOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResiliencyPolicyPolicyMapOutput) +} + +type ResiliencyPolicyPolicyMapOutput struct{ *pulumi.OutputState } + +func (ResiliencyPolicyPolicyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResiliencyPolicyPolicyMap)(nil)).Elem() +} + +func (o ResiliencyPolicyPolicyMapOutput) ToResiliencyPolicyPolicyMapOutput() ResiliencyPolicyPolicyMapOutput { + return o +} + +func (o ResiliencyPolicyPolicyMapOutput) ToResiliencyPolicyPolicyMapOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyMapOutput { + return o +} + +func (o ResiliencyPolicyPolicyMapOutput) Az() ResiliencyPolicyFailurePolicyOutput { + return o.ApplyT(func(v ResiliencyPolicyPolicyMap) ResiliencyPolicyFailurePolicy { return v.Az }).(ResiliencyPolicyFailurePolicyOutput) +} + +func (o ResiliencyPolicyPolicyMapOutput) Hardware() ResiliencyPolicyFailurePolicyOutput { + return o.ApplyT(func(v ResiliencyPolicyPolicyMap) ResiliencyPolicyFailurePolicy { return v.Hardware }).(ResiliencyPolicyFailurePolicyOutput) +} + +func (o ResiliencyPolicyPolicyMapOutput) Region() ResiliencyPolicyFailurePolicyPtrOutput { + return o.ApplyT(func(v ResiliencyPolicyPolicyMap) *ResiliencyPolicyFailurePolicy { return v.Region }).(ResiliencyPolicyFailurePolicyPtrOutput) +} + +func (o ResiliencyPolicyPolicyMapOutput) Software() ResiliencyPolicyFailurePolicyOutput { + return o.ApplyT(func(v ResiliencyPolicyPolicyMap) ResiliencyPolicyFailurePolicy { return v.Software }).(ResiliencyPolicyFailurePolicyOutput) +} + +type ResiliencyPolicyPolicyMapPtrOutput struct{ *pulumi.OutputState } + +func (ResiliencyPolicyPolicyMapPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResiliencyPolicyPolicyMap)(nil)).Elem() +} + +func (o ResiliencyPolicyPolicyMapPtrOutput) ToResiliencyPolicyPolicyMapPtrOutput() ResiliencyPolicyPolicyMapPtrOutput { + return o +} + +func (o ResiliencyPolicyPolicyMapPtrOutput) ToResiliencyPolicyPolicyMapPtrOutputWithContext(ctx context.Context) ResiliencyPolicyPolicyMapPtrOutput { + return o +} + +func (o ResiliencyPolicyPolicyMapPtrOutput) Elem() ResiliencyPolicyPolicyMapOutput { + return o.ApplyT(func(v *ResiliencyPolicyPolicyMap) ResiliencyPolicyPolicyMap { + if v != nil { + return *v + } + var ret ResiliencyPolicyPolicyMap + return ret + }).(ResiliencyPolicyPolicyMapOutput) +} + +func (o ResiliencyPolicyPolicyMapPtrOutput) Az() ResiliencyPolicyFailurePolicyPtrOutput { + return o.ApplyT(func(v *ResiliencyPolicyPolicyMap) *ResiliencyPolicyFailurePolicy { + if v == nil { + return nil + } + return &v.Az + }).(ResiliencyPolicyFailurePolicyPtrOutput) +} + +func (o ResiliencyPolicyPolicyMapPtrOutput) Hardware() ResiliencyPolicyFailurePolicyPtrOutput { + return o.ApplyT(func(v *ResiliencyPolicyPolicyMap) *ResiliencyPolicyFailurePolicy { + if v == nil { + return nil + } + return &v.Hardware + }).(ResiliencyPolicyFailurePolicyPtrOutput) +} + +func (o ResiliencyPolicyPolicyMapPtrOutput) Region() ResiliencyPolicyFailurePolicyPtrOutput { + return o.ApplyT(func(v *ResiliencyPolicyPolicyMap) *ResiliencyPolicyFailurePolicy { + if v == nil { + return nil + } + return v.Region + }).(ResiliencyPolicyFailurePolicyPtrOutput) +} + +func (o ResiliencyPolicyPolicyMapPtrOutput) Software() ResiliencyPolicyFailurePolicyPtrOutput { + return o.ApplyT(func(v *ResiliencyPolicyPolicyMap) *ResiliencyPolicyFailurePolicy { + if v == nil { + return nil + } + return &v.Software + }).(ResiliencyPolicyFailurePolicyPtrOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*AppEventSubscriptionInput)(nil)).Elem(), AppEventSubscriptionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AppEventSubscriptionArrayInput)(nil)).Elem(), AppEventSubscriptionArray{}) @@ -621,7 +798,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*AppResourceMappingInput)(nil)).Elem(), AppResourceMappingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AppResourceMappingArrayInput)(nil)).Elem(), AppResourceMappingArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ResiliencyPolicyFailurePolicyInput)(nil)).Elem(), ResiliencyPolicyFailurePolicyArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*ResiliencyPolicyFailurePolicyMapInput)(nil)).Elem(), ResiliencyPolicyFailurePolicyMap{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResiliencyPolicyFailurePolicyPtrInput)(nil)).Elem(), ResiliencyPolicyFailurePolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResiliencyPolicyPolicyMapInput)(nil)).Elem(), ResiliencyPolicyPolicyMapArgs{}) pulumi.RegisterOutputType(AppEventSubscriptionOutput{}) pulumi.RegisterOutputType(AppEventSubscriptionArrayOutput{}) pulumi.RegisterOutputType(AppPermissionModelOutput{}) @@ -630,5 +808,7 @@ func init() { pulumi.RegisterOutputType(AppResourceMappingOutput{}) pulumi.RegisterOutputType(AppResourceMappingArrayOutput{}) pulumi.RegisterOutputType(ResiliencyPolicyFailurePolicyOutput{}) - pulumi.RegisterOutputType(ResiliencyPolicyFailurePolicyMapOutput{}) + pulumi.RegisterOutputType(ResiliencyPolicyFailurePolicyPtrOutput{}) + pulumi.RegisterOutputType(ResiliencyPolicyPolicyMapOutput{}) + pulumi.RegisterOutputType(ResiliencyPolicyPolicyMapPtrOutput{}) } diff --git a/sdk/go/aws/resiliencehub/resiliencyPolicy.go b/sdk/go/aws/resiliencehub/resiliencyPolicy.go index 09ddb0bcf7..8dcc6a077e 100644 --- a/sdk/go/aws/resiliencehub/resiliencyPolicy.go +++ b/sdk/go/aws/resiliencehub/resiliencyPolicy.go @@ -18,7 +18,7 @@ type ResiliencyPolicy struct { // Data Location Constraint of the Policy. DataLocationConstraint ResiliencyPolicyDataLocationConstraintPtrOutput `pulumi:"dataLocationConstraint"` - Policy ResiliencyPolicyFailurePolicyMapOutput `pulumi:"policy"` + Policy ResiliencyPolicyPolicyMapOutput `pulumi:"policy"` // Amazon Resource Name (ARN) of the Resiliency Policy. PolicyArn pulumi.StringOutput `pulumi:"policyArn"` // Description of Resiliency Policy. @@ -77,8 +77,8 @@ func (ResiliencyPolicyState) ElementType() reflect.Type { type resiliencyPolicyArgs struct { // Data Location Constraint of the Policy. - DataLocationConstraint *ResiliencyPolicyDataLocationConstraint `pulumi:"dataLocationConstraint"` - Policy map[string]ResiliencyPolicyFailurePolicy `pulumi:"policy"` + DataLocationConstraint *ResiliencyPolicyDataLocationConstraint `pulumi:"dataLocationConstraint"` + Policy ResiliencyPolicyPolicyMap `pulumi:"policy"` // Description of Resiliency Policy. PolicyDescription *string `pulumi:"policyDescription"` // Name of Resiliency Policy. @@ -92,7 +92,7 @@ type resiliencyPolicyArgs struct { type ResiliencyPolicyArgs struct { // Data Location Constraint of the Policy. DataLocationConstraint ResiliencyPolicyDataLocationConstraintPtrInput - Policy ResiliencyPolicyFailurePolicyMapInput + Policy ResiliencyPolicyPolicyMapInput // Description of Resiliency Policy. PolicyDescription pulumi.StringPtrInput // Name of Resiliency Policy. @@ -146,8 +146,8 @@ func (o ResiliencyPolicyOutput) DataLocationConstraint() ResiliencyPolicyDataLoc }).(ResiliencyPolicyDataLocationConstraintPtrOutput) } -func (o ResiliencyPolicyOutput) Policy() ResiliencyPolicyFailurePolicyMapOutput { - return o.ApplyT(func(v *ResiliencyPolicy) ResiliencyPolicyFailurePolicyMapOutput { return v.Policy }).(ResiliencyPolicyFailurePolicyMapOutput) +func (o ResiliencyPolicyOutput) Policy() ResiliencyPolicyPolicyMapOutput { + return o.ApplyT(func(v *ResiliencyPolicy) ResiliencyPolicyPolicyMapOutput { return v.Policy }).(ResiliencyPolicyPolicyMapOutput) } // Amazon Resource Name (ARN) of the Resiliency Policy. diff --git a/sdk/go/aws/securitylake/awsLogSource.go b/sdk/go/aws/securitylake/awsLogSource.go new file mode 100644 index 0000000000..17696256b9 --- /dev/null +++ b/sdk/go/aws/securitylake/awsLogSource.go @@ -0,0 +1,163 @@ +// 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 securitylake + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Resource Type definition for AWS::SecurityLake::AwsLogSource +type AwsLogSource struct { + pulumi.CustomResourceState + + // AWS account where you want to collect logs from. + Accounts pulumi.StringArrayOutput `pulumi:"accounts"` + // The ARN for the data lake. + DataLakeArn pulumi.StringOutput `pulumi:"dataLakeArn"` + // The name for a AWS source. This must be a Regionally unique value. + SourceName pulumi.StringOutput `pulumi:"sourceName"` + // The version for a AWS source. This must be a Regionally unique value. + SourceVersion pulumi.StringOutput `pulumi:"sourceVersion"` +} + +// NewAwsLogSource registers a new resource with the given unique name, arguments, and options. +func NewAwsLogSource(ctx *pulumi.Context, + name string, args *AwsLogSourceArgs, opts ...pulumi.ResourceOption) (*AwsLogSource, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.DataLakeArn == nil { + return nil, errors.New("invalid value for required argument 'DataLakeArn'") + } + if args.SourceVersion == nil { + return nil, errors.New("invalid value for required argument 'SourceVersion'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "dataLakeArn", + "sourceName", + "sourceVersion", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource AwsLogSource + err := ctx.RegisterResource("aws-native:securitylake:AwsLogSource", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAwsLogSource gets an existing AwsLogSource 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 GetAwsLogSource(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AwsLogSourceState, opts ...pulumi.ResourceOption) (*AwsLogSource, error) { + var resource AwsLogSource + err := ctx.ReadResource("aws-native:securitylake:AwsLogSource", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering AwsLogSource resources. +type awsLogSourceState struct { +} + +type AwsLogSourceState struct { +} + +func (AwsLogSourceState) ElementType() reflect.Type { + return reflect.TypeOf((*awsLogSourceState)(nil)).Elem() +} + +type awsLogSourceArgs struct { + // AWS account where you want to collect logs from. + Accounts []string `pulumi:"accounts"` + // The ARN for the data lake. + DataLakeArn string `pulumi:"dataLakeArn"` + // The name for a AWS source. This must be a Regionally unique value. + SourceName *string `pulumi:"sourceName"` + // The version for a AWS source. This must be a Regionally unique value. + SourceVersion string `pulumi:"sourceVersion"` +} + +// The set of arguments for constructing a AwsLogSource resource. +type AwsLogSourceArgs struct { + // AWS account where you want to collect logs from. + Accounts pulumi.StringArrayInput + // The ARN for the data lake. + DataLakeArn pulumi.StringInput + // The name for a AWS source. This must be a Regionally unique value. + SourceName pulumi.StringPtrInput + // The version for a AWS source. This must be a Regionally unique value. + SourceVersion pulumi.StringInput +} + +func (AwsLogSourceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*awsLogSourceArgs)(nil)).Elem() +} + +type AwsLogSourceInput interface { + pulumi.Input + + ToAwsLogSourceOutput() AwsLogSourceOutput + ToAwsLogSourceOutputWithContext(ctx context.Context) AwsLogSourceOutput +} + +func (*AwsLogSource) ElementType() reflect.Type { + return reflect.TypeOf((**AwsLogSource)(nil)).Elem() +} + +func (i *AwsLogSource) ToAwsLogSourceOutput() AwsLogSourceOutput { + return i.ToAwsLogSourceOutputWithContext(context.Background()) +} + +func (i *AwsLogSource) ToAwsLogSourceOutputWithContext(ctx context.Context) AwsLogSourceOutput { + return pulumi.ToOutputWithContext(ctx, i).(AwsLogSourceOutput) +} + +type AwsLogSourceOutput struct{ *pulumi.OutputState } + +func (AwsLogSourceOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AwsLogSource)(nil)).Elem() +} + +func (o AwsLogSourceOutput) ToAwsLogSourceOutput() AwsLogSourceOutput { + return o +} + +func (o AwsLogSourceOutput) ToAwsLogSourceOutputWithContext(ctx context.Context) AwsLogSourceOutput { + return o +} + +// AWS account where you want to collect logs from. +func (o AwsLogSourceOutput) Accounts() pulumi.StringArrayOutput { + return o.ApplyT(func(v *AwsLogSource) pulumi.StringArrayOutput { return v.Accounts }).(pulumi.StringArrayOutput) +} + +// The ARN for the data lake. +func (o AwsLogSourceOutput) DataLakeArn() pulumi.StringOutput { + return o.ApplyT(func(v *AwsLogSource) pulumi.StringOutput { return v.DataLakeArn }).(pulumi.StringOutput) +} + +// The name for a AWS source. This must be a Regionally unique value. +func (o AwsLogSourceOutput) SourceName() pulumi.StringOutput { + return o.ApplyT(func(v *AwsLogSource) pulumi.StringOutput { return v.SourceName }).(pulumi.StringOutput) +} + +// The version for a AWS source. This must be a Regionally unique value. +func (o AwsLogSourceOutput) SourceVersion() pulumi.StringOutput { + return o.ApplyT(func(v *AwsLogSource) pulumi.StringOutput { return v.SourceVersion }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AwsLogSourceInput)(nil)).Elem(), &AwsLogSource{}) + pulumi.RegisterOutputType(AwsLogSourceOutput{}) +} diff --git a/sdk/go/aws/securitylake/dataLake.go b/sdk/go/aws/securitylake/dataLake.go new file mode 100644 index 0000000000..f1af6165db --- /dev/null +++ b/sdk/go/aws/securitylake/dataLake.go @@ -0,0 +1,164 @@ +// 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 securitylake + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Resource Type definition for AWS::SecurityLake::DataLake +type DataLake struct { + pulumi.CustomResourceState + + // The Amazon Resource Name (ARN) created by you to provide to the subscriber. + Arn pulumi.StringOutput `pulumi:"arn"` + EncryptionConfiguration DataLakeEncryptionConfigurationPtrOutput `pulumi:"encryptionConfiguration"` + LifecycleConfiguration DataLakeLifecycleConfigurationPtrOutput `pulumi:"lifecycleConfiguration"` + // The Amazon Resource Name (ARN) used to index AWS Glue table partitions that are generated by the ingestion and normalization of AWS log sources and custom sources. + MetaStoreManagerRoleArn pulumi.StringPtrOutput `pulumi:"metaStoreManagerRoleArn"` + ReplicationConfiguration DataLakeReplicationConfigurationPtrOutput `pulumi:"replicationConfiguration"` + // The ARN for the Amazon Security Lake Amazon S3 bucket. + S3BucketArn pulumi.StringOutput `pulumi:"s3BucketArn"` + Tags aws.TagArrayOutput `pulumi:"tags"` +} + +// NewDataLake registers a new resource with the given unique name, arguments, and options. +func NewDataLake(ctx *pulumi.Context, + name string, args *DataLakeArgs, opts ...pulumi.ResourceOption) (*DataLake, error) { + if args == nil { + args = &DataLakeArgs{} + } + + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "metaStoreManagerRoleArn", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource DataLake + err := ctx.RegisterResource("aws-native:securitylake:DataLake", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDataLake gets an existing DataLake 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 GetDataLake(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DataLakeState, opts ...pulumi.ResourceOption) (*DataLake, error) { + var resource DataLake + err := ctx.ReadResource("aws-native:securitylake:DataLake", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering DataLake resources. +type dataLakeState struct { +} + +type DataLakeState struct { +} + +func (DataLakeState) ElementType() reflect.Type { + return reflect.TypeOf((*dataLakeState)(nil)).Elem() +} + +type dataLakeArgs struct { + EncryptionConfiguration *DataLakeEncryptionConfiguration `pulumi:"encryptionConfiguration"` + LifecycleConfiguration *DataLakeLifecycleConfiguration `pulumi:"lifecycleConfiguration"` + // The Amazon Resource Name (ARN) used to index AWS Glue table partitions that are generated by the ingestion and normalization of AWS log sources and custom sources. + MetaStoreManagerRoleArn *string `pulumi:"metaStoreManagerRoleArn"` + ReplicationConfiguration *DataLakeReplicationConfiguration `pulumi:"replicationConfiguration"` + Tags []aws.Tag `pulumi:"tags"` +} + +// The set of arguments for constructing a DataLake resource. +type DataLakeArgs struct { + EncryptionConfiguration DataLakeEncryptionConfigurationPtrInput + LifecycleConfiguration DataLakeLifecycleConfigurationPtrInput + // The Amazon Resource Name (ARN) used to index AWS Glue table partitions that are generated by the ingestion and normalization of AWS log sources and custom sources. + MetaStoreManagerRoleArn pulumi.StringPtrInput + ReplicationConfiguration DataLakeReplicationConfigurationPtrInput + Tags aws.TagArrayInput +} + +func (DataLakeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*dataLakeArgs)(nil)).Elem() +} + +type DataLakeInput interface { + pulumi.Input + + ToDataLakeOutput() DataLakeOutput + ToDataLakeOutputWithContext(ctx context.Context) DataLakeOutput +} + +func (*DataLake) ElementType() reflect.Type { + return reflect.TypeOf((**DataLake)(nil)).Elem() +} + +func (i *DataLake) ToDataLakeOutput() DataLakeOutput { + return i.ToDataLakeOutputWithContext(context.Background()) +} + +func (i *DataLake) ToDataLakeOutputWithContext(ctx context.Context) DataLakeOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataLakeOutput) +} + +type DataLakeOutput struct{ *pulumi.OutputState } + +func (DataLakeOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DataLake)(nil)).Elem() +} + +func (o DataLakeOutput) ToDataLakeOutput() DataLakeOutput { + return o +} + +func (o DataLakeOutput) ToDataLakeOutputWithContext(ctx context.Context) DataLakeOutput { + return o +} + +// The Amazon Resource Name (ARN) created by you to provide to the subscriber. +func (o DataLakeOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *DataLake) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +func (o DataLakeOutput) EncryptionConfiguration() DataLakeEncryptionConfigurationPtrOutput { + return o.ApplyT(func(v *DataLake) DataLakeEncryptionConfigurationPtrOutput { return v.EncryptionConfiguration }).(DataLakeEncryptionConfigurationPtrOutput) +} + +func (o DataLakeOutput) LifecycleConfiguration() DataLakeLifecycleConfigurationPtrOutput { + return o.ApplyT(func(v *DataLake) DataLakeLifecycleConfigurationPtrOutput { return v.LifecycleConfiguration }).(DataLakeLifecycleConfigurationPtrOutput) +} + +// The Amazon Resource Name (ARN) used to index AWS Glue table partitions that are generated by the ingestion and normalization of AWS log sources and custom sources. +func (o DataLakeOutput) MetaStoreManagerRoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DataLake) pulumi.StringPtrOutput { return v.MetaStoreManagerRoleArn }).(pulumi.StringPtrOutput) +} + +func (o DataLakeOutput) ReplicationConfiguration() DataLakeReplicationConfigurationPtrOutput { + return o.ApplyT(func(v *DataLake) DataLakeReplicationConfigurationPtrOutput { return v.ReplicationConfiguration }).(DataLakeReplicationConfigurationPtrOutput) +} + +// The ARN for the Amazon Security Lake Amazon S3 bucket. +func (o DataLakeOutput) S3BucketArn() pulumi.StringOutput { + return o.ApplyT(func(v *DataLake) pulumi.StringOutput { return v.S3BucketArn }).(pulumi.StringOutput) +} + +func (o DataLakeOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v *DataLake) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DataLakeInput)(nil)).Elem(), &DataLake{}) + pulumi.RegisterOutputType(DataLakeOutput{}) +} diff --git a/sdk/go/aws/securitylake/getAwsLogSource.go b/sdk/go/aws/securitylake/getAwsLogSource.go new file mode 100644 index 0000000000..ca8f6d8c40 --- /dev/null +++ b/sdk/go/aws/securitylake/getAwsLogSource.go @@ -0,0 +1,82 @@ +// 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 securitylake + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Resource Type definition for AWS::SecurityLake::AwsLogSource +func LookupAwsLogSource(ctx *pulumi.Context, args *LookupAwsLogSourceArgs, opts ...pulumi.InvokeOption) (*LookupAwsLogSourceResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupAwsLogSourceResult + err := ctx.Invoke("aws-native:securitylake:getAwsLogSource", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupAwsLogSourceArgs struct { + // The name for a AWS source. This must be a Regionally unique value. + SourceName string `pulumi:"sourceName"` + // The version for a AWS source. This must be a Regionally unique value. + SourceVersion string `pulumi:"sourceVersion"` +} + +type LookupAwsLogSourceResult struct { + // AWS account where you want to collect logs from. + Accounts []string `pulumi:"accounts"` +} + +func LookupAwsLogSourceOutput(ctx *pulumi.Context, args LookupAwsLogSourceOutputArgs, opts ...pulumi.InvokeOption) LookupAwsLogSourceResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupAwsLogSourceResult, error) { + args := v.(LookupAwsLogSourceArgs) + r, err := LookupAwsLogSource(ctx, &args, opts...) + var s LookupAwsLogSourceResult + if r != nil { + s = *r + } + return s, err + }).(LookupAwsLogSourceResultOutput) +} + +type LookupAwsLogSourceOutputArgs struct { + // The name for a AWS source. This must be a Regionally unique value. + SourceName pulumi.StringInput `pulumi:"sourceName"` + // The version for a AWS source. This must be a Regionally unique value. + SourceVersion pulumi.StringInput `pulumi:"sourceVersion"` +} + +func (LookupAwsLogSourceOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupAwsLogSourceArgs)(nil)).Elem() +} + +type LookupAwsLogSourceResultOutput struct{ *pulumi.OutputState } + +func (LookupAwsLogSourceResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupAwsLogSourceResult)(nil)).Elem() +} + +func (o LookupAwsLogSourceResultOutput) ToLookupAwsLogSourceResultOutput() LookupAwsLogSourceResultOutput { + return o +} + +func (o LookupAwsLogSourceResultOutput) ToLookupAwsLogSourceResultOutputWithContext(ctx context.Context) LookupAwsLogSourceResultOutput { + return o +} + +// AWS account where you want to collect logs from. +func (o LookupAwsLogSourceResultOutput) Accounts() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupAwsLogSourceResult) []string { return v.Accounts }).(pulumi.StringArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupAwsLogSourceResultOutput{}) +} diff --git a/sdk/go/aws/securitylake/getDataLake.go b/sdk/go/aws/securitylake/getDataLake.go new file mode 100644 index 0000000000..896e876ee0 --- /dev/null +++ b/sdk/go/aws/securitylake/getDataLake.go @@ -0,0 +1,106 @@ +// 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 securitylake + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Resource Type definition for AWS::SecurityLake::DataLake +func LookupDataLake(ctx *pulumi.Context, args *LookupDataLakeArgs, opts ...pulumi.InvokeOption) (*LookupDataLakeResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupDataLakeResult + err := ctx.Invoke("aws-native:securitylake:getDataLake", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupDataLakeArgs struct { + // The Amazon Resource Name (ARN) created by you to provide to the subscriber. + Arn string `pulumi:"arn"` +} + +type LookupDataLakeResult struct { + // The Amazon Resource Name (ARN) created by you to provide to the subscriber. + Arn *string `pulumi:"arn"` + EncryptionConfiguration *DataLakeEncryptionConfiguration `pulumi:"encryptionConfiguration"` + LifecycleConfiguration *DataLakeLifecycleConfiguration `pulumi:"lifecycleConfiguration"` + ReplicationConfiguration *DataLakeReplicationConfiguration `pulumi:"replicationConfiguration"` + // The ARN for the Amazon Security Lake Amazon S3 bucket. + S3BucketArn *string `pulumi:"s3BucketArn"` + Tags []aws.Tag `pulumi:"tags"` +} + +func LookupDataLakeOutput(ctx *pulumi.Context, args LookupDataLakeOutputArgs, opts ...pulumi.InvokeOption) LookupDataLakeResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupDataLakeResult, error) { + args := v.(LookupDataLakeArgs) + r, err := LookupDataLake(ctx, &args, opts...) + var s LookupDataLakeResult + if r != nil { + s = *r + } + return s, err + }).(LookupDataLakeResultOutput) +} + +type LookupDataLakeOutputArgs struct { + // The Amazon Resource Name (ARN) created by you to provide to the subscriber. + Arn pulumi.StringInput `pulumi:"arn"` +} + +func (LookupDataLakeOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupDataLakeArgs)(nil)).Elem() +} + +type LookupDataLakeResultOutput struct{ *pulumi.OutputState } + +func (LookupDataLakeResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupDataLakeResult)(nil)).Elem() +} + +func (o LookupDataLakeResultOutput) ToLookupDataLakeResultOutput() LookupDataLakeResultOutput { + return o +} + +func (o LookupDataLakeResultOutput) ToLookupDataLakeResultOutputWithContext(ctx context.Context) LookupDataLakeResultOutput { + return o +} + +// The Amazon Resource Name (ARN) created by you to provide to the subscriber. +func (o LookupDataLakeResultOutput) Arn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDataLakeResult) *string { return v.Arn }).(pulumi.StringPtrOutput) +} + +func (o LookupDataLakeResultOutput) EncryptionConfiguration() DataLakeEncryptionConfigurationPtrOutput { + return o.ApplyT(func(v LookupDataLakeResult) *DataLakeEncryptionConfiguration { return v.EncryptionConfiguration }).(DataLakeEncryptionConfigurationPtrOutput) +} + +func (o LookupDataLakeResultOutput) LifecycleConfiguration() DataLakeLifecycleConfigurationPtrOutput { + return o.ApplyT(func(v LookupDataLakeResult) *DataLakeLifecycleConfiguration { return v.LifecycleConfiguration }).(DataLakeLifecycleConfigurationPtrOutput) +} + +func (o LookupDataLakeResultOutput) ReplicationConfiguration() DataLakeReplicationConfigurationPtrOutput { + return o.ApplyT(func(v LookupDataLakeResult) *DataLakeReplicationConfiguration { return v.ReplicationConfiguration }).(DataLakeReplicationConfigurationPtrOutput) +} + +// The ARN for the Amazon Security Lake Amazon S3 bucket. +func (o LookupDataLakeResultOutput) S3BucketArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDataLakeResult) *string { return v.S3BucketArn }).(pulumi.StringPtrOutput) +} + +func (o LookupDataLakeResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupDataLakeResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupDataLakeResultOutput{}) +} diff --git a/sdk/go/aws/securitylake/getSubscriber.go b/sdk/go/aws/securitylake/getSubscriber.go new file mode 100644 index 0000000000..31fa354d9e --- /dev/null +++ b/sdk/go/aws/securitylake/getSubscriber.go @@ -0,0 +1,135 @@ +// 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 securitylake + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Resource Type definition for AWS::SecurityLake::Subscriber +func LookupSubscriber(ctx *pulumi.Context, args *LookupSubscriberArgs, opts ...pulumi.InvokeOption) (*LookupSubscriberResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupSubscriberResult + err := ctx.Invoke("aws-native:securitylake:getSubscriber", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +type LookupSubscriberArgs struct { + SubscriberArn string `pulumi:"subscriberArn"` +} + +type LookupSubscriberResult struct { + AccessTypes []SubscriberAccessTypesItem `pulumi:"accessTypes"` + ResourceShareArn *string `pulumi:"resourceShareArn"` + ResourceShareName *string `pulumi:"resourceShareName"` + S3BucketArn *string `pulumi:"s3BucketArn"` + // The supported AWS services from which logs and events are collected. + Sources []interface{} `pulumi:"sources"` + SubscriberArn *string `pulumi:"subscriberArn"` + // The description for your subscriber account in Security Lake. + SubscriberDescription *string `pulumi:"subscriberDescription"` + // The AWS identity used to access your data. + SubscriberIdentity *SubscriberIdentityProperties `pulumi:"subscriberIdentity"` + // The name of your Security Lake subscriber account. + SubscriberName *string `pulumi:"subscriberName"` + SubscriberRoleArn *string `pulumi:"subscriberRoleArn"` + // An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string. + Tags []aws.Tag `pulumi:"tags"` +} + +func LookupSubscriberOutput(ctx *pulumi.Context, args LookupSubscriberOutputArgs, opts ...pulumi.InvokeOption) LookupSubscriberResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupSubscriberResult, error) { + args := v.(LookupSubscriberArgs) + r, err := LookupSubscriber(ctx, &args, opts...) + var s LookupSubscriberResult + if r != nil { + s = *r + } + return s, err + }).(LookupSubscriberResultOutput) +} + +type LookupSubscriberOutputArgs struct { + SubscriberArn pulumi.StringInput `pulumi:"subscriberArn"` +} + +func (LookupSubscriberOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupSubscriberArgs)(nil)).Elem() +} + +type LookupSubscriberResultOutput struct{ *pulumi.OutputState } + +func (LookupSubscriberResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupSubscriberResult)(nil)).Elem() +} + +func (o LookupSubscriberResultOutput) ToLookupSubscriberResultOutput() LookupSubscriberResultOutput { + return o +} + +func (o LookupSubscriberResultOutput) ToLookupSubscriberResultOutputWithContext(ctx context.Context) LookupSubscriberResultOutput { + return o +} + +func (o LookupSubscriberResultOutput) AccessTypes() SubscriberAccessTypesItemArrayOutput { + return o.ApplyT(func(v LookupSubscriberResult) []SubscriberAccessTypesItem { return v.AccessTypes }).(SubscriberAccessTypesItemArrayOutput) +} + +func (o LookupSubscriberResultOutput) ResourceShareArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupSubscriberResult) *string { return v.ResourceShareArn }).(pulumi.StringPtrOutput) +} + +func (o LookupSubscriberResultOutput) ResourceShareName() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupSubscriberResult) *string { return v.ResourceShareName }).(pulumi.StringPtrOutput) +} + +func (o LookupSubscriberResultOutput) S3BucketArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupSubscriberResult) *string { return v.S3BucketArn }).(pulumi.StringPtrOutput) +} + +// The supported AWS services from which logs and events are collected. +func (o LookupSubscriberResultOutput) Sources() pulumi.ArrayOutput { + return o.ApplyT(func(v LookupSubscriberResult) []interface{} { return v.Sources }).(pulumi.ArrayOutput) +} + +func (o LookupSubscriberResultOutput) SubscriberArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupSubscriberResult) *string { return v.SubscriberArn }).(pulumi.StringPtrOutput) +} + +// The description for your subscriber account in Security Lake. +func (o LookupSubscriberResultOutput) SubscriberDescription() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupSubscriberResult) *string { return v.SubscriberDescription }).(pulumi.StringPtrOutput) +} + +// The AWS identity used to access your data. +func (o LookupSubscriberResultOutput) SubscriberIdentity() SubscriberIdentityPropertiesPtrOutput { + return o.ApplyT(func(v LookupSubscriberResult) *SubscriberIdentityProperties { return v.SubscriberIdentity }).(SubscriberIdentityPropertiesPtrOutput) +} + +// The name of your Security Lake subscriber account. +func (o LookupSubscriberResultOutput) SubscriberName() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupSubscriberResult) *string { return v.SubscriberName }).(pulumi.StringPtrOutput) +} + +func (o LookupSubscriberResultOutput) SubscriberRoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupSubscriberResult) *string { return v.SubscriberRoleArn }).(pulumi.StringPtrOutput) +} + +// An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string. +func (o LookupSubscriberResultOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v LookupSubscriberResult) []aws.Tag { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupSubscriberResultOutput{}) +} diff --git a/sdk/go/aws/securitylake/init.go b/sdk/go/aws/securitylake/init.go new file mode 100644 index 0000000000..44418c1094 --- /dev/null +++ b/sdk/go/aws/securitylake/init.go @@ -0,0 +1,48 @@ +// 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 securitylake + +import ( + "fmt" + + "github.com/blang/semver" + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type module struct { + version semver.Version +} + +func (m *module) Version() semver.Version { + return m.version +} + +func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { + switch typ { + case "aws-native:securitylake:AwsLogSource": + r = &AwsLogSource{} + case "aws-native:securitylake:DataLake": + r = &DataLake{} + case "aws-native:securitylake:Subscriber": + r = &Subscriber{} + default: + return nil, fmt.Errorf("unknown resource type: %s", typ) + } + + err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return +} + +func init() { + version, err := internal.PkgVersion() + if err != nil { + version = semver.Version{Major: 1} + } + pulumi.RegisterResourceModule( + "aws-native", + "securitylake", + &module{version}, + ) +} diff --git a/sdk/go/aws/securitylake/pulumiEnums.go b/sdk/go/aws/securitylake/pulumiEnums.go new file mode 100644 index 0000000000..a29a3fd0b7 --- /dev/null +++ b/sdk/go/aws/securitylake/pulumiEnums.go @@ -0,0 +1,230 @@ +// 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 securitylake + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type SubscriberAccessTypesItem string + +const ( + SubscriberAccessTypesItemLakeformation = SubscriberAccessTypesItem("LAKEFORMATION") + SubscriberAccessTypesItemS3 = SubscriberAccessTypesItem("S3") +) + +func (SubscriberAccessTypesItem) ElementType() reflect.Type { + return reflect.TypeOf((*SubscriberAccessTypesItem)(nil)).Elem() +} + +func (e SubscriberAccessTypesItem) ToSubscriberAccessTypesItemOutput() SubscriberAccessTypesItemOutput { + return pulumi.ToOutput(e).(SubscriberAccessTypesItemOutput) +} + +func (e SubscriberAccessTypesItem) ToSubscriberAccessTypesItemOutputWithContext(ctx context.Context) SubscriberAccessTypesItemOutput { + return pulumi.ToOutputWithContext(ctx, e).(SubscriberAccessTypesItemOutput) +} + +func (e SubscriberAccessTypesItem) ToSubscriberAccessTypesItemPtrOutput() SubscriberAccessTypesItemPtrOutput { + return e.ToSubscriberAccessTypesItemPtrOutputWithContext(context.Background()) +} + +func (e SubscriberAccessTypesItem) ToSubscriberAccessTypesItemPtrOutputWithContext(ctx context.Context) SubscriberAccessTypesItemPtrOutput { + return SubscriberAccessTypesItem(e).ToSubscriberAccessTypesItemOutputWithContext(ctx).ToSubscriberAccessTypesItemPtrOutputWithContext(ctx) +} + +func (e SubscriberAccessTypesItem) ToStringOutput() pulumi.StringOutput { + return pulumi.ToOutput(pulumi.String(e)).(pulumi.StringOutput) +} + +func (e SubscriberAccessTypesItem) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return pulumi.ToOutputWithContext(ctx, pulumi.String(e)).(pulumi.StringOutput) +} + +func (e SubscriberAccessTypesItem) ToStringPtrOutput() pulumi.StringPtrOutput { + return pulumi.String(e).ToStringPtrOutputWithContext(context.Background()) +} + +func (e SubscriberAccessTypesItem) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return pulumi.String(e).ToStringOutputWithContext(ctx).ToStringPtrOutputWithContext(ctx) +} + +type SubscriberAccessTypesItemOutput struct{ *pulumi.OutputState } + +func (SubscriberAccessTypesItemOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SubscriberAccessTypesItem)(nil)).Elem() +} + +func (o SubscriberAccessTypesItemOutput) ToSubscriberAccessTypesItemOutput() SubscriberAccessTypesItemOutput { + return o +} + +func (o SubscriberAccessTypesItemOutput) ToSubscriberAccessTypesItemOutputWithContext(ctx context.Context) SubscriberAccessTypesItemOutput { + return o +} + +func (o SubscriberAccessTypesItemOutput) ToSubscriberAccessTypesItemPtrOutput() SubscriberAccessTypesItemPtrOutput { + return o.ToSubscriberAccessTypesItemPtrOutputWithContext(context.Background()) +} + +func (o SubscriberAccessTypesItemOutput) ToSubscriberAccessTypesItemPtrOutputWithContext(ctx context.Context) SubscriberAccessTypesItemPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SubscriberAccessTypesItem) *SubscriberAccessTypesItem { + return &v + }).(SubscriberAccessTypesItemPtrOutput) +} + +func (o SubscriberAccessTypesItemOutput) ToStringOutput() pulumi.StringOutput { + return o.ToStringOutputWithContext(context.Background()) +} + +func (o SubscriberAccessTypesItemOutput) ToStringOutputWithContext(ctx context.Context) pulumi.StringOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e SubscriberAccessTypesItem) string { + return string(e) + }).(pulumi.StringOutput) +} + +func (o SubscriberAccessTypesItemOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o SubscriberAccessTypesItemOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e SubscriberAccessTypesItem) *string { + v := string(e) + return &v + }).(pulumi.StringPtrOutput) +} + +type SubscriberAccessTypesItemPtrOutput struct{ *pulumi.OutputState } + +func (SubscriberAccessTypesItemPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SubscriberAccessTypesItem)(nil)).Elem() +} + +func (o SubscriberAccessTypesItemPtrOutput) ToSubscriberAccessTypesItemPtrOutput() SubscriberAccessTypesItemPtrOutput { + return o +} + +func (o SubscriberAccessTypesItemPtrOutput) ToSubscriberAccessTypesItemPtrOutputWithContext(ctx context.Context) SubscriberAccessTypesItemPtrOutput { + return o +} + +func (o SubscriberAccessTypesItemPtrOutput) Elem() SubscriberAccessTypesItemOutput { + return o.ApplyT(func(v *SubscriberAccessTypesItem) SubscriberAccessTypesItem { + if v != nil { + return *v + } + var ret SubscriberAccessTypesItem + return ret + }).(SubscriberAccessTypesItemOutput) +} + +func (o SubscriberAccessTypesItemPtrOutput) ToStringPtrOutput() pulumi.StringPtrOutput { + return o.ToStringPtrOutputWithContext(context.Background()) +} + +func (o SubscriberAccessTypesItemPtrOutput) ToStringPtrOutputWithContext(ctx context.Context) pulumi.StringPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, e *SubscriberAccessTypesItem) *string { + if e == nil { + return nil + } + v := string(*e) + return &v + }).(pulumi.StringPtrOutput) +} + +// SubscriberAccessTypesItemInput is an input type that accepts values of the SubscriberAccessTypesItem enum +// A concrete instance of `SubscriberAccessTypesItemInput` can be one of the following: +// +// SubscriberAccessTypesItemLakeformation +// SubscriberAccessTypesItemS3 +type SubscriberAccessTypesItemInput interface { + pulumi.Input + + ToSubscriberAccessTypesItemOutput() SubscriberAccessTypesItemOutput + ToSubscriberAccessTypesItemOutputWithContext(context.Context) SubscriberAccessTypesItemOutput +} + +var subscriberAccessTypesItemPtrType = reflect.TypeOf((**SubscriberAccessTypesItem)(nil)).Elem() + +type SubscriberAccessTypesItemPtrInput interface { + pulumi.Input + + ToSubscriberAccessTypesItemPtrOutput() SubscriberAccessTypesItemPtrOutput + ToSubscriberAccessTypesItemPtrOutputWithContext(context.Context) SubscriberAccessTypesItemPtrOutput +} + +type subscriberAccessTypesItemPtr string + +func SubscriberAccessTypesItemPtr(v string) SubscriberAccessTypesItemPtrInput { + return (*subscriberAccessTypesItemPtr)(&v) +} + +func (*subscriberAccessTypesItemPtr) ElementType() reflect.Type { + return subscriberAccessTypesItemPtrType +} + +func (in *subscriberAccessTypesItemPtr) ToSubscriberAccessTypesItemPtrOutput() SubscriberAccessTypesItemPtrOutput { + return pulumi.ToOutput(in).(SubscriberAccessTypesItemPtrOutput) +} + +func (in *subscriberAccessTypesItemPtr) ToSubscriberAccessTypesItemPtrOutputWithContext(ctx context.Context) SubscriberAccessTypesItemPtrOutput { + return pulumi.ToOutputWithContext(ctx, in).(SubscriberAccessTypesItemPtrOutput) +} + +// SubscriberAccessTypesItemArrayInput is an input type that accepts SubscriberAccessTypesItemArray and SubscriberAccessTypesItemArrayOutput values. +// You can construct a concrete instance of `SubscriberAccessTypesItemArrayInput` via: +// +// SubscriberAccessTypesItemArray{ SubscriberAccessTypesItemArgs{...} } +type SubscriberAccessTypesItemArrayInput interface { + pulumi.Input + + ToSubscriberAccessTypesItemArrayOutput() SubscriberAccessTypesItemArrayOutput + ToSubscriberAccessTypesItemArrayOutputWithContext(context.Context) SubscriberAccessTypesItemArrayOutput +} + +type SubscriberAccessTypesItemArray []SubscriberAccessTypesItem + +func (SubscriberAccessTypesItemArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SubscriberAccessTypesItem)(nil)).Elem() +} + +func (i SubscriberAccessTypesItemArray) ToSubscriberAccessTypesItemArrayOutput() SubscriberAccessTypesItemArrayOutput { + return i.ToSubscriberAccessTypesItemArrayOutputWithContext(context.Background()) +} + +func (i SubscriberAccessTypesItemArray) ToSubscriberAccessTypesItemArrayOutputWithContext(ctx context.Context) SubscriberAccessTypesItemArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubscriberAccessTypesItemArrayOutput) +} + +type SubscriberAccessTypesItemArrayOutput struct{ *pulumi.OutputState } + +func (SubscriberAccessTypesItemArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SubscriberAccessTypesItem)(nil)).Elem() +} + +func (o SubscriberAccessTypesItemArrayOutput) ToSubscriberAccessTypesItemArrayOutput() SubscriberAccessTypesItemArrayOutput { + return o +} + +func (o SubscriberAccessTypesItemArrayOutput) ToSubscriberAccessTypesItemArrayOutputWithContext(ctx context.Context) SubscriberAccessTypesItemArrayOutput { + return o +} + +func (o SubscriberAccessTypesItemArrayOutput) Index(i pulumi.IntInput) SubscriberAccessTypesItemOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SubscriberAccessTypesItem { + return vs[0].([]SubscriberAccessTypesItem)[vs[1].(int)] + }).(SubscriberAccessTypesItemOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*SubscriberAccessTypesItemInput)(nil)).Elem(), SubscriberAccessTypesItem("LAKEFORMATION")) + pulumi.RegisterInputType(reflect.TypeOf((*SubscriberAccessTypesItemPtrInput)(nil)).Elem(), SubscriberAccessTypesItem("LAKEFORMATION")) + pulumi.RegisterInputType(reflect.TypeOf((*SubscriberAccessTypesItemArrayInput)(nil)).Elem(), SubscriberAccessTypesItemArray{}) + pulumi.RegisterOutputType(SubscriberAccessTypesItemOutput{}) + pulumi.RegisterOutputType(SubscriberAccessTypesItemPtrOutput{}) + pulumi.RegisterOutputType(SubscriberAccessTypesItemArrayOutput{}) +} diff --git a/sdk/go/aws/securitylake/pulumiTypes.go b/sdk/go/aws/securitylake/pulumiTypes.go new file mode 100644 index 0000000000..2743139763 --- /dev/null +++ b/sdk/go/aws/securitylake/pulumiTypes.go @@ -0,0 +1,1086 @@ +// 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 securitylake + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +var _ = internal.GetEnvOrDefault + +// Provides encryption details of Amazon Security Lake object. +type DataLakeEncryptionConfiguration struct { + // The id of KMS encryption key used by Amazon Security Lake to encrypt the Security Lake object. + KmsKeyId *string `pulumi:"kmsKeyId"` +} + +// DataLakeEncryptionConfigurationInput is an input type that accepts DataLakeEncryptionConfigurationArgs and DataLakeEncryptionConfigurationOutput values. +// You can construct a concrete instance of `DataLakeEncryptionConfigurationInput` via: +// +// DataLakeEncryptionConfigurationArgs{...} +type DataLakeEncryptionConfigurationInput interface { + pulumi.Input + + ToDataLakeEncryptionConfigurationOutput() DataLakeEncryptionConfigurationOutput + ToDataLakeEncryptionConfigurationOutputWithContext(context.Context) DataLakeEncryptionConfigurationOutput +} + +// Provides encryption details of Amazon Security Lake object. +type DataLakeEncryptionConfigurationArgs struct { + // The id of KMS encryption key used by Amazon Security Lake to encrypt the Security Lake object. + KmsKeyId pulumi.StringPtrInput `pulumi:"kmsKeyId"` +} + +func (DataLakeEncryptionConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DataLakeEncryptionConfiguration)(nil)).Elem() +} + +func (i DataLakeEncryptionConfigurationArgs) ToDataLakeEncryptionConfigurationOutput() DataLakeEncryptionConfigurationOutput { + return i.ToDataLakeEncryptionConfigurationOutputWithContext(context.Background()) +} + +func (i DataLakeEncryptionConfigurationArgs) ToDataLakeEncryptionConfigurationOutputWithContext(ctx context.Context) DataLakeEncryptionConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataLakeEncryptionConfigurationOutput) +} + +func (i DataLakeEncryptionConfigurationArgs) ToDataLakeEncryptionConfigurationPtrOutput() DataLakeEncryptionConfigurationPtrOutput { + return i.ToDataLakeEncryptionConfigurationPtrOutputWithContext(context.Background()) +} + +func (i DataLakeEncryptionConfigurationArgs) ToDataLakeEncryptionConfigurationPtrOutputWithContext(ctx context.Context) DataLakeEncryptionConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataLakeEncryptionConfigurationOutput).ToDataLakeEncryptionConfigurationPtrOutputWithContext(ctx) +} + +// DataLakeEncryptionConfigurationPtrInput is an input type that accepts DataLakeEncryptionConfigurationArgs, DataLakeEncryptionConfigurationPtr and DataLakeEncryptionConfigurationPtrOutput values. +// You can construct a concrete instance of `DataLakeEncryptionConfigurationPtrInput` via: +// +// DataLakeEncryptionConfigurationArgs{...} +// +// or: +// +// nil +type DataLakeEncryptionConfigurationPtrInput interface { + pulumi.Input + + ToDataLakeEncryptionConfigurationPtrOutput() DataLakeEncryptionConfigurationPtrOutput + ToDataLakeEncryptionConfigurationPtrOutputWithContext(context.Context) DataLakeEncryptionConfigurationPtrOutput +} + +type dataLakeEncryptionConfigurationPtrType DataLakeEncryptionConfigurationArgs + +func DataLakeEncryptionConfigurationPtr(v *DataLakeEncryptionConfigurationArgs) DataLakeEncryptionConfigurationPtrInput { + return (*dataLakeEncryptionConfigurationPtrType)(v) +} + +func (*dataLakeEncryptionConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DataLakeEncryptionConfiguration)(nil)).Elem() +} + +func (i *dataLakeEncryptionConfigurationPtrType) ToDataLakeEncryptionConfigurationPtrOutput() DataLakeEncryptionConfigurationPtrOutput { + return i.ToDataLakeEncryptionConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *dataLakeEncryptionConfigurationPtrType) ToDataLakeEncryptionConfigurationPtrOutputWithContext(ctx context.Context) DataLakeEncryptionConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataLakeEncryptionConfigurationPtrOutput) +} + +// Provides encryption details of Amazon Security Lake object. +type DataLakeEncryptionConfigurationOutput struct{ *pulumi.OutputState } + +func (DataLakeEncryptionConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DataLakeEncryptionConfiguration)(nil)).Elem() +} + +func (o DataLakeEncryptionConfigurationOutput) ToDataLakeEncryptionConfigurationOutput() DataLakeEncryptionConfigurationOutput { + return o +} + +func (o DataLakeEncryptionConfigurationOutput) ToDataLakeEncryptionConfigurationOutputWithContext(ctx context.Context) DataLakeEncryptionConfigurationOutput { + return o +} + +func (o DataLakeEncryptionConfigurationOutput) ToDataLakeEncryptionConfigurationPtrOutput() DataLakeEncryptionConfigurationPtrOutput { + return o.ToDataLakeEncryptionConfigurationPtrOutputWithContext(context.Background()) +} + +func (o DataLakeEncryptionConfigurationOutput) ToDataLakeEncryptionConfigurationPtrOutputWithContext(ctx context.Context) DataLakeEncryptionConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DataLakeEncryptionConfiguration) *DataLakeEncryptionConfiguration { + return &v + }).(DataLakeEncryptionConfigurationPtrOutput) +} + +// The id of KMS encryption key used by Amazon Security Lake to encrypt the Security Lake object. +func (o DataLakeEncryptionConfigurationOutput) KmsKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v DataLakeEncryptionConfiguration) *string { return v.KmsKeyId }).(pulumi.StringPtrOutput) +} + +type DataLakeEncryptionConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (DataLakeEncryptionConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DataLakeEncryptionConfiguration)(nil)).Elem() +} + +func (o DataLakeEncryptionConfigurationPtrOutput) ToDataLakeEncryptionConfigurationPtrOutput() DataLakeEncryptionConfigurationPtrOutput { + return o +} + +func (o DataLakeEncryptionConfigurationPtrOutput) ToDataLakeEncryptionConfigurationPtrOutputWithContext(ctx context.Context) DataLakeEncryptionConfigurationPtrOutput { + return o +} + +func (o DataLakeEncryptionConfigurationPtrOutput) Elem() DataLakeEncryptionConfigurationOutput { + return o.ApplyT(func(v *DataLakeEncryptionConfiguration) DataLakeEncryptionConfiguration { + if v != nil { + return *v + } + var ret DataLakeEncryptionConfiguration + return ret + }).(DataLakeEncryptionConfigurationOutput) +} + +// The id of KMS encryption key used by Amazon Security Lake to encrypt the Security Lake object. +func (o DataLakeEncryptionConfigurationPtrOutput) KmsKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DataLakeEncryptionConfiguration) *string { + if v == nil { + return nil + } + return v.KmsKeyId + }).(pulumi.StringPtrOutput) +} + +// Provides data expiration details of Amazon Security Lake object. +type DataLakeExpiration struct { + Days *int `pulumi:"days"` +} + +// DataLakeExpirationInput is an input type that accepts DataLakeExpirationArgs and DataLakeExpirationOutput values. +// You can construct a concrete instance of `DataLakeExpirationInput` via: +// +// DataLakeExpirationArgs{...} +type DataLakeExpirationInput interface { + pulumi.Input + + ToDataLakeExpirationOutput() DataLakeExpirationOutput + ToDataLakeExpirationOutputWithContext(context.Context) DataLakeExpirationOutput +} + +// Provides data expiration details of Amazon Security Lake object. +type DataLakeExpirationArgs struct { + Days pulumi.IntPtrInput `pulumi:"days"` +} + +func (DataLakeExpirationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DataLakeExpiration)(nil)).Elem() +} + +func (i DataLakeExpirationArgs) ToDataLakeExpirationOutput() DataLakeExpirationOutput { + return i.ToDataLakeExpirationOutputWithContext(context.Background()) +} + +func (i DataLakeExpirationArgs) ToDataLakeExpirationOutputWithContext(ctx context.Context) DataLakeExpirationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataLakeExpirationOutput) +} + +func (i DataLakeExpirationArgs) ToDataLakeExpirationPtrOutput() DataLakeExpirationPtrOutput { + return i.ToDataLakeExpirationPtrOutputWithContext(context.Background()) +} + +func (i DataLakeExpirationArgs) ToDataLakeExpirationPtrOutputWithContext(ctx context.Context) DataLakeExpirationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataLakeExpirationOutput).ToDataLakeExpirationPtrOutputWithContext(ctx) +} + +// DataLakeExpirationPtrInput is an input type that accepts DataLakeExpirationArgs, DataLakeExpirationPtr and DataLakeExpirationPtrOutput values. +// You can construct a concrete instance of `DataLakeExpirationPtrInput` via: +// +// DataLakeExpirationArgs{...} +// +// or: +// +// nil +type DataLakeExpirationPtrInput interface { + pulumi.Input + + ToDataLakeExpirationPtrOutput() DataLakeExpirationPtrOutput + ToDataLakeExpirationPtrOutputWithContext(context.Context) DataLakeExpirationPtrOutput +} + +type dataLakeExpirationPtrType DataLakeExpirationArgs + +func DataLakeExpirationPtr(v *DataLakeExpirationArgs) DataLakeExpirationPtrInput { + return (*dataLakeExpirationPtrType)(v) +} + +func (*dataLakeExpirationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DataLakeExpiration)(nil)).Elem() +} + +func (i *dataLakeExpirationPtrType) ToDataLakeExpirationPtrOutput() DataLakeExpirationPtrOutput { + return i.ToDataLakeExpirationPtrOutputWithContext(context.Background()) +} + +func (i *dataLakeExpirationPtrType) ToDataLakeExpirationPtrOutputWithContext(ctx context.Context) DataLakeExpirationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataLakeExpirationPtrOutput) +} + +// Provides data expiration details of Amazon Security Lake object. +type DataLakeExpirationOutput struct{ *pulumi.OutputState } + +func (DataLakeExpirationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DataLakeExpiration)(nil)).Elem() +} + +func (o DataLakeExpirationOutput) ToDataLakeExpirationOutput() DataLakeExpirationOutput { + return o +} + +func (o DataLakeExpirationOutput) ToDataLakeExpirationOutputWithContext(ctx context.Context) DataLakeExpirationOutput { + return o +} + +func (o DataLakeExpirationOutput) ToDataLakeExpirationPtrOutput() DataLakeExpirationPtrOutput { + return o.ToDataLakeExpirationPtrOutputWithContext(context.Background()) +} + +func (o DataLakeExpirationOutput) ToDataLakeExpirationPtrOutputWithContext(ctx context.Context) DataLakeExpirationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DataLakeExpiration) *DataLakeExpiration { + return &v + }).(DataLakeExpirationPtrOutput) +} + +func (o DataLakeExpirationOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v DataLakeExpiration) *int { return v.Days }).(pulumi.IntPtrOutput) +} + +type DataLakeExpirationPtrOutput struct{ *pulumi.OutputState } + +func (DataLakeExpirationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DataLakeExpiration)(nil)).Elem() +} + +func (o DataLakeExpirationPtrOutput) ToDataLakeExpirationPtrOutput() DataLakeExpirationPtrOutput { + return o +} + +func (o DataLakeExpirationPtrOutput) ToDataLakeExpirationPtrOutputWithContext(ctx context.Context) DataLakeExpirationPtrOutput { + return o +} + +func (o DataLakeExpirationPtrOutput) Elem() DataLakeExpirationOutput { + return o.ApplyT(func(v *DataLakeExpiration) DataLakeExpiration { + if v != nil { + return *v + } + var ret DataLakeExpiration + return ret + }).(DataLakeExpirationOutput) +} + +func (o DataLakeExpirationPtrOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DataLakeExpiration) *int { + if v == nil { + return nil + } + return v.Days + }).(pulumi.IntPtrOutput) +} + +// Provides lifecycle details of Amazon Security Lake object. +type DataLakeLifecycleConfiguration struct { + Expiration *DataLakeExpiration `pulumi:"expiration"` + // Provides data storage transition details of Amazon Security Lake object. + Transitions []DataLakeTransitions `pulumi:"transitions"` +} + +// DataLakeLifecycleConfigurationInput is an input type that accepts DataLakeLifecycleConfigurationArgs and DataLakeLifecycleConfigurationOutput values. +// You can construct a concrete instance of `DataLakeLifecycleConfigurationInput` via: +// +// DataLakeLifecycleConfigurationArgs{...} +type DataLakeLifecycleConfigurationInput interface { + pulumi.Input + + ToDataLakeLifecycleConfigurationOutput() DataLakeLifecycleConfigurationOutput + ToDataLakeLifecycleConfigurationOutputWithContext(context.Context) DataLakeLifecycleConfigurationOutput +} + +// Provides lifecycle details of Amazon Security Lake object. +type DataLakeLifecycleConfigurationArgs struct { + Expiration DataLakeExpirationPtrInput `pulumi:"expiration"` + // Provides data storage transition details of Amazon Security Lake object. + Transitions DataLakeTransitionsArrayInput `pulumi:"transitions"` +} + +func (DataLakeLifecycleConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DataLakeLifecycleConfiguration)(nil)).Elem() +} + +func (i DataLakeLifecycleConfigurationArgs) ToDataLakeLifecycleConfigurationOutput() DataLakeLifecycleConfigurationOutput { + return i.ToDataLakeLifecycleConfigurationOutputWithContext(context.Background()) +} + +func (i DataLakeLifecycleConfigurationArgs) ToDataLakeLifecycleConfigurationOutputWithContext(ctx context.Context) DataLakeLifecycleConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataLakeLifecycleConfigurationOutput) +} + +func (i DataLakeLifecycleConfigurationArgs) ToDataLakeLifecycleConfigurationPtrOutput() DataLakeLifecycleConfigurationPtrOutput { + return i.ToDataLakeLifecycleConfigurationPtrOutputWithContext(context.Background()) +} + +func (i DataLakeLifecycleConfigurationArgs) ToDataLakeLifecycleConfigurationPtrOutputWithContext(ctx context.Context) DataLakeLifecycleConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataLakeLifecycleConfigurationOutput).ToDataLakeLifecycleConfigurationPtrOutputWithContext(ctx) +} + +// DataLakeLifecycleConfigurationPtrInput is an input type that accepts DataLakeLifecycleConfigurationArgs, DataLakeLifecycleConfigurationPtr and DataLakeLifecycleConfigurationPtrOutput values. +// You can construct a concrete instance of `DataLakeLifecycleConfigurationPtrInput` via: +// +// DataLakeLifecycleConfigurationArgs{...} +// +// or: +// +// nil +type DataLakeLifecycleConfigurationPtrInput interface { + pulumi.Input + + ToDataLakeLifecycleConfigurationPtrOutput() DataLakeLifecycleConfigurationPtrOutput + ToDataLakeLifecycleConfigurationPtrOutputWithContext(context.Context) DataLakeLifecycleConfigurationPtrOutput +} + +type dataLakeLifecycleConfigurationPtrType DataLakeLifecycleConfigurationArgs + +func DataLakeLifecycleConfigurationPtr(v *DataLakeLifecycleConfigurationArgs) DataLakeLifecycleConfigurationPtrInput { + return (*dataLakeLifecycleConfigurationPtrType)(v) +} + +func (*dataLakeLifecycleConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DataLakeLifecycleConfiguration)(nil)).Elem() +} + +func (i *dataLakeLifecycleConfigurationPtrType) ToDataLakeLifecycleConfigurationPtrOutput() DataLakeLifecycleConfigurationPtrOutput { + return i.ToDataLakeLifecycleConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *dataLakeLifecycleConfigurationPtrType) ToDataLakeLifecycleConfigurationPtrOutputWithContext(ctx context.Context) DataLakeLifecycleConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataLakeLifecycleConfigurationPtrOutput) +} + +// Provides lifecycle details of Amazon Security Lake object. +type DataLakeLifecycleConfigurationOutput struct{ *pulumi.OutputState } + +func (DataLakeLifecycleConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DataLakeLifecycleConfiguration)(nil)).Elem() +} + +func (o DataLakeLifecycleConfigurationOutput) ToDataLakeLifecycleConfigurationOutput() DataLakeLifecycleConfigurationOutput { + return o +} + +func (o DataLakeLifecycleConfigurationOutput) ToDataLakeLifecycleConfigurationOutputWithContext(ctx context.Context) DataLakeLifecycleConfigurationOutput { + return o +} + +func (o DataLakeLifecycleConfigurationOutput) ToDataLakeLifecycleConfigurationPtrOutput() DataLakeLifecycleConfigurationPtrOutput { + return o.ToDataLakeLifecycleConfigurationPtrOutputWithContext(context.Background()) +} + +func (o DataLakeLifecycleConfigurationOutput) ToDataLakeLifecycleConfigurationPtrOutputWithContext(ctx context.Context) DataLakeLifecycleConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DataLakeLifecycleConfiguration) *DataLakeLifecycleConfiguration { + return &v + }).(DataLakeLifecycleConfigurationPtrOutput) +} + +func (o DataLakeLifecycleConfigurationOutput) Expiration() DataLakeExpirationPtrOutput { + return o.ApplyT(func(v DataLakeLifecycleConfiguration) *DataLakeExpiration { return v.Expiration }).(DataLakeExpirationPtrOutput) +} + +// Provides data storage transition details of Amazon Security Lake object. +func (o DataLakeLifecycleConfigurationOutput) Transitions() DataLakeTransitionsArrayOutput { + return o.ApplyT(func(v DataLakeLifecycleConfiguration) []DataLakeTransitions { return v.Transitions }).(DataLakeTransitionsArrayOutput) +} + +type DataLakeLifecycleConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (DataLakeLifecycleConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DataLakeLifecycleConfiguration)(nil)).Elem() +} + +func (o DataLakeLifecycleConfigurationPtrOutput) ToDataLakeLifecycleConfigurationPtrOutput() DataLakeLifecycleConfigurationPtrOutput { + return o +} + +func (o DataLakeLifecycleConfigurationPtrOutput) ToDataLakeLifecycleConfigurationPtrOutputWithContext(ctx context.Context) DataLakeLifecycleConfigurationPtrOutput { + return o +} + +func (o DataLakeLifecycleConfigurationPtrOutput) Elem() DataLakeLifecycleConfigurationOutput { + return o.ApplyT(func(v *DataLakeLifecycleConfiguration) DataLakeLifecycleConfiguration { + if v != nil { + return *v + } + var ret DataLakeLifecycleConfiguration + return ret + }).(DataLakeLifecycleConfigurationOutput) +} + +func (o DataLakeLifecycleConfigurationPtrOutput) Expiration() DataLakeExpirationPtrOutput { + return o.ApplyT(func(v *DataLakeLifecycleConfiguration) *DataLakeExpiration { + if v == nil { + return nil + } + return v.Expiration + }).(DataLakeExpirationPtrOutput) +} + +// Provides data storage transition details of Amazon Security Lake object. +func (o DataLakeLifecycleConfigurationPtrOutput) Transitions() DataLakeTransitionsArrayOutput { + return o.ApplyT(func(v *DataLakeLifecycleConfiguration) []DataLakeTransitions { + if v == nil { + return nil + } + return v.Transitions + }).(DataLakeTransitionsArrayOutput) +} + +// Provides replication details of Amazon Security Lake object. +type DataLakeReplicationConfiguration struct { + Regions []string `pulumi:"regions"` + // Replication settings for the Amazon S3 buckets. This parameter uses the AWS Identity and Access Management (IAM) role you created that is managed by Security Lake, to ensure the replication setting is correct. + RoleArn *string `pulumi:"roleArn"` +} + +// DataLakeReplicationConfigurationInput is an input type that accepts DataLakeReplicationConfigurationArgs and DataLakeReplicationConfigurationOutput values. +// You can construct a concrete instance of `DataLakeReplicationConfigurationInput` via: +// +// DataLakeReplicationConfigurationArgs{...} +type DataLakeReplicationConfigurationInput interface { + pulumi.Input + + ToDataLakeReplicationConfigurationOutput() DataLakeReplicationConfigurationOutput + ToDataLakeReplicationConfigurationOutputWithContext(context.Context) DataLakeReplicationConfigurationOutput +} + +// Provides replication details of Amazon Security Lake object. +type DataLakeReplicationConfigurationArgs struct { + Regions pulumi.StringArrayInput `pulumi:"regions"` + // Replication settings for the Amazon S3 buckets. This parameter uses the AWS Identity and Access Management (IAM) role you created that is managed by Security Lake, to ensure the replication setting is correct. + RoleArn pulumi.StringPtrInput `pulumi:"roleArn"` +} + +func (DataLakeReplicationConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DataLakeReplicationConfiguration)(nil)).Elem() +} + +func (i DataLakeReplicationConfigurationArgs) ToDataLakeReplicationConfigurationOutput() DataLakeReplicationConfigurationOutput { + return i.ToDataLakeReplicationConfigurationOutputWithContext(context.Background()) +} + +func (i DataLakeReplicationConfigurationArgs) ToDataLakeReplicationConfigurationOutputWithContext(ctx context.Context) DataLakeReplicationConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataLakeReplicationConfigurationOutput) +} + +func (i DataLakeReplicationConfigurationArgs) ToDataLakeReplicationConfigurationPtrOutput() DataLakeReplicationConfigurationPtrOutput { + return i.ToDataLakeReplicationConfigurationPtrOutputWithContext(context.Background()) +} + +func (i DataLakeReplicationConfigurationArgs) ToDataLakeReplicationConfigurationPtrOutputWithContext(ctx context.Context) DataLakeReplicationConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataLakeReplicationConfigurationOutput).ToDataLakeReplicationConfigurationPtrOutputWithContext(ctx) +} + +// DataLakeReplicationConfigurationPtrInput is an input type that accepts DataLakeReplicationConfigurationArgs, DataLakeReplicationConfigurationPtr and DataLakeReplicationConfigurationPtrOutput values. +// You can construct a concrete instance of `DataLakeReplicationConfigurationPtrInput` via: +// +// DataLakeReplicationConfigurationArgs{...} +// +// or: +// +// nil +type DataLakeReplicationConfigurationPtrInput interface { + pulumi.Input + + ToDataLakeReplicationConfigurationPtrOutput() DataLakeReplicationConfigurationPtrOutput + ToDataLakeReplicationConfigurationPtrOutputWithContext(context.Context) DataLakeReplicationConfigurationPtrOutput +} + +type dataLakeReplicationConfigurationPtrType DataLakeReplicationConfigurationArgs + +func DataLakeReplicationConfigurationPtr(v *DataLakeReplicationConfigurationArgs) DataLakeReplicationConfigurationPtrInput { + return (*dataLakeReplicationConfigurationPtrType)(v) +} + +func (*dataLakeReplicationConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DataLakeReplicationConfiguration)(nil)).Elem() +} + +func (i *dataLakeReplicationConfigurationPtrType) ToDataLakeReplicationConfigurationPtrOutput() DataLakeReplicationConfigurationPtrOutput { + return i.ToDataLakeReplicationConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *dataLakeReplicationConfigurationPtrType) ToDataLakeReplicationConfigurationPtrOutputWithContext(ctx context.Context) DataLakeReplicationConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataLakeReplicationConfigurationPtrOutput) +} + +// Provides replication details of Amazon Security Lake object. +type DataLakeReplicationConfigurationOutput struct{ *pulumi.OutputState } + +func (DataLakeReplicationConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DataLakeReplicationConfiguration)(nil)).Elem() +} + +func (o DataLakeReplicationConfigurationOutput) ToDataLakeReplicationConfigurationOutput() DataLakeReplicationConfigurationOutput { + return o +} + +func (o DataLakeReplicationConfigurationOutput) ToDataLakeReplicationConfigurationOutputWithContext(ctx context.Context) DataLakeReplicationConfigurationOutput { + return o +} + +func (o DataLakeReplicationConfigurationOutput) ToDataLakeReplicationConfigurationPtrOutput() DataLakeReplicationConfigurationPtrOutput { + return o.ToDataLakeReplicationConfigurationPtrOutputWithContext(context.Background()) +} + +func (o DataLakeReplicationConfigurationOutput) ToDataLakeReplicationConfigurationPtrOutputWithContext(ctx context.Context) DataLakeReplicationConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DataLakeReplicationConfiguration) *DataLakeReplicationConfiguration { + return &v + }).(DataLakeReplicationConfigurationPtrOutput) +} + +func (o DataLakeReplicationConfigurationOutput) Regions() pulumi.StringArrayOutput { + return o.ApplyT(func(v DataLakeReplicationConfiguration) []string { return v.Regions }).(pulumi.StringArrayOutput) +} + +// Replication settings for the Amazon S3 buckets. This parameter uses the AWS Identity and Access Management (IAM) role you created that is managed by Security Lake, to ensure the replication setting is correct. +func (o DataLakeReplicationConfigurationOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v DataLakeReplicationConfiguration) *string { return v.RoleArn }).(pulumi.StringPtrOutput) +} + +type DataLakeReplicationConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (DataLakeReplicationConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DataLakeReplicationConfiguration)(nil)).Elem() +} + +func (o DataLakeReplicationConfigurationPtrOutput) ToDataLakeReplicationConfigurationPtrOutput() DataLakeReplicationConfigurationPtrOutput { + return o +} + +func (o DataLakeReplicationConfigurationPtrOutput) ToDataLakeReplicationConfigurationPtrOutputWithContext(ctx context.Context) DataLakeReplicationConfigurationPtrOutput { + return o +} + +func (o DataLakeReplicationConfigurationPtrOutput) Elem() DataLakeReplicationConfigurationOutput { + return o.ApplyT(func(v *DataLakeReplicationConfiguration) DataLakeReplicationConfiguration { + if v != nil { + return *v + } + var ret DataLakeReplicationConfiguration + return ret + }).(DataLakeReplicationConfigurationOutput) +} + +func (o DataLakeReplicationConfigurationPtrOutput) Regions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *DataLakeReplicationConfiguration) []string { + if v == nil { + return nil + } + return v.Regions + }).(pulumi.StringArrayOutput) +} + +// Replication settings for the Amazon S3 buckets. This parameter uses the AWS Identity and Access Management (IAM) role you created that is managed by Security Lake, to ensure the replication setting is correct. +func (o DataLakeReplicationConfigurationPtrOutput) RoleArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DataLakeReplicationConfiguration) *string { + if v == nil { + return nil + } + return v.RoleArn + }).(pulumi.StringPtrOutput) +} + +// A key-value pair to associate with a resource. +type DataLakeTag 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 characters in length. + Value string `pulumi:"value"` +} + +type DataLakeTransitions struct { + // Number of days before data transitions to a different S3 Storage Class in the Amazon Security Lake object. + Days *int `pulumi:"days"` + // The range of storage classes that you can choose from based on the data access, resiliency, and cost requirements of your workloads. + StorageClass *string `pulumi:"storageClass"` +} + +// DataLakeTransitionsInput is an input type that accepts DataLakeTransitionsArgs and DataLakeTransitionsOutput values. +// You can construct a concrete instance of `DataLakeTransitionsInput` via: +// +// DataLakeTransitionsArgs{...} +type DataLakeTransitionsInput interface { + pulumi.Input + + ToDataLakeTransitionsOutput() DataLakeTransitionsOutput + ToDataLakeTransitionsOutputWithContext(context.Context) DataLakeTransitionsOutput +} + +type DataLakeTransitionsArgs struct { + // Number of days before data transitions to a different S3 Storage Class in the Amazon Security Lake object. + Days pulumi.IntPtrInput `pulumi:"days"` + // The range of storage classes that you can choose from based on the data access, resiliency, and cost requirements of your workloads. + StorageClass pulumi.StringPtrInput `pulumi:"storageClass"` +} + +func (DataLakeTransitionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DataLakeTransitions)(nil)).Elem() +} + +func (i DataLakeTransitionsArgs) ToDataLakeTransitionsOutput() DataLakeTransitionsOutput { + return i.ToDataLakeTransitionsOutputWithContext(context.Background()) +} + +func (i DataLakeTransitionsArgs) ToDataLakeTransitionsOutputWithContext(ctx context.Context) DataLakeTransitionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataLakeTransitionsOutput) +} + +// DataLakeTransitionsArrayInput is an input type that accepts DataLakeTransitionsArray and DataLakeTransitionsArrayOutput values. +// You can construct a concrete instance of `DataLakeTransitionsArrayInput` via: +// +// DataLakeTransitionsArray{ DataLakeTransitionsArgs{...} } +type DataLakeTransitionsArrayInput interface { + pulumi.Input + + ToDataLakeTransitionsArrayOutput() DataLakeTransitionsArrayOutput + ToDataLakeTransitionsArrayOutputWithContext(context.Context) DataLakeTransitionsArrayOutput +} + +type DataLakeTransitionsArray []DataLakeTransitionsInput + +func (DataLakeTransitionsArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DataLakeTransitions)(nil)).Elem() +} + +func (i DataLakeTransitionsArray) ToDataLakeTransitionsArrayOutput() DataLakeTransitionsArrayOutput { + return i.ToDataLakeTransitionsArrayOutputWithContext(context.Background()) +} + +func (i DataLakeTransitionsArray) ToDataLakeTransitionsArrayOutputWithContext(ctx context.Context) DataLakeTransitionsArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DataLakeTransitionsArrayOutput) +} + +type DataLakeTransitionsOutput struct{ *pulumi.OutputState } + +func (DataLakeTransitionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DataLakeTransitions)(nil)).Elem() +} + +func (o DataLakeTransitionsOutput) ToDataLakeTransitionsOutput() DataLakeTransitionsOutput { + return o +} + +func (o DataLakeTransitionsOutput) ToDataLakeTransitionsOutputWithContext(ctx context.Context) DataLakeTransitionsOutput { + return o +} + +// Number of days before data transitions to a different S3 Storage Class in the Amazon Security Lake object. +func (o DataLakeTransitionsOutput) Days() pulumi.IntPtrOutput { + return o.ApplyT(func(v DataLakeTransitions) *int { return v.Days }).(pulumi.IntPtrOutput) +} + +// The range of storage classes that you can choose from based on the data access, resiliency, and cost requirements of your workloads. +func (o DataLakeTransitionsOutput) StorageClass() pulumi.StringPtrOutput { + return o.ApplyT(func(v DataLakeTransitions) *string { return v.StorageClass }).(pulumi.StringPtrOutput) +} + +type DataLakeTransitionsArrayOutput struct{ *pulumi.OutputState } + +func (DataLakeTransitionsArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DataLakeTransitions)(nil)).Elem() +} + +func (o DataLakeTransitionsArrayOutput) ToDataLakeTransitionsArrayOutput() DataLakeTransitionsArrayOutput { + return o +} + +func (o DataLakeTransitionsArrayOutput) ToDataLakeTransitionsArrayOutputWithContext(ctx context.Context) DataLakeTransitionsArrayOutput { + return o +} + +func (o DataLakeTransitionsArrayOutput) Index(i pulumi.IntInput) DataLakeTransitionsOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DataLakeTransitions { + return vs[0].([]DataLakeTransitions)[vs[1].(int)] + }).(DataLakeTransitionsOutput) +} + +// Amazon Security Lake supports log and event collection for natively supported AWS services. +type SubscriberAwsLogSource struct { + // The name for a AWS source. This must be a Regionally unique value. + SourceName *string `pulumi:"sourceName"` + // The version for a AWS source. This must be a Regionally unique value. + SourceVersion *string `pulumi:"sourceVersion"` +} + +// SubscriberAwsLogSourceInput is an input type that accepts SubscriberAwsLogSourceArgs and SubscriberAwsLogSourceOutput values. +// You can construct a concrete instance of `SubscriberAwsLogSourceInput` via: +// +// SubscriberAwsLogSourceArgs{...} +type SubscriberAwsLogSourceInput interface { + pulumi.Input + + ToSubscriberAwsLogSourceOutput() SubscriberAwsLogSourceOutput + ToSubscriberAwsLogSourceOutputWithContext(context.Context) SubscriberAwsLogSourceOutput +} + +// Amazon Security Lake supports log and event collection for natively supported AWS services. +type SubscriberAwsLogSourceArgs struct { + // The name for a AWS source. This must be a Regionally unique value. + SourceName pulumi.StringPtrInput `pulumi:"sourceName"` + // The version for a AWS source. This must be a Regionally unique value. + SourceVersion pulumi.StringPtrInput `pulumi:"sourceVersion"` +} + +func (SubscriberAwsLogSourceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SubscriberAwsLogSource)(nil)).Elem() +} + +func (i SubscriberAwsLogSourceArgs) ToSubscriberAwsLogSourceOutput() SubscriberAwsLogSourceOutput { + return i.ToSubscriberAwsLogSourceOutputWithContext(context.Background()) +} + +func (i SubscriberAwsLogSourceArgs) ToSubscriberAwsLogSourceOutputWithContext(ctx context.Context) SubscriberAwsLogSourceOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubscriberAwsLogSourceOutput) +} + +// Amazon Security Lake supports log and event collection for natively supported AWS services. +type SubscriberAwsLogSourceOutput struct{ *pulumi.OutputState } + +func (SubscriberAwsLogSourceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SubscriberAwsLogSource)(nil)).Elem() +} + +func (o SubscriberAwsLogSourceOutput) ToSubscriberAwsLogSourceOutput() SubscriberAwsLogSourceOutput { + return o +} + +func (o SubscriberAwsLogSourceOutput) ToSubscriberAwsLogSourceOutputWithContext(ctx context.Context) SubscriberAwsLogSourceOutput { + return o +} + +// The name for a AWS source. This must be a Regionally unique value. +func (o SubscriberAwsLogSourceOutput) SourceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubscriberAwsLogSource) *string { return v.SourceName }).(pulumi.StringPtrOutput) +} + +// The version for a AWS source. This must be a Regionally unique value. +func (o SubscriberAwsLogSourceOutput) SourceVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubscriberAwsLogSource) *string { return v.SourceVersion }).(pulumi.StringPtrOutput) +} + +type SubscriberCustomLogSource struct { + // The name for a third-party custom source. This must be a Regionally unique value. + SourceName *string `pulumi:"sourceName"` + // The version for a third-party custom source. This must be a Regionally unique value. + SourceVersion *string `pulumi:"sourceVersion"` +} + +// SubscriberCustomLogSourceInput is an input type that accepts SubscriberCustomLogSourceArgs and SubscriberCustomLogSourceOutput values. +// You can construct a concrete instance of `SubscriberCustomLogSourceInput` via: +// +// SubscriberCustomLogSourceArgs{...} +type SubscriberCustomLogSourceInput interface { + pulumi.Input + + ToSubscriberCustomLogSourceOutput() SubscriberCustomLogSourceOutput + ToSubscriberCustomLogSourceOutputWithContext(context.Context) SubscriberCustomLogSourceOutput +} + +type SubscriberCustomLogSourceArgs struct { + // The name for a third-party custom source. This must be a Regionally unique value. + SourceName pulumi.StringPtrInput `pulumi:"sourceName"` + // The version for a third-party custom source. This must be a Regionally unique value. + SourceVersion pulumi.StringPtrInput `pulumi:"sourceVersion"` +} + +func (SubscriberCustomLogSourceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SubscriberCustomLogSource)(nil)).Elem() +} + +func (i SubscriberCustomLogSourceArgs) ToSubscriberCustomLogSourceOutput() SubscriberCustomLogSourceOutput { + return i.ToSubscriberCustomLogSourceOutputWithContext(context.Background()) +} + +func (i SubscriberCustomLogSourceArgs) ToSubscriberCustomLogSourceOutputWithContext(ctx context.Context) SubscriberCustomLogSourceOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubscriberCustomLogSourceOutput) +} + +type SubscriberCustomLogSourceOutput struct{ *pulumi.OutputState } + +func (SubscriberCustomLogSourceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SubscriberCustomLogSource)(nil)).Elem() +} + +func (o SubscriberCustomLogSourceOutput) ToSubscriberCustomLogSourceOutput() SubscriberCustomLogSourceOutput { + return o +} + +func (o SubscriberCustomLogSourceOutput) ToSubscriberCustomLogSourceOutputWithContext(ctx context.Context) SubscriberCustomLogSourceOutput { + return o +} + +// The name for a third-party custom source. This must be a Regionally unique value. +func (o SubscriberCustomLogSourceOutput) SourceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubscriberCustomLogSource) *string { return v.SourceName }).(pulumi.StringPtrOutput) +} + +// The version for a third-party custom source. This must be a Regionally unique value. +func (o SubscriberCustomLogSourceOutput) SourceVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubscriberCustomLogSource) *string { return v.SourceVersion }).(pulumi.StringPtrOutput) +} + +// The AWS identity used to access your data. +type SubscriberIdentityProperties struct { + // The external ID used to establish trust relationship with the AWS identity. + ExternalId string `pulumi:"externalId"` + // The AWS identity principal. + Principal string `pulumi:"principal"` +} + +// SubscriberIdentityPropertiesInput is an input type that accepts SubscriberIdentityPropertiesArgs and SubscriberIdentityPropertiesOutput values. +// You can construct a concrete instance of `SubscriberIdentityPropertiesInput` via: +// +// SubscriberIdentityPropertiesArgs{...} +type SubscriberIdentityPropertiesInput interface { + pulumi.Input + + ToSubscriberIdentityPropertiesOutput() SubscriberIdentityPropertiesOutput + ToSubscriberIdentityPropertiesOutputWithContext(context.Context) SubscriberIdentityPropertiesOutput +} + +// The AWS identity used to access your data. +type SubscriberIdentityPropertiesArgs struct { + // The external ID used to establish trust relationship with the AWS identity. + ExternalId pulumi.StringInput `pulumi:"externalId"` + // The AWS identity principal. + Principal pulumi.StringInput `pulumi:"principal"` +} + +func (SubscriberIdentityPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SubscriberIdentityProperties)(nil)).Elem() +} + +func (i SubscriberIdentityPropertiesArgs) ToSubscriberIdentityPropertiesOutput() SubscriberIdentityPropertiesOutput { + return i.ToSubscriberIdentityPropertiesOutputWithContext(context.Background()) +} + +func (i SubscriberIdentityPropertiesArgs) ToSubscriberIdentityPropertiesOutputWithContext(ctx context.Context) SubscriberIdentityPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubscriberIdentityPropertiesOutput) +} + +// The AWS identity used to access your data. +type SubscriberIdentityPropertiesOutput struct{ *pulumi.OutputState } + +func (SubscriberIdentityPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SubscriberIdentityProperties)(nil)).Elem() +} + +func (o SubscriberIdentityPropertiesOutput) ToSubscriberIdentityPropertiesOutput() SubscriberIdentityPropertiesOutput { + return o +} + +func (o SubscriberIdentityPropertiesOutput) ToSubscriberIdentityPropertiesOutputWithContext(ctx context.Context) SubscriberIdentityPropertiesOutput { + return o +} + +// The external ID used to establish trust relationship with the AWS identity. +func (o SubscriberIdentityPropertiesOutput) ExternalId() pulumi.StringOutput { + return o.ApplyT(func(v SubscriberIdentityProperties) string { return v.ExternalId }).(pulumi.StringOutput) +} + +// The AWS identity principal. +func (o SubscriberIdentityPropertiesOutput) Principal() pulumi.StringOutput { + return o.ApplyT(func(v SubscriberIdentityProperties) string { return v.Principal }).(pulumi.StringOutput) +} + +type SubscriberIdentityPropertiesPtrOutput struct{ *pulumi.OutputState } + +func (SubscriberIdentityPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SubscriberIdentityProperties)(nil)).Elem() +} + +func (o SubscriberIdentityPropertiesPtrOutput) ToSubscriberIdentityPropertiesPtrOutput() SubscriberIdentityPropertiesPtrOutput { + return o +} + +func (o SubscriberIdentityPropertiesPtrOutput) ToSubscriberIdentityPropertiesPtrOutputWithContext(ctx context.Context) SubscriberIdentityPropertiesPtrOutput { + return o +} + +func (o SubscriberIdentityPropertiesPtrOutput) Elem() SubscriberIdentityPropertiesOutput { + return o.ApplyT(func(v *SubscriberIdentityProperties) SubscriberIdentityProperties { + if v != nil { + return *v + } + var ret SubscriberIdentityProperties + return ret + }).(SubscriberIdentityPropertiesOutput) +} + +// The external ID used to establish trust relationship with the AWS identity. +func (o SubscriberIdentityPropertiesPtrOutput) ExternalId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubscriberIdentityProperties) *string { + if v == nil { + return nil + } + return &v.ExternalId + }).(pulumi.StringPtrOutput) +} + +// The AWS identity principal. +func (o SubscriberIdentityPropertiesPtrOutput) Principal() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubscriberIdentityProperties) *string { + if v == nil { + return nil + } + return &v.Principal + }).(pulumi.StringPtrOutput) +} + +type SubscriberSource0Properties struct { + AwsLogSource SubscriberAwsLogSource `pulumi:"awsLogSource"` +} + +// SubscriberSource0PropertiesInput is an input type that accepts SubscriberSource0PropertiesArgs and SubscriberSource0PropertiesOutput values. +// You can construct a concrete instance of `SubscriberSource0PropertiesInput` via: +// +// SubscriberSource0PropertiesArgs{...} +type SubscriberSource0PropertiesInput interface { + pulumi.Input + + ToSubscriberSource0PropertiesOutput() SubscriberSource0PropertiesOutput + ToSubscriberSource0PropertiesOutputWithContext(context.Context) SubscriberSource0PropertiesOutput +} + +type SubscriberSource0PropertiesArgs struct { + AwsLogSource SubscriberAwsLogSourceInput `pulumi:"awsLogSource"` +} + +func (SubscriberSource0PropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SubscriberSource0Properties)(nil)).Elem() +} + +func (i SubscriberSource0PropertiesArgs) ToSubscriberSource0PropertiesOutput() SubscriberSource0PropertiesOutput { + return i.ToSubscriberSource0PropertiesOutputWithContext(context.Background()) +} + +func (i SubscriberSource0PropertiesArgs) ToSubscriberSource0PropertiesOutputWithContext(ctx context.Context) SubscriberSource0PropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubscriberSource0PropertiesOutput) +} + +type SubscriberSource0PropertiesOutput struct{ *pulumi.OutputState } + +func (SubscriberSource0PropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SubscriberSource0Properties)(nil)).Elem() +} + +func (o SubscriberSource0PropertiesOutput) ToSubscriberSource0PropertiesOutput() SubscriberSource0PropertiesOutput { + return o +} + +func (o SubscriberSource0PropertiesOutput) ToSubscriberSource0PropertiesOutputWithContext(ctx context.Context) SubscriberSource0PropertiesOutput { + return o +} + +func (o SubscriberSource0PropertiesOutput) AwsLogSource() SubscriberAwsLogSourceOutput { + return o.ApplyT(func(v SubscriberSource0Properties) SubscriberAwsLogSource { return v.AwsLogSource }).(SubscriberAwsLogSourceOutput) +} + +type SubscriberSource1Properties struct { + CustomLogSource SubscriberCustomLogSource `pulumi:"customLogSource"` +} + +// SubscriberSource1PropertiesInput is an input type that accepts SubscriberSource1PropertiesArgs and SubscriberSource1PropertiesOutput values. +// You can construct a concrete instance of `SubscriberSource1PropertiesInput` via: +// +// SubscriberSource1PropertiesArgs{...} +type SubscriberSource1PropertiesInput interface { + pulumi.Input + + ToSubscriberSource1PropertiesOutput() SubscriberSource1PropertiesOutput + ToSubscriberSource1PropertiesOutputWithContext(context.Context) SubscriberSource1PropertiesOutput +} + +type SubscriberSource1PropertiesArgs struct { + CustomLogSource SubscriberCustomLogSourceInput `pulumi:"customLogSource"` +} + +func (SubscriberSource1PropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SubscriberSource1Properties)(nil)).Elem() +} + +func (i SubscriberSource1PropertiesArgs) ToSubscriberSource1PropertiesOutput() SubscriberSource1PropertiesOutput { + return i.ToSubscriberSource1PropertiesOutputWithContext(context.Background()) +} + +func (i SubscriberSource1PropertiesArgs) ToSubscriberSource1PropertiesOutputWithContext(ctx context.Context) SubscriberSource1PropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubscriberSource1PropertiesOutput) +} + +type SubscriberSource1PropertiesOutput struct{ *pulumi.OutputState } + +func (SubscriberSource1PropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SubscriberSource1Properties)(nil)).Elem() +} + +func (o SubscriberSource1PropertiesOutput) ToSubscriberSource1PropertiesOutput() SubscriberSource1PropertiesOutput { + return o +} + +func (o SubscriberSource1PropertiesOutput) ToSubscriberSource1PropertiesOutputWithContext(ctx context.Context) SubscriberSource1PropertiesOutput { + return o +} + +func (o SubscriberSource1PropertiesOutput) CustomLogSource() SubscriberCustomLogSourceOutput { + return o.ApplyT(func(v SubscriberSource1Properties) SubscriberCustomLogSource { return v.CustomLogSource }).(SubscriberCustomLogSourceOutput) +} + +type SubscriberTag struct { + // The name of the tag. This is a general label that acts as a category for a more specific tag value (value). + Key string `pulumi:"key"` + // The value that is associated with the specified tag key (key). This value acts as a descriptor for the tag key. A tag value cannot be null, but it can be an empty string. + Value string `pulumi:"value"` +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DataLakeEncryptionConfigurationInput)(nil)).Elem(), DataLakeEncryptionConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DataLakeEncryptionConfigurationPtrInput)(nil)).Elem(), DataLakeEncryptionConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DataLakeExpirationInput)(nil)).Elem(), DataLakeExpirationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DataLakeExpirationPtrInput)(nil)).Elem(), DataLakeExpirationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DataLakeLifecycleConfigurationInput)(nil)).Elem(), DataLakeLifecycleConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DataLakeLifecycleConfigurationPtrInput)(nil)).Elem(), DataLakeLifecycleConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DataLakeReplicationConfigurationInput)(nil)).Elem(), DataLakeReplicationConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DataLakeReplicationConfigurationPtrInput)(nil)).Elem(), DataLakeReplicationConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DataLakeTransitionsInput)(nil)).Elem(), DataLakeTransitionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DataLakeTransitionsArrayInput)(nil)).Elem(), DataLakeTransitionsArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SubscriberAwsLogSourceInput)(nil)).Elem(), SubscriberAwsLogSourceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SubscriberCustomLogSourceInput)(nil)).Elem(), SubscriberCustomLogSourceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SubscriberIdentityPropertiesInput)(nil)).Elem(), SubscriberIdentityPropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SubscriberSource0PropertiesInput)(nil)).Elem(), SubscriberSource0PropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SubscriberSource1PropertiesInput)(nil)).Elem(), SubscriberSource1PropertiesArgs{}) + pulumi.RegisterOutputType(DataLakeEncryptionConfigurationOutput{}) + pulumi.RegisterOutputType(DataLakeEncryptionConfigurationPtrOutput{}) + pulumi.RegisterOutputType(DataLakeExpirationOutput{}) + pulumi.RegisterOutputType(DataLakeExpirationPtrOutput{}) + pulumi.RegisterOutputType(DataLakeLifecycleConfigurationOutput{}) + pulumi.RegisterOutputType(DataLakeLifecycleConfigurationPtrOutput{}) + pulumi.RegisterOutputType(DataLakeReplicationConfigurationOutput{}) + pulumi.RegisterOutputType(DataLakeReplicationConfigurationPtrOutput{}) + pulumi.RegisterOutputType(DataLakeTransitionsOutput{}) + pulumi.RegisterOutputType(DataLakeTransitionsArrayOutput{}) + pulumi.RegisterOutputType(SubscriberAwsLogSourceOutput{}) + pulumi.RegisterOutputType(SubscriberCustomLogSourceOutput{}) + pulumi.RegisterOutputType(SubscriberIdentityPropertiesOutput{}) + pulumi.RegisterOutputType(SubscriberIdentityPropertiesPtrOutput{}) + pulumi.RegisterOutputType(SubscriberSource0PropertiesOutput{}) + pulumi.RegisterOutputType(SubscriberSource1PropertiesOutput{}) +} diff --git a/sdk/go/aws/securitylake/subscriber.go b/sdk/go/aws/securitylake/subscriber.go new file mode 100644 index 0000000000..4b7cdcbda2 --- /dev/null +++ b/sdk/go/aws/securitylake/subscriber.go @@ -0,0 +1,222 @@ +// 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 securitylake + +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" +) + +// Resource Type definition for AWS::SecurityLake::Subscriber +type Subscriber struct { + pulumi.CustomResourceState + + AccessTypes SubscriberAccessTypesItemArrayOutput `pulumi:"accessTypes"` + // The ARN for the data lake. + DataLakeArn pulumi.StringOutput `pulumi:"dataLakeArn"` + ResourceShareArn pulumi.StringOutput `pulumi:"resourceShareArn"` + ResourceShareName pulumi.StringOutput `pulumi:"resourceShareName"` + S3BucketArn pulumi.StringOutput `pulumi:"s3BucketArn"` + // The supported AWS services from which logs and events are collected. + Sources pulumi.ArrayOutput `pulumi:"sources"` + SubscriberArn pulumi.StringOutput `pulumi:"subscriberArn"` + // The description for your subscriber account in Security Lake. + SubscriberDescription pulumi.StringPtrOutput `pulumi:"subscriberDescription"` + // The AWS identity used to access your data. + SubscriberIdentity SubscriberIdentityPropertiesOutput `pulumi:"subscriberIdentity"` + // The name of your Security Lake subscriber account. + SubscriberName pulumi.StringOutput `pulumi:"subscriberName"` + SubscriberRoleArn pulumi.StringOutput `pulumi:"subscriberRoleArn"` + // An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string. + Tags aws.TagArrayOutput `pulumi:"tags"` +} + +// NewSubscriber registers a new resource with the given unique name, arguments, and options. +func NewSubscriber(ctx *pulumi.Context, + name string, args *SubscriberArgs, opts ...pulumi.ResourceOption) (*Subscriber, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AccessTypes == nil { + return nil, errors.New("invalid value for required argument 'AccessTypes'") + } + if args.DataLakeArn == nil { + return nil, errors.New("invalid value for required argument 'DataLakeArn'") + } + if args.Sources == nil { + return nil, errors.New("invalid value for required argument 'Sources'") + } + if args.SubscriberIdentity == nil { + return nil, errors.New("invalid value for required argument 'SubscriberIdentity'") + } + replaceOnChanges := pulumi.ReplaceOnChanges([]string{ + "dataLakeArn", + }) + opts = append(opts, replaceOnChanges) + opts = internal.PkgResourceDefaultOpts(opts) + var resource Subscriber + err := ctx.RegisterResource("aws-native:securitylake:Subscriber", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetSubscriber gets an existing Subscriber 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 GetSubscriber(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *SubscriberState, opts ...pulumi.ResourceOption) (*Subscriber, error) { + var resource Subscriber + err := ctx.ReadResource("aws-native:securitylake:Subscriber", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Subscriber resources. +type subscriberState struct { +} + +type SubscriberState struct { +} + +func (SubscriberState) ElementType() reflect.Type { + return reflect.TypeOf((*subscriberState)(nil)).Elem() +} + +type subscriberArgs struct { + AccessTypes []SubscriberAccessTypesItem `pulumi:"accessTypes"` + // The ARN for the data lake. + DataLakeArn string `pulumi:"dataLakeArn"` + // The supported AWS services from which logs and events are collected. + Sources []interface{} `pulumi:"sources"` + // The description for your subscriber account in Security Lake. + SubscriberDescription *string `pulumi:"subscriberDescription"` + // The AWS identity used to access your data. + SubscriberIdentity SubscriberIdentityProperties `pulumi:"subscriberIdentity"` + // The name of your Security Lake subscriber account. + SubscriberName *string `pulumi:"subscriberName"` + // An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string. + Tags []aws.Tag `pulumi:"tags"` +} + +// The set of arguments for constructing a Subscriber resource. +type SubscriberArgs struct { + AccessTypes SubscriberAccessTypesItemArrayInput + // The ARN for the data lake. + DataLakeArn pulumi.StringInput + // The supported AWS services from which logs and events are collected. + Sources pulumi.ArrayInput + // The description for your subscriber account in Security Lake. + SubscriberDescription pulumi.StringPtrInput + // The AWS identity used to access your data. + SubscriberIdentity SubscriberIdentityPropertiesInput + // The name of your Security Lake subscriber account. + SubscriberName pulumi.StringPtrInput + // An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string. + Tags aws.TagArrayInput +} + +func (SubscriberArgs) ElementType() reflect.Type { + return reflect.TypeOf((*subscriberArgs)(nil)).Elem() +} + +type SubscriberInput interface { + pulumi.Input + + ToSubscriberOutput() SubscriberOutput + ToSubscriberOutputWithContext(ctx context.Context) SubscriberOutput +} + +func (*Subscriber) ElementType() reflect.Type { + return reflect.TypeOf((**Subscriber)(nil)).Elem() +} + +func (i *Subscriber) ToSubscriberOutput() SubscriberOutput { + return i.ToSubscriberOutputWithContext(context.Background()) +} + +func (i *Subscriber) ToSubscriberOutputWithContext(ctx context.Context) SubscriberOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubscriberOutput) +} + +type SubscriberOutput struct{ *pulumi.OutputState } + +func (SubscriberOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Subscriber)(nil)).Elem() +} + +func (o SubscriberOutput) ToSubscriberOutput() SubscriberOutput { + return o +} + +func (o SubscriberOutput) ToSubscriberOutputWithContext(ctx context.Context) SubscriberOutput { + return o +} + +func (o SubscriberOutput) AccessTypes() SubscriberAccessTypesItemArrayOutput { + return o.ApplyT(func(v *Subscriber) SubscriberAccessTypesItemArrayOutput { return v.AccessTypes }).(SubscriberAccessTypesItemArrayOutput) +} + +// The ARN for the data lake. +func (o SubscriberOutput) DataLakeArn() pulumi.StringOutput { + return o.ApplyT(func(v *Subscriber) pulumi.StringOutput { return v.DataLakeArn }).(pulumi.StringOutput) +} + +func (o SubscriberOutput) ResourceShareArn() pulumi.StringOutput { + return o.ApplyT(func(v *Subscriber) pulumi.StringOutput { return v.ResourceShareArn }).(pulumi.StringOutput) +} + +func (o SubscriberOutput) ResourceShareName() pulumi.StringOutput { + return o.ApplyT(func(v *Subscriber) pulumi.StringOutput { return v.ResourceShareName }).(pulumi.StringOutput) +} + +func (o SubscriberOutput) S3BucketArn() pulumi.StringOutput { + return o.ApplyT(func(v *Subscriber) pulumi.StringOutput { return v.S3BucketArn }).(pulumi.StringOutput) +} + +// The supported AWS services from which logs and events are collected. +func (o SubscriberOutput) Sources() pulumi.ArrayOutput { + return o.ApplyT(func(v *Subscriber) pulumi.ArrayOutput { return v.Sources }).(pulumi.ArrayOutput) +} + +func (o SubscriberOutput) SubscriberArn() pulumi.StringOutput { + return o.ApplyT(func(v *Subscriber) pulumi.StringOutput { return v.SubscriberArn }).(pulumi.StringOutput) +} + +// The description for your subscriber account in Security Lake. +func (o SubscriberOutput) SubscriberDescription() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Subscriber) pulumi.StringPtrOutput { return v.SubscriberDescription }).(pulumi.StringPtrOutput) +} + +// The AWS identity used to access your data. +func (o SubscriberOutput) SubscriberIdentity() SubscriberIdentityPropertiesOutput { + return o.ApplyT(func(v *Subscriber) SubscriberIdentityPropertiesOutput { return v.SubscriberIdentity }).(SubscriberIdentityPropertiesOutput) +} + +// The name of your Security Lake subscriber account. +func (o SubscriberOutput) SubscriberName() pulumi.StringOutput { + return o.ApplyT(func(v *Subscriber) pulumi.StringOutput { return v.SubscriberName }).(pulumi.StringOutput) +} + +func (o SubscriberOutput) SubscriberRoleArn() pulumi.StringOutput { + return o.ApplyT(func(v *Subscriber) pulumi.StringOutput { return v.SubscriberRoleArn }).(pulumi.StringOutput) +} + +// An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string. +func (o SubscriberOutput) Tags() aws.TagArrayOutput { + return o.ApplyT(func(v *Subscriber) aws.TagArrayOutput { return v.Tags }).(aws.TagArrayOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*SubscriberInput)(nil)).Elem(), &Subscriber{}) + pulumi.RegisterOutputType(SubscriberOutput{}) +} diff --git a/sdk/nodejs/appintegrations/application.ts b/sdk/nodejs/appintegrations/application.ts new file mode 100644 index 0000000000..7bf4168ffa --- /dev/null +++ b/sdk/nodejs/appintegrations/application.ts @@ -0,0 +1,131 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Resource Type definition for AWS:AppIntegrations::Application + */ +export class Application extends pulumi.CustomResource { + /** + * Get an existing Application resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): Application { + return new Application(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:appintegrations:Application'; + + /** + * Returns true if the given object is an instance of Application. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Application { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Application.__pulumiType; + } + + /** + * The Amazon Resource Name (ARN) of the application. + */ + public /*out*/ readonly applicationArn!: pulumi.Output; + /** + * Application source config + */ + public readonly applicationSourceConfig!: pulumi.Output; + /** + * The id of the application. + */ + public /*out*/ readonly awsId!: pulumi.Output; + /** + * The application description. + */ + public readonly description!: pulumi.Output; + /** + * The name of the application. + */ + public readonly name!: pulumi.Output; + /** + * The namespace of the application. + */ + public readonly namespace!: pulumi.Output; + /** + * The tags (keys and values) associated with the application. + */ + public readonly tags!: pulumi.Output; + + /** + * Create a Application resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ApplicationArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.applicationSourceConfig === undefined) && !opts.urn) { + throw new Error("Missing required property 'applicationSourceConfig'"); + } + if ((!args || args.description === undefined) && !opts.urn) { + throw new Error("Missing required property 'description'"); + } + resourceInputs["applicationSourceConfig"] = args ? args.applicationSourceConfig : undefined; + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["namespace"] = args ? args.namespace : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["applicationArn"] = undefined /*out*/; + resourceInputs["awsId"] = undefined /*out*/; + } else { + resourceInputs["applicationArn"] = undefined /*out*/; + resourceInputs["applicationSourceConfig"] = undefined /*out*/; + resourceInputs["awsId"] = undefined /*out*/; + resourceInputs["description"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["namespace"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Application.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a Application resource. + */ +export interface ApplicationArgs { + /** + * Application source config + */ + applicationSourceConfig: pulumi.Input; + /** + * The application description. + */ + description: pulumi.Input; + /** + * The name of the application. + */ + name?: pulumi.Input; + /** + * The namespace of the application. + */ + namespace?: pulumi.Input; + /** + * The tags (keys and values) associated with the application. + */ + tags?: pulumi.Input[]>; +} diff --git a/sdk/nodejs/appintegrations/getApplication.ts b/sdk/nodejs/appintegrations/getApplication.ts new file mode 100644 index 0000000000..4cd30c3b1f --- /dev/null +++ b/sdk/nodejs/appintegrations/getApplication.ts @@ -0,0 +1,70 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Resource Type definition for AWS:AppIntegrations::Application + */ +export function getApplication(args: GetApplicationArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:appintegrations:getApplication", { + "applicationArn": args.applicationArn, + }, opts); +} + +export interface GetApplicationArgs { + /** + * The Amazon Resource Name (ARN) of the application. + */ + applicationArn: string; +} + +export interface GetApplicationResult { + /** + * The Amazon Resource Name (ARN) of the application. + */ + readonly applicationArn?: string; + /** + * Application source config + */ + readonly applicationSourceConfig?: outputs.appintegrations.ApplicationSourceConfigProperties; + /** + * The application description. + */ + readonly description?: string; + /** + * The id of the application. + */ + readonly id?: string; + /** + * The name of the application. + */ + readonly name?: string; + /** + * The namespace of the application. + */ + readonly namespace?: string; + /** + * The tags (keys and values) associated with the application. + */ + readonly tags?: outputs.Tag[]; +} +/** + * Resource Type definition for AWS:AppIntegrations::Application + */ +export function getApplicationOutput(args: GetApplicationOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getApplication(a, opts)) +} + +export interface GetApplicationOutputArgs { + /** + * The Amazon Resource Name (ARN) of the application. + */ + applicationArn: pulumi.Input; +} diff --git a/sdk/nodejs/appintegrations/index.ts b/sdk/nodejs/appintegrations/index.ts index d552d4c1de..de2a07284a 100644 --- a/sdk/nodejs/appintegrations/index.ts +++ b/sdk/nodejs/appintegrations/index.ts @@ -5,6 +5,11 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; // Export members: +export { ApplicationArgs } from "./application"; +export type Application = import("./application").Application; +export const Application: typeof import("./application").Application = null as any; +utilities.lazyLoad(exports, ["Application"], () => require("./application")); + export { DataIntegrationArgs } from "./dataIntegration"; export type DataIntegration = import("./dataIntegration").DataIntegration; export const DataIntegration: typeof import("./dataIntegration").DataIntegration = null as any; @@ -15,6 +20,11 @@ export type EventIntegration = import("./eventIntegration").EventIntegration; export const EventIntegration: typeof import("./eventIntegration").EventIntegration = null as any; utilities.lazyLoad(exports, ["EventIntegration"], () => require("./eventIntegration")); +export { GetApplicationArgs, GetApplicationResult, GetApplicationOutputArgs } from "./getApplication"; +export const getApplication: typeof import("./getApplication").getApplication = null as any; +export const getApplicationOutput: typeof import("./getApplication").getApplicationOutput = null as any; +utilities.lazyLoad(exports, ["getApplication","getApplicationOutput"], () => require("./getApplication")); + export { GetDataIntegrationArgs, GetDataIntegrationResult, GetDataIntegrationOutputArgs } from "./getDataIntegration"; export const getDataIntegration: typeof import("./getDataIntegration").getDataIntegration = null as any; export const getDataIntegrationOutput: typeof import("./getDataIntegration").getDataIntegrationOutput = null as any; @@ -30,6 +40,8 @@ const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { switch (type) { + case "aws-native:appintegrations:Application": + return new Application(name, undefined, { urn }) case "aws-native:appintegrations:DataIntegration": return new DataIntegration(name, undefined, { urn }) case "aws-native:appintegrations:EventIntegration": diff --git a/sdk/nodejs/appsync/getResolver.ts b/sdk/nodejs/appsync/getResolver.ts index 995b532f6c..519b7c6568 100644 --- a/sdk/nodejs/appsync/getResolver.ts +++ b/sdk/nodejs/appsync/getResolver.ts @@ -47,6 +47,9 @@ export interface GetResolverResult { * The maximum number of resolver request inputs that will be sent to a single LAMlong function in a ``BatchInvoke`` operation. */ readonly maxBatchSize?: number; + /** + * Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value. + */ readonly metricsConfig?: enums.appsync.ResolverMetricsConfig; /** * Functions linked with the pipeline resolver. diff --git a/sdk/nodejs/appsync/resolver.ts b/sdk/nodejs/appsync/resolver.ts index 811cbdff52..6057401073 100644 --- a/sdk/nodejs/appsync/resolver.ts +++ b/sdk/nodejs/appsync/resolver.ts @@ -98,6 +98,9 @@ export class Resolver extends pulumi.CustomResource { * The maximum number of resolver request inputs that will be sent to a single LAMlong function in a ``BatchInvoke`` operation. */ public readonly maxBatchSize!: pulumi.Output; + /** + * Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value. + */ public readonly metricsConfig!: pulumi.Output; /** * Functions linked with the pipeline resolver. @@ -237,6 +240,9 @@ export interface ResolverArgs { * The maximum number of resolver request inputs that will be sent to a single LAMlong function in a ``BatchInvoke`` operation. */ maxBatchSize?: pulumi.Input; + /** + * Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value. + */ metricsConfig?: pulumi.Input; /** * Functions linked with the pipeline resolver. diff --git a/sdk/nodejs/aps/getScraper.ts b/sdk/nodejs/aps/getScraper.ts new file mode 100644 index 0000000000..023a55dcf1 --- /dev/null +++ b/sdk/nodejs/aps/getScraper.ts @@ -0,0 +1,58 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Resource Type definition for AWS::APS::Scraper + */ +export function getScraper(args: GetScraperArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:aps:getScraper", { + "arn": args.arn, + }, opts); +} + +export interface GetScraperArgs { + /** + * Scraper ARN. + */ + arn: string; +} + +export interface GetScraperResult { + /** + * Scraper ARN. + */ + readonly arn?: string; + /** + * IAM role ARN for the scraper. + */ + readonly roleArn?: string; + /** + * Required to identify a specific scraper. + */ + readonly scraperId?: string; + /** + * An array of key-value pairs to apply to this resource. + */ + readonly tags?: outputs.Tag[]; +} +/** + * Resource Type definition for AWS::APS::Scraper + */ +export function getScraperOutput(args: GetScraperOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getScraper(a, opts)) +} + +export interface GetScraperOutputArgs { + /** + * Scraper ARN. + */ + arn: pulumi.Input; +} diff --git a/sdk/nodejs/aps/index.ts b/sdk/nodejs/aps/index.ts index 8040d82cff..ad639d38b5 100644 --- a/sdk/nodejs/aps/index.ts +++ b/sdk/nodejs/aps/index.ts @@ -10,6 +10,11 @@ export const getRuleGroupsNamespace: typeof import("./getRuleGroupsNamespace").g export const getRuleGroupsNamespaceOutput: typeof import("./getRuleGroupsNamespace").getRuleGroupsNamespaceOutput = null as any; utilities.lazyLoad(exports, ["getRuleGroupsNamespace","getRuleGroupsNamespaceOutput"], () => require("./getRuleGroupsNamespace")); +export { GetScraperArgs, GetScraperResult, GetScraperOutputArgs } from "./getScraper"; +export const getScraper: typeof import("./getScraper").getScraper = null as any; +export const getScraperOutput: typeof import("./getScraper").getScraperOutput = null as any; +utilities.lazyLoad(exports, ["getScraper","getScraperOutput"], () => require("./getScraper")); + export { GetWorkspaceArgs, GetWorkspaceResult, GetWorkspaceOutputArgs } from "./getWorkspace"; export const getWorkspace: typeof import("./getWorkspace").getWorkspace = null as any; export const getWorkspaceOutput: typeof import("./getWorkspace").getWorkspaceOutput = null as any; @@ -20,6 +25,11 @@ export type RuleGroupsNamespace = import("./ruleGroupsNamespace").RuleGroupsName export const RuleGroupsNamespace: typeof import("./ruleGroupsNamespace").RuleGroupsNamespace = null as any; utilities.lazyLoad(exports, ["RuleGroupsNamespace"], () => require("./ruleGroupsNamespace")); +export { ScraperArgs } from "./scraper"; +export type Scraper = import("./scraper").Scraper; +export const Scraper: typeof import("./scraper").Scraper = null as any; +utilities.lazyLoad(exports, ["Scraper"], () => require("./scraper")); + export { WorkspaceArgs } from "./workspace"; export type Workspace = import("./workspace").Workspace; export const Workspace: typeof import("./workspace").Workspace = null as any; @@ -32,6 +42,8 @@ const _module = { switch (type) { case "aws-native:aps:RuleGroupsNamespace": return new RuleGroupsNamespace(name, undefined, { urn }) + case "aws-native:aps:Scraper": + return new Scraper(name, undefined, { urn }) case "aws-native:aps:Workspace": return new Workspace(name, undefined, { urn }) default: diff --git a/sdk/nodejs/aps/scraper.ts b/sdk/nodejs/aps/scraper.ts new file mode 100644 index 0000000000..b68e1e00c8 --- /dev/null +++ b/sdk/nodejs/aps/scraper.ts @@ -0,0 +1,124 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Resource Type definition for AWS::APS::Scraper + */ +export class Scraper extends pulumi.CustomResource { + /** + * Get an existing Scraper 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): Scraper { + return new Scraper(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:aps:Scraper'; + + /** + * Returns true if the given object is an instance of Scraper. 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 Scraper { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Scraper.__pulumiType; + } + + /** + * Scraper alias. + */ + public readonly alias!: pulumi.Output; + /** + * Scraper ARN. + */ + public /*out*/ readonly arn!: pulumi.Output; + public readonly destination!: pulumi.Output; + /** + * IAM role ARN for the scraper. + */ + public /*out*/ readonly roleArn!: pulumi.Output; + public readonly scrapeConfiguration!: pulumi.Output; + /** + * Required to identify a specific scraper. + */ + public /*out*/ readonly scraperId!: pulumi.Output; + public readonly source!: pulumi.Output; + /** + * An array of key-value pairs to apply to this resource. + */ + public readonly tags!: pulumi.Output; + + /** + * Create a Scraper 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: ScraperArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.destination === undefined) && !opts.urn) { + throw new Error("Missing required property 'destination'"); + } + if ((!args || args.scrapeConfiguration === undefined) && !opts.urn) { + throw new Error("Missing required property 'scrapeConfiguration'"); + } + if ((!args || args.source === undefined) && !opts.urn) { + throw new Error("Missing required property 'source'"); + } + resourceInputs["alias"] = args ? args.alias : undefined; + resourceInputs["destination"] = args ? args.destination : undefined; + resourceInputs["scrapeConfiguration"] = args ? args.scrapeConfiguration : undefined; + resourceInputs["source"] = args ? args.source : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["roleArn"] = undefined /*out*/; + resourceInputs["scraperId"] = undefined /*out*/; + } else { + resourceInputs["alias"] = undefined /*out*/; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["destination"] = undefined /*out*/; + resourceInputs["roleArn"] = undefined /*out*/; + resourceInputs["scrapeConfiguration"] = undefined /*out*/; + resourceInputs["scraperId"] = undefined /*out*/; + resourceInputs["source"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["alias", "destination", "scrapeConfiguration", "source"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(Scraper.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a Scraper resource. + */ +export interface ScraperArgs { + /** + * Scraper alias. + */ + alias?: pulumi.Input; + destination: pulumi.Input; + scrapeConfiguration: pulumi.Input; + source: pulumi.Input; + /** + * An array of key-value pairs to apply to this resource. + */ + tags?: pulumi.Input[]>; +} diff --git a/sdk/nodejs/bedrock/agent.ts b/sdk/nodejs/bedrock/agent.ts new file mode 100644 index 0000000000..cf47e40bdf --- /dev/null +++ b/sdk/nodejs/bedrock/agent.ts @@ -0,0 +1,232 @@ +// *** 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::Bedrock::Agent Resource Type + */ +export class Agent extends pulumi.CustomResource { + /** + * Get an existing Agent 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): Agent { + return new Agent(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:bedrock:Agent'; + + /** + * Returns true if the given object is an instance of Agent. 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 Agent { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Agent.__pulumiType; + } + + /** + * List of ActionGroups + */ + public readonly actionGroups!: pulumi.Output; + /** + * Arn representation of the Agent. + */ + public /*out*/ readonly agentArn!: pulumi.Output; + /** + * Identifier for a resource. + */ + public /*out*/ readonly agentId!: pulumi.Output; + /** + * Name for a resource. + */ + public readonly agentName!: pulumi.Output; + /** + * ARN of a IAM role. + */ + public readonly agentResourceRoleArn!: pulumi.Output; + public /*out*/ readonly agentStatus!: pulumi.Output; + /** + * Draft Agent Version. + */ + public /*out*/ readonly agentVersion!: pulumi.Output; + /** + * Specifies whether to automatically prepare after creating or updating the agent. + */ + public readonly autoPrepare!: pulumi.Output; + /** + * Time Stamp. + */ + public /*out*/ readonly createdAt!: pulumi.Output; + /** + * A KMS key ARN + */ + public readonly customerEncryptionKeyArn!: pulumi.Output; + /** + * Description of the Resource. + */ + public readonly description!: pulumi.Output; + /** + * Failure Reasons for Error. + */ + public /*out*/ readonly failureReasons!: pulumi.Output; + /** + * ARN or name of a Bedrock model. + */ + public readonly foundationModel!: pulumi.Output; + /** + * Max Session Time. + */ + public readonly idleSessionTtlInSeconds!: pulumi.Output; + /** + * Instruction for the agent. + */ + public readonly instruction!: pulumi.Output; + /** + * List of Agent Knowledge Bases + */ + public readonly knowledgeBases!: pulumi.Output; + /** + * Time Stamp. + */ + public /*out*/ readonly preparedAt!: pulumi.Output; + public readonly promptOverrideConfiguration!: pulumi.Output; + /** + * The recommended actions users can take to resolve an error in failureReasons. + */ + public /*out*/ readonly recommendedActions!: pulumi.Output; + /** + * Specifies whether to allow deleting agent while it is in use. + */ + public readonly skipResourceInUseCheckOnDelete!: pulumi.Output; + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * Time Stamp. + */ + public /*out*/ readonly updatedAt!: pulumi.Output; + + /** + * Create a Agent 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?: AgentArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + resourceInputs["actionGroups"] = args ? args.actionGroups : undefined; + resourceInputs["agentName"] = args ? args.agentName : undefined; + resourceInputs["agentResourceRoleArn"] = args ? args.agentResourceRoleArn : undefined; + resourceInputs["autoPrepare"] = args ? args.autoPrepare : undefined; + resourceInputs["customerEncryptionKeyArn"] = args ? args.customerEncryptionKeyArn : undefined; + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["foundationModel"] = args ? args.foundationModel : undefined; + resourceInputs["idleSessionTtlInSeconds"] = args ? args.idleSessionTtlInSeconds : undefined; + resourceInputs["instruction"] = args ? args.instruction : undefined; + resourceInputs["knowledgeBases"] = args ? args.knowledgeBases : undefined; + resourceInputs["promptOverrideConfiguration"] = args ? args.promptOverrideConfiguration : undefined; + resourceInputs["skipResourceInUseCheckOnDelete"] = args ? args.skipResourceInUseCheckOnDelete : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["agentArn"] = undefined /*out*/; + resourceInputs["agentId"] = undefined /*out*/; + resourceInputs["agentStatus"] = undefined /*out*/; + resourceInputs["agentVersion"] = undefined /*out*/; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["failureReasons"] = undefined /*out*/; + resourceInputs["preparedAt"] = undefined /*out*/; + resourceInputs["recommendedActions"] = undefined /*out*/; + resourceInputs["updatedAt"] = undefined /*out*/; + } else { + resourceInputs["actionGroups"] = undefined /*out*/; + resourceInputs["agentArn"] = undefined /*out*/; + resourceInputs["agentId"] = undefined /*out*/; + resourceInputs["agentName"] = undefined /*out*/; + resourceInputs["agentResourceRoleArn"] = undefined /*out*/; + resourceInputs["agentStatus"] = undefined /*out*/; + resourceInputs["agentVersion"] = undefined /*out*/; + resourceInputs["autoPrepare"] = undefined /*out*/; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["customerEncryptionKeyArn"] = undefined /*out*/; + resourceInputs["description"] = undefined /*out*/; + resourceInputs["failureReasons"] = undefined /*out*/; + resourceInputs["foundationModel"] = undefined /*out*/; + resourceInputs["idleSessionTtlInSeconds"] = undefined /*out*/; + resourceInputs["instruction"] = undefined /*out*/; + resourceInputs["knowledgeBases"] = undefined /*out*/; + resourceInputs["preparedAt"] = undefined /*out*/; + resourceInputs["promptOverrideConfiguration"] = undefined /*out*/; + resourceInputs["recommendedActions"] = undefined /*out*/; + resourceInputs["skipResourceInUseCheckOnDelete"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; + resourceInputs["updatedAt"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Agent.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a Agent resource. + */ +export interface AgentArgs { + /** + * List of ActionGroups + */ + actionGroups?: pulumi.Input[]>; + /** + * Name for a resource. + */ + agentName?: pulumi.Input; + /** + * ARN of a IAM role. + */ + agentResourceRoleArn?: pulumi.Input; + /** + * Specifies whether to automatically prepare after creating or updating the agent. + */ + autoPrepare?: pulumi.Input; + /** + * A KMS key ARN + */ + customerEncryptionKeyArn?: pulumi.Input; + /** + * Description of the Resource. + */ + description?: pulumi.Input; + /** + * ARN or name of a Bedrock model. + */ + foundationModel?: pulumi.Input; + /** + * Max Session Time. + */ + idleSessionTtlInSeconds?: pulumi.Input; + /** + * Instruction for the agent. + */ + instruction?: pulumi.Input; + /** + * List of Agent Knowledge Bases + */ + knowledgeBases?: pulumi.Input[]>; + promptOverrideConfiguration?: pulumi.Input; + /** + * Specifies whether to allow deleting agent while it is in use. + */ + skipResourceInUseCheckOnDelete?: pulumi.Input; + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; +} diff --git a/sdk/nodejs/bedrock/agentAlias.ts b/sdk/nodejs/bedrock/agentAlias.ts new file mode 100644 index 0000000000..407e7ed6a6 --- /dev/null +++ b/sdk/nodejs/bedrock/agentAlias.ts @@ -0,0 +1,145 @@ +// *** 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::Bedrock::AgentAlias Resource Type + */ +export class AgentAlias extends pulumi.CustomResource { + /** + * Get an existing AgentAlias 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): AgentAlias { + return new AgentAlias(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:bedrock:AgentAlias'; + + /** + * Returns true if the given object is an instance of AgentAlias. 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 AgentAlias { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === AgentAlias.__pulumiType; + } + + /** + * Arn representation of the Agent Alias. + */ + public /*out*/ readonly agentAliasArn!: pulumi.Output; + /** + * The list of history events for an alias for an Agent. + */ + public /*out*/ readonly agentAliasHistoryEvents!: pulumi.Output; + /** + * Id for an Agent Alias generated at the server side. + */ + public /*out*/ readonly agentAliasId!: pulumi.Output; + /** + * Name for a resource. + */ + public readonly agentAliasName!: pulumi.Output; + public /*out*/ readonly agentAliasStatus!: pulumi.Output; + /** + * Identifier for a resource. + */ + public readonly agentId!: pulumi.Output; + /** + * Time Stamp. + */ + public /*out*/ readonly createdAt!: pulumi.Output; + /** + * Description of the Resource. + */ + public readonly description!: pulumi.Output; + /** + * Routing configuration for an Agent alias. + */ + public readonly routingConfiguration!: pulumi.Output; + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * Time Stamp. + */ + public /*out*/ readonly updatedAt!: pulumi.Output; + + /** + * Create a AgentAlias 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: AgentAliasArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.agentId === undefined) && !opts.urn) { + throw new Error("Missing required property 'agentId'"); + } + resourceInputs["agentAliasName"] = args ? args.agentAliasName : undefined; + resourceInputs["agentId"] = args ? args.agentId : undefined; + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["routingConfiguration"] = args ? args.routingConfiguration : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["agentAliasArn"] = undefined /*out*/; + resourceInputs["agentAliasHistoryEvents"] = undefined /*out*/; + resourceInputs["agentAliasId"] = undefined /*out*/; + resourceInputs["agentAliasStatus"] = undefined /*out*/; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["updatedAt"] = undefined /*out*/; + } else { + resourceInputs["agentAliasArn"] = undefined /*out*/; + resourceInputs["agentAliasHistoryEvents"] = undefined /*out*/; + resourceInputs["agentAliasId"] = undefined /*out*/; + resourceInputs["agentAliasName"] = undefined /*out*/; + resourceInputs["agentAliasStatus"] = undefined /*out*/; + resourceInputs["agentId"] = undefined /*out*/; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["description"] = undefined /*out*/; + resourceInputs["routingConfiguration"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; + resourceInputs["updatedAt"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["agentId"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(AgentAlias.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a AgentAlias resource. + */ +export interface AgentAliasArgs { + /** + * Name for a resource. + */ + agentAliasName?: pulumi.Input; + /** + * Identifier for a resource. + */ + agentId: pulumi.Input; + /** + * Description of the Resource. + */ + description?: pulumi.Input; + /** + * Routing configuration for an Agent alias. + */ + routingConfiguration?: pulumi.Input[]>; + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; +} diff --git a/sdk/nodejs/bedrock/getAgent.ts b/sdk/nodejs/bedrock/getAgent.ts new file mode 100644 index 0000000000..20c3c831a4 --- /dev/null +++ b/sdk/nodejs/bedrock/getAgent.ts @@ -0,0 +1,113 @@ +// *** 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::Bedrock::Agent Resource Type + */ +export function getAgent(args: GetAgentArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:bedrock:getAgent", { + "agentId": args.agentId, + }, opts); +} + +export interface GetAgentArgs { + /** + * Identifier for a resource. + */ + agentId: string; +} + +export interface GetAgentResult { + /** + * List of ActionGroups + */ + readonly actionGroups?: outputs.bedrock.AgentActionGroup[]; + /** + * Arn representation of the Agent. + */ + readonly agentArn?: string; + /** + * Identifier for a resource. + */ + readonly agentId?: string; + /** + * Name for a resource. + */ + readonly agentName?: string; + /** + * ARN of a IAM role. + */ + readonly agentResourceRoleArn?: string; + readonly agentStatus?: enums.bedrock.AgentStatus; + /** + * Draft Agent Version. + */ + readonly agentVersion?: string; + /** + * Time Stamp. + */ + readonly createdAt?: string; + /** + * A KMS key ARN + */ + readonly customerEncryptionKeyArn?: string; + /** + * Description of the Resource. + */ + readonly description?: string; + /** + * Failure Reasons for Error. + */ + readonly failureReasons?: string[]; + /** + * ARN or name of a Bedrock model. + */ + readonly foundationModel?: string; + /** + * Max Session Time. + */ + readonly idleSessionTtlInSeconds?: number; + /** + * Instruction for the agent. + */ + readonly instruction?: string; + /** + * List of Agent Knowledge Bases + */ + readonly knowledgeBases?: outputs.bedrock.AgentKnowledgeBase[]; + /** + * Time Stamp. + */ + readonly preparedAt?: string; + readonly promptOverrideConfiguration?: outputs.bedrock.AgentPromptOverrideConfiguration; + /** + * The recommended actions users can take to resolve an error in failureReasons. + */ + readonly recommendedActions?: string[]; + readonly tags?: {[key: string]: string}; + /** + * Time Stamp. + */ + readonly updatedAt?: string; +} +/** + * Definition of AWS::Bedrock::Agent Resource Type + */ +export function getAgentOutput(args: GetAgentOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getAgent(a, opts)) +} + +export interface GetAgentOutputArgs { + /** + * Identifier for a resource. + */ + agentId: pulumi.Input; +} diff --git a/sdk/nodejs/bedrock/getAgentAlias.ts b/sdk/nodejs/bedrock/getAgentAlias.ts new file mode 100644 index 0000000000..5388202e87 --- /dev/null +++ b/sdk/nodejs/bedrock/getAgentAlias.ts @@ -0,0 +1,85 @@ +// *** 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::Bedrock::AgentAlias Resource Type + */ +export function getAgentAlias(args: GetAgentAliasArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:bedrock:getAgentAlias", { + "agentAliasId": args.agentAliasId, + "agentId": args.agentId, + }, opts); +} + +export interface GetAgentAliasArgs { + /** + * Id for an Agent Alias generated at the server side. + */ + agentAliasId: string; + /** + * Identifier for a resource. + */ + agentId: string; +} + +export interface GetAgentAliasResult { + /** + * Arn representation of the Agent Alias. + */ + readonly agentAliasArn?: string; + /** + * The list of history events for an alias for an Agent. + */ + readonly agentAliasHistoryEvents?: outputs.bedrock.AgentAliasHistoryEvent[]; + /** + * Id for an Agent Alias generated at the server side. + */ + readonly agentAliasId?: string; + /** + * Name for a resource. + */ + readonly agentAliasName?: string; + readonly agentAliasStatus?: enums.bedrock.AgentAliasStatus; + /** + * Time Stamp. + */ + readonly createdAt?: string; + /** + * Description of the Resource. + */ + readonly description?: string; + /** + * Routing configuration for an Agent alias. + */ + readonly routingConfiguration?: outputs.bedrock.AgentAliasRoutingConfigurationListItem[]; + readonly tags?: {[key: string]: string}; + /** + * Time Stamp. + */ + readonly updatedAt?: string; +} +/** + * Definition of AWS::Bedrock::AgentAlias Resource Type + */ +export function getAgentAliasOutput(args: GetAgentAliasOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getAgentAlias(a, opts)) +} + +export interface GetAgentAliasOutputArgs { + /** + * Id for an Agent Alias generated at the server side. + */ + agentAliasId: pulumi.Input; + /** + * Identifier for a resource. + */ + agentId: pulumi.Input; +} diff --git a/sdk/nodejs/bedrock/index.ts b/sdk/nodejs/bedrock/index.ts new file mode 100644 index 0000000000..d325944ee8 --- /dev/null +++ b/sdk/nodejs/bedrock/index.ts @@ -0,0 +1,45 @@ +// *** 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"; + +// Export members: +export { AgentArgs } from "./agent"; +export type Agent = import("./agent").Agent; +export const Agent: typeof import("./agent").Agent = null as any; +utilities.lazyLoad(exports, ["Agent"], () => require("./agent")); + +export { AgentAliasArgs } from "./agentAlias"; +export type AgentAlias = import("./agentAlias").AgentAlias; +export const AgentAlias: typeof import("./agentAlias").AgentAlias = null as any; +utilities.lazyLoad(exports, ["AgentAlias"], () => require("./agentAlias")); + +export { GetAgentArgs, GetAgentResult, GetAgentOutputArgs } from "./getAgent"; +export const getAgent: typeof import("./getAgent").getAgent = null as any; +export const getAgentOutput: typeof import("./getAgent").getAgentOutput = null as any; +utilities.lazyLoad(exports, ["getAgent","getAgentOutput"], () => require("./getAgent")); + +export { GetAgentAliasArgs, GetAgentAliasResult, GetAgentAliasOutputArgs } from "./getAgentAlias"; +export const getAgentAlias: typeof import("./getAgentAlias").getAgentAlias = null as any; +export const getAgentAliasOutput: typeof import("./getAgentAlias").getAgentAliasOutput = null as any; +utilities.lazyLoad(exports, ["getAgentAlias","getAgentAliasOutput"], () => require("./getAgentAlias")); + + +// Export enums: +export * from "../types/enums/bedrock"; + +const _module = { + version: utilities.getVersion(), + construct: (name: string, type: string, urn: string): pulumi.Resource => { + switch (type) { + case "aws-native:bedrock:Agent": + return new Agent(name, undefined, { urn }) + case "aws-native:bedrock:AgentAlias": + return new AgentAlias(name, undefined, { urn }) + default: + throw new Error(`unknown resource type ${type}`); + } + }, +}; +pulumi.runtime.registerResourceModule("aws-native", "bedrock", _module) diff --git a/sdk/nodejs/codeartifact/getPackageGroup.ts b/sdk/nodejs/codeartifact/getPackageGroup.ts new file mode 100644 index 0000000000..032af78175 --- /dev/null +++ b/sdk/nodejs/codeartifact/getPackageGroup.ts @@ -0,0 +1,66 @@ +// *** 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 resource schema to create a CodeArtifact package group. + */ +export function getPackageGroup(args: GetPackageGroupArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:codeartifact:getPackageGroup", { + "arn": args.arn, + }, opts); +} + +export interface GetPackageGroupArgs { + /** + * The ARN of the package group. + */ + arn: string; +} + +export interface GetPackageGroupResult { + /** + * The ARN of the package group. + */ + readonly arn?: string; + /** + * The contact info of the package group. + */ + readonly contactInfo?: string; + /** + * The text description of the package group. + */ + readonly description?: string; + /** + * The 12-digit account ID of the AWS account that owns the domain. + */ + readonly domainOwner?: string; + /** + * The package origin configuration of the package group. + */ + readonly originConfiguration?: outputs.codeartifact.PackageGroupOriginConfiguration; + /** + * An array of key-value pairs to apply to the package group. + */ + readonly tags?: outputs.Tag[]; +} +/** + * The resource schema to create a CodeArtifact package group. + */ +export function getPackageGroupOutput(args: GetPackageGroupOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getPackageGroup(a, opts)) +} + +export interface GetPackageGroupOutputArgs { + /** + * The ARN of the package group. + */ + arn: pulumi.Input; +} diff --git a/sdk/nodejs/codeartifact/index.ts b/sdk/nodejs/codeartifact/index.ts index b5d1beeabe..02f3ee8bb6 100644 --- a/sdk/nodejs/codeartifact/index.ts +++ b/sdk/nodejs/codeartifact/index.ts @@ -15,23 +15,38 @@ export const getDomain: typeof import("./getDomain").getDomain = null as any; export const getDomainOutput: typeof import("./getDomain").getDomainOutput = null as any; utilities.lazyLoad(exports, ["getDomain","getDomainOutput"], () => require("./getDomain")); +export { GetPackageGroupArgs, GetPackageGroupResult, GetPackageGroupOutputArgs } from "./getPackageGroup"; +export const getPackageGroup: typeof import("./getPackageGroup").getPackageGroup = null as any; +export const getPackageGroupOutput: typeof import("./getPackageGroup").getPackageGroupOutput = null as any; +utilities.lazyLoad(exports, ["getPackageGroup","getPackageGroupOutput"], () => require("./getPackageGroup")); + export { GetRepositoryArgs, GetRepositoryResult, GetRepositoryOutputArgs } from "./getRepository"; export const getRepository: typeof import("./getRepository").getRepository = null as any; export const getRepositoryOutput: typeof import("./getRepository").getRepositoryOutput = null as any; utilities.lazyLoad(exports, ["getRepository","getRepositoryOutput"], () => require("./getRepository")); +export { PackageGroupArgs } from "./packageGroup"; +export type PackageGroup = import("./packageGroup").PackageGroup; +export const PackageGroup: typeof import("./packageGroup").PackageGroup = null as any; +utilities.lazyLoad(exports, ["PackageGroup"], () => require("./packageGroup")); + export { RepositoryArgs } from "./repository"; export type Repository = import("./repository").Repository; export const Repository: typeof import("./repository").Repository = null as any; utilities.lazyLoad(exports, ["Repository"], () => require("./repository")); +// Export enums: +export * from "../types/enums/codeartifact"; + const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { switch (type) { case "aws-native:codeartifact:Domain": return new Domain(name, undefined, { urn }) + case "aws-native:codeartifact:PackageGroup": + return new PackageGroup(name, undefined, { urn }) case "aws-native:codeartifact:Repository": return new Repository(name, undefined, { urn }) default: diff --git a/sdk/nodejs/codeartifact/packageGroup.ts b/sdk/nodejs/codeartifact/packageGroup.ts new file mode 100644 index 0000000000..3088afd2c1 --- /dev/null +++ b/sdk/nodejs/codeartifact/packageGroup.ts @@ -0,0 +1,147 @@ +// *** 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 resource schema to create a CodeArtifact package group. + */ +export class PackageGroup extends pulumi.CustomResource { + /** + * Get an existing PackageGroup 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): PackageGroup { + return new PackageGroup(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:codeartifact:PackageGroup'; + + /** + * Returns true if the given object is an instance of PackageGroup. 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 PackageGroup { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === PackageGroup.__pulumiType; + } + + /** + * The ARN of the package group. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * The contact info of the package group. + */ + public readonly contactInfo!: pulumi.Output; + /** + * The text description of the package group. + */ + public readonly description!: pulumi.Output; + /** + * The name of the domain that contains the package group. + */ + public readonly domainName!: pulumi.Output; + /** + * The 12-digit account ID of the AWS account that owns the domain. + */ + public readonly domainOwner!: pulumi.Output; + /** + * The package origin configuration of the package group. + */ + public readonly originConfiguration!: pulumi.Output; + /** + * The package group pattern that is used to gather packages. + */ + public readonly pattern!: pulumi.Output; + /** + * An array of key-value pairs to apply to the package group. + */ + public readonly tags!: pulumi.Output; + + /** + * Create a PackageGroup 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: PackageGroupArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.domainName === undefined) && !opts.urn) { + throw new Error("Missing required property 'domainName'"); + } + if ((!args || args.pattern === undefined) && !opts.urn) { + throw new Error("Missing required property 'pattern'"); + } + resourceInputs["contactInfo"] = args ? args.contactInfo : undefined; + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["domainName"] = args ? args.domainName : undefined; + resourceInputs["domainOwner"] = args ? args.domainOwner : undefined; + resourceInputs["originConfiguration"] = args ? args.originConfiguration : undefined; + resourceInputs["pattern"] = args ? args.pattern : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["arn"] = undefined /*out*/; + } else { + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["contactInfo"] = undefined /*out*/; + resourceInputs["description"] = undefined /*out*/; + resourceInputs["domainName"] = undefined /*out*/; + resourceInputs["domainOwner"] = undefined /*out*/; + resourceInputs["originConfiguration"] = undefined /*out*/; + resourceInputs["pattern"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["domainName", "pattern"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(PackageGroup.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a PackageGroup resource. + */ +export interface PackageGroupArgs { + /** + * The contact info of the package group. + */ + contactInfo?: pulumi.Input; + /** + * The text description of the package group. + */ + description?: pulumi.Input; + /** + * The name of the domain that contains the package group. + */ + domainName: pulumi.Input; + /** + * The 12-digit account ID of the AWS account that owns the domain. + */ + domainOwner?: pulumi.Input; + /** + * The package origin configuration of the package group. + */ + originConfiguration?: pulumi.Input; + /** + * The package group pattern that is used to gather packages. + */ + pattern: pulumi.Input; + /** + * An array of key-value pairs to apply to the package group. + */ + tags?: pulumi.Input[]>; +} diff --git a/sdk/nodejs/codeconnections/connection.ts b/sdk/nodejs/codeconnections/connection.ts new file mode 100644 index 0000000000..860e779aaa --- /dev/null +++ b/sdk/nodejs/codeconnections/connection.ts @@ -0,0 +1,123 @@ +// *** 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 AWS::CodeConnections::Connection resource which can be used to connect external source providers with other AWS services (i.e. AWS CodePipeline) + */ +export class Connection extends pulumi.CustomResource { + /** + * Get an existing Connection 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): Connection { + return new Connection(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:codeconnections:Connection'; + + /** + * Returns true if the given object is an instance of Connection. 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 Connection { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Connection.__pulumiType; + } + + /** + * The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services. + */ + public /*out*/ readonly connectionArn!: pulumi.Output; + /** + * The name of the connection. Connection names must be unique in an AWS user account. + */ + public readonly connectionName!: pulumi.Output; + /** + * The current status of the connection. + */ + public /*out*/ readonly connectionStatus!: pulumi.Output; + /** + * The host arn configured to represent the infrastructure where your third-party provider is installed. You must specify either a ProviderType or a HostArn. + */ + public readonly hostArn!: pulumi.Output; + /** + * The name of the external provider where your third-party code repository is configured. For Bitbucket, this is the account ID of the owner of the Bitbucket repository. + */ + public /*out*/ readonly ownerAccountId!: pulumi.Output; + /** + * The name of the external provider where your third-party code repository is configured. You must specify either a ProviderType or a HostArn. + */ + public readonly providerType!: pulumi.Output; + /** + * Specifies the tags applied to a connection. + */ + public readonly tags!: pulumi.Output; + + /** + * Create a Connection 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?: ConnectionArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + resourceInputs["connectionName"] = args ? args.connectionName : undefined; + resourceInputs["hostArn"] = args ? args.hostArn : undefined; + resourceInputs["providerType"] = args ? args.providerType : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["connectionArn"] = undefined /*out*/; + resourceInputs["connectionStatus"] = undefined /*out*/; + resourceInputs["ownerAccountId"] = undefined /*out*/; + } else { + resourceInputs["connectionArn"] = undefined /*out*/; + resourceInputs["connectionName"] = undefined /*out*/; + resourceInputs["connectionStatus"] = undefined /*out*/; + resourceInputs["hostArn"] = undefined /*out*/; + resourceInputs["ownerAccountId"] = undefined /*out*/; + resourceInputs["providerType"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["connectionName", "hostArn", "providerType"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(Connection.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a Connection resource. + */ +export interface ConnectionArgs { + /** + * The name of the connection. Connection names must be unique in an AWS user account. + */ + connectionName?: pulumi.Input; + /** + * The host arn configured to represent the infrastructure where your third-party provider is installed. You must specify either a ProviderType or a HostArn. + */ + hostArn?: pulumi.Input; + /** + * The name of the external provider where your third-party code repository is configured. You must specify either a ProviderType or a HostArn. + */ + providerType?: pulumi.Input; + /** + * Specifies the tags applied to a connection. + */ + tags?: pulumi.Input[]>; +} diff --git a/sdk/nodejs/codeconnections/getConnection.ts b/sdk/nodejs/codeconnections/getConnection.ts new file mode 100644 index 0000000000..dbe961f520 --- /dev/null +++ b/sdk/nodejs/codeconnections/getConnection.ts @@ -0,0 +1,58 @@ +// *** 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 AWS::CodeConnections::Connection resource which can be used to connect external source providers with other AWS services (i.e. AWS CodePipeline) + */ +export function getConnection(args: GetConnectionArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:codeconnections:getConnection", { + "connectionArn": args.connectionArn, + }, opts); +} + +export interface GetConnectionArgs { + /** + * The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services. + */ + connectionArn: string; +} + +export interface GetConnectionResult { + /** + * The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services. + */ + readonly connectionArn?: string; + /** + * The current status of the connection. + */ + readonly connectionStatus?: string; + /** + * The name of the external provider where your third-party code repository is configured. For Bitbucket, this is the account ID of the owner of the Bitbucket repository. + */ + readonly ownerAccountId?: string; + /** + * Specifies the tags applied to a connection. + */ + readonly tags?: outputs.Tag[]; +} +/** + * Schema for AWS::CodeConnections::Connection resource which can be used to connect external source providers with other AWS services (i.e. AWS CodePipeline) + */ +export function getConnectionOutput(args: GetConnectionOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getConnection(a, opts)) +} + +export interface GetConnectionOutputArgs { + /** + * The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services. + */ + connectionArn: pulumi.Input; +} diff --git a/sdk/nodejs/codeconnections/index.ts b/sdk/nodejs/codeconnections/index.ts new file mode 100644 index 0000000000..f690e6a9d5 --- /dev/null +++ b/sdk/nodejs/codeconnections/index.ts @@ -0,0 +1,30 @@ +// *** 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"; + +// Export members: +export { ConnectionArgs } from "./connection"; +export type Connection = import("./connection").Connection; +export const Connection: typeof import("./connection").Connection = null as any; +utilities.lazyLoad(exports, ["Connection"], () => require("./connection")); + +export { GetConnectionArgs, GetConnectionResult, GetConnectionOutputArgs } from "./getConnection"; +export const getConnection: typeof import("./getConnection").getConnection = null as any; +export const getConnectionOutput: typeof import("./getConnection").getConnectionOutput = null as any; +utilities.lazyLoad(exports, ["getConnection","getConnectionOutput"], () => require("./getConnection")); + + +const _module = { + version: utilities.getVersion(), + construct: (name: string, type: string, urn: string): pulumi.Resource => { + switch (type) { + case "aws-native:codeconnections:Connection": + return new Connection(name, undefined, { urn }) + default: + throw new Error(`unknown resource type ${type}`); + } + }, +}; +pulumi.runtime.registerResourceModule("aws-native", "codeconnections", _module) diff --git a/sdk/nodejs/codestarconnections/getRepositoryLink.ts b/sdk/nodejs/codestarconnections/getRepositoryLink.ts index a0f153e5e4..e59f436243 100644 --- a/sdk/nodejs/codestarconnections/getRepositoryLink.ts +++ b/sdk/nodejs/codestarconnections/getRepositoryLink.ts @@ -37,7 +37,7 @@ export interface GetRepositoryLinkResult { /** * The name of the external provider where your third-party code repository is configured. */ - readonly providerType?: string; + readonly providerType?: enums.codestarconnections.RepositoryLinkProviderType; /** * A unique Amazon Resource Name (ARN) to designate the repository link. */ diff --git a/sdk/nodejs/codestarconnections/getSyncConfiguration.ts b/sdk/nodejs/codestarconnections/getSyncConfiguration.ts index d2d0e8c27c..3ffe85823c 100644 --- a/sdk/nodejs/codestarconnections/getSyncConfiguration.ts +++ b/sdk/nodejs/codestarconnections/getSyncConfiguration.ts @@ -2,6 +2,9 @@ // *** Do not edit by hand unless you're certain you know what you are doing! *** import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; import * as utilities from "../utilities"; /** @@ -43,7 +46,11 @@ export interface GetSyncConfigurationResult { /** * The name of the external provider where your third-party code repository is configured. */ - readonly providerType?: string; + readonly providerType?: enums.codestarconnections.SyncConfigurationProviderType; + /** + * Whether to enable or disable publishing of deployment status to source providers. + */ + readonly publishDeploymentStatus?: enums.codestarconnections.SyncConfigurationPublishDeploymentStatus; /** * A UUID that uniquely identifies the RepositoryLink that the SyncConfig is associated with. */ @@ -56,6 +63,10 @@ export interface GetSyncConfigurationResult { * The IAM Role that allows AWS to update CloudFormation stacks based on content in the specified repository. */ readonly roleArn?: string; + /** + * When to trigger Git sync to begin the stack update. + */ + readonly triggerResourceUpdateOn?: enums.codestarconnections.SyncConfigurationTriggerResourceUpdateOn; } /** * Schema for AWS::CodeStarConnections::SyncConfiguration resource which is used to enables an AWS resource to be synchronized from a source-provider. diff --git a/sdk/nodejs/codestarconnections/index.ts b/sdk/nodejs/codestarconnections/index.ts index 987fcf3eb6..6adbd97755 100644 --- a/sdk/nodejs/codestarconnections/index.ts +++ b/sdk/nodejs/codestarconnections/index.ts @@ -36,6 +36,9 @@ export const SyncConfiguration: typeof import("./syncConfiguration").SyncConfigu utilities.lazyLoad(exports, ["SyncConfiguration"], () => require("./syncConfiguration")); +// Export enums: +export * from "../types/enums/codestarconnections"; + const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { diff --git a/sdk/nodejs/codestarconnections/repositoryLink.ts b/sdk/nodejs/codestarconnections/repositoryLink.ts index e77426dfd8..fb824e6a81 100644 --- a/sdk/nodejs/codestarconnections/repositoryLink.ts +++ b/sdk/nodejs/codestarconnections/repositoryLink.ts @@ -52,7 +52,7 @@ export class RepositoryLink extends pulumi.CustomResource { /** * The name of the external provider where your third-party code repository is configured. */ - public /*out*/ readonly providerType!: pulumi.Output; + public /*out*/ readonly providerType!: pulumi.Output; /** * A unique Amazon Resource Name (ARN) to designate the repository link. */ diff --git a/sdk/nodejs/codestarconnections/syncConfiguration.ts b/sdk/nodejs/codestarconnections/syncConfiguration.ts index 5ecb5f2581..9058d33f55 100644 --- a/sdk/nodejs/codestarconnections/syncConfiguration.ts +++ b/sdk/nodejs/codestarconnections/syncConfiguration.ts @@ -2,6 +2,9 @@ // *** Do not edit by hand unless you're certain you know what you are doing! *** import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; import * as utilities from "../utilities"; /** @@ -49,7 +52,11 @@ export class SyncConfiguration extends pulumi.CustomResource { /** * The name of the external provider where your third-party code repository is configured. */ - public /*out*/ readonly providerType!: pulumi.Output; + public /*out*/ readonly providerType!: pulumi.Output; + /** + * Whether to enable or disable publishing of deployment status to source providers. + */ + public readonly publishDeploymentStatus!: pulumi.Output; /** * A UUID that uniquely identifies the RepositoryLink that the SyncConfig is associated with. */ @@ -70,6 +77,10 @@ export class SyncConfiguration extends pulumi.CustomResource { * The type of resource synchronization service that is to be configured, for example, CFN_STACK_SYNC. */ public readonly syncType!: pulumi.Output; + /** + * When to trigger Git sync to begin the stack update. + */ + public readonly triggerResourceUpdateOn!: pulumi.Output; /** * Create a SyncConfiguration resource with the given unique name, arguments, and options. @@ -102,10 +113,12 @@ export class SyncConfiguration extends pulumi.CustomResource { } resourceInputs["branch"] = args ? args.branch : undefined; resourceInputs["configFile"] = args ? args.configFile : undefined; + resourceInputs["publishDeploymentStatus"] = args ? args.publishDeploymentStatus : undefined; resourceInputs["repositoryLinkId"] = args ? args.repositoryLinkId : undefined; resourceInputs["resourceName"] = args ? args.resourceName : undefined; resourceInputs["roleArn"] = args ? args.roleArn : undefined; resourceInputs["syncType"] = args ? args.syncType : undefined; + resourceInputs["triggerResourceUpdateOn"] = args ? args.triggerResourceUpdateOn : undefined; resourceInputs["ownerId"] = undefined /*out*/; resourceInputs["providerType"] = undefined /*out*/; resourceInputs["repositoryName"] = undefined /*out*/; @@ -114,11 +127,13 @@ export class SyncConfiguration extends pulumi.CustomResource { resourceInputs["configFile"] = undefined /*out*/; resourceInputs["ownerId"] = undefined /*out*/; resourceInputs["providerType"] = undefined /*out*/; + resourceInputs["publishDeploymentStatus"] = undefined /*out*/; resourceInputs["repositoryLinkId"] = undefined /*out*/; resourceInputs["repositoryName"] = undefined /*out*/; resourceInputs["resourceName"] = undefined /*out*/; resourceInputs["roleArn"] = undefined /*out*/; resourceInputs["syncType"] = undefined /*out*/; + resourceInputs["triggerResourceUpdateOn"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); const replaceOnChanges = { replaceOnChanges: ["resourceName", "syncType"] }; @@ -139,6 +154,10 @@ export interface SyncConfigurationArgs { * The source provider repository path of the sync configuration file of the respective SyncType. */ configFile: pulumi.Input; + /** + * Whether to enable or disable publishing of deployment status to source providers. + */ + publishDeploymentStatus?: pulumi.Input; /** * A UUID that uniquely identifies the RepositoryLink that the SyncConfig is associated with. */ @@ -155,4 +174,8 @@ export interface SyncConfigurationArgs { * The type of resource synchronization service that is to be configured, for example, CFN_STACK_SYNC. */ syncType: pulumi.Input; + /** + * When to trigger Git sync to begin the stack update. + */ + triggerResourceUpdateOn?: pulumi.Input; } diff --git a/sdk/nodejs/connect/getPredefinedAttribute.ts b/sdk/nodejs/connect/getPredefinedAttribute.ts index 82fcfdf490..9a05661185 100644 --- a/sdk/nodejs/connect/getPredefinedAttribute.ts +++ b/sdk/nodejs/connect/getPredefinedAttribute.ts @@ -31,6 +31,14 @@ export interface GetPredefinedAttributeArgs { } export interface GetPredefinedAttributeResult { + /** + * Last modified region. + */ + readonly lastModifiedRegion?: string; + /** + * Last modified time. + */ + readonly lastModifiedTime?: number; /** * The values of a predefined attribute. */ diff --git a/sdk/nodejs/connect/getSecurityProfile.ts b/sdk/nodejs/connect/getSecurityProfile.ts index acab7f94c0..1904e40f63 100644 --- a/sdk/nodejs/connect/getSecurityProfile.ts +++ b/sdk/nodejs/connect/getSecurityProfile.ts @@ -26,14 +26,34 @@ export interface GetSecurityProfileArgs { } export interface GetSecurityProfileResult { + /** + * The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect. + */ + readonly allowedAccessControlHierarchyGroupId?: string; /** * The list of tags that a security profile uses to restrict access to resources in Amazon Connect. */ readonly allowedAccessControlTags?: outputs.connect.SecurityProfileTag[]; + /** + * A list of third-party applications that the security profile will give access to. + */ + readonly applications?: outputs.connect.SecurityProfileApplication[]; /** * The description of the security profile. */ readonly description?: string; + /** + * The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. + */ + readonly hierarchyRestrictedResources?: string[]; + /** + * The AWS Region where this resource was last modified. + */ + readonly lastModifiedRegion?: string; + /** + * The timestamp when this resource was last modified. + */ + readonly lastModifiedTime?: number; /** * Permissions assigned to the security profile. */ diff --git a/sdk/nodejs/connect/predefinedAttribute.ts b/sdk/nodejs/connect/predefinedAttribute.ts index f2797b1058..b92b6a7db9 100644 --- a/sdk/nodejs/connect/predefinedAttribute.ts +++ b/sdk/nodejs/connect/predefinedAttribute.ts @@ -41,6 +41,14 @@ export class PredefinedAttribute extends pulumi.CustomResource { * The identifier of the Amazon Connect instance. */ public readonly instanceArn!: pulumi.Output; + /** + * Last modified region. + */ + public /*out*/ readonly lastModifiedRegion!: pulumi.Output; + /** + * Last modified time. + */ + public /*out*/ readonly lastModifiedTime!: pulumi.Output; /** * The name of the predefined attribute. */ @@ -70,8 +78,12 @@ export class PredefinedAttribute extends pulumi.CustomResource { resourceInputs["instanceArn"] = args ? args.instanceArn : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["values"] = args ? args.values : undefined; + resourceInputs["lastModifiedRegion"] = undefined /*out*/; + resourceInputs["lastModifiedTime"] = undefined /*out*/; } else { resourceInputs["instanceArn"] = undefined /*out*/; + resourceInputs["lastModifiedRegion"] = undefined /*out*/; + resourceInputs["lastModifiedTime"] = undefined /*out*/; resourceInputs["name"] = undefined /*out*/; resourceInputs["values"] = undefined /*out*/; } diff --git a/sdk/nodejs/connect/securityProfile.ts b/sdk/nodejs/connect/securityProfile.ts index 59315f1a6b..ee8107c962 100644 --- a/sdk/nodejs/connect/securityProfile.ts +++ b/sdk/nodejs/connect/securityProfile.ts @@ -37,18 +37,38 @@ export class SecurityProfile extends pulumi.CustomResource { return obj['__pulumiType'] === SecurityProfile.__pulumiType; } + /** + * The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect. + */ + public readonly allowedAccessControlHierarchyGroupId!: pulumi.Output; /** * The list of tags that a security profile uses to restrict access to resources in Amazon Connect. */ public readonly allowedAccessControlTags!: pulumi.Output; + /** + * A list of third-party applications that the security profile will give access to. + */ + public readonly applications!: pulumi.Output; /** * The description of the security profile. */ public readonly description!: pulumi.Output; + /** + * The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. + */ + public readonly hierarchyRestrictedResources!: pulumi.Output; /** * The identifier of the Amazon Connect instance. */ public readonly instanceArn!: pulumi.Output; + /** + * The AWS Region where this resource was last modified. + */ + public /*out*/ readonly lastModifiedRegion!: pulumi.Output; + /** + * The timestamp when this resource was last modified. + */ + public /*out*/ readonly lastModifiedTime!: pulumi.Output; /** * Permissions assigned to the security profile. */ @@ -84,18 +104,28 @@ export class SecurityProfile extends pulumi.CustomResource { if ((!args || args.instanceArn === undefined) && !opts.urn) { throw new Error("Missing required property 'instanceArn'"); } + resourceInputs["allowedAccessControlHierarchyGroupId"] = args ? args.allowedAccessControlHierarchyGroupId : undefined; resourceInputs["allowedAccessControlTags"] = args ? args.allowedAccessControlTags : undefined; + resourceInputs["applications"] = args ? args.applications : undefined; resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["hierarchyRestrictedResources"] = args ? args.hierarchyRestrictedResources : undefined; resourceInputs["instanceArn"] = args ? args.instanceArn : undefined; resourceInputs["permissions"] = args ? args.permissions : undefined; resourceInputs["securityProfileName"] = args ? args.securityProfileName : undefined; resourceInputs["tagRestrictedResources"] = args ? args.tagRestrictedResources : undefined; resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["lastModifiedRegion"] = undefined /*out*/; + resourceInputs["lastModifiedTime"] = undefined /*out*/; resourceInputs["securityProfileArn"] = undefined /*out*/; } else { + resourceInputs["allowedAccessControlHierarchyGroupId"] = undefined /*out*/; resourceInputs["allowedAccessControlTags"] = undefined /*out*/; + resourceInputs["applications"] = undefined /*out*/; resourceInputs["description"] = undefined /*out*/; + resourceInputs["hierarchyRestrictedResources"] = undefined /*out*/; resourceInputs["instanceArn"] = undefined /*out*/; + resourceInputs["lastModifiedRegion"] = undefined /*out*/; + resourceInputs["lastModifiedTime"] = undefined /*out*/; resourceInputs["permissions"] = undefined /*out*/; resourceInputs["securityProfileArn"] = undefined /*out*/; resourceInputs["securityProfileName"] = undefined /*out*/; @@ -113,14 +143,26 @@ export class SecurityProfile extends pulumi.CustomResource { * The set of arguments for constructing a SecurityProfile resource. */ export interface SecurityProfileArgs { + /** + * The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect. + */ + allowedAccessControlHierarchyGroupId?: pulumi.Input; /** * The list of tags that a security profile uses to restrict access to resources in Amazon Connect. */ allowedAccessControlTags?: pulumi.Input[]>; + /** + * A list of third-party applications that the security profile will give access to. + */ + applications?: pulumi.Input[]>; /** * The description of the security profile. */ description?: pulumi.Input; + /** + * The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. + */ + hierarchyRestrictedResources?: pulumi.Input[]>; /** * The identifier of the Amazon Connect instance. */ diff --git a/sdk/nodejs/docdbelastic/cluster.ts b/sdk/nodejs/docdbelastic/cluster.ts index 06f0c386e2..6062a95d9a 100644 --- a/sdk/nodejs/docdbelastic/cluster.ts +++ b/sdk/nodejs/docdbelastic/cluster.ts @@ -40,13 +40,16 @@ export class Cluster extends pulumi.CustomResource { public readonly adminUserName!: pulumi.Output; public readonly adminUserPassword!: pulumi.Output; public readonly authType!: pulumi.Output; + public readonly backupRetentionPeriod!: pulumi.Output; public /*out*/ readonly clusterArn!: pulumi.Output; public /*out*/ readonly clusterEndpoint!: pulumi.Output; public readonly clusterName!: pulumi.Output; public readonly kmsKeyId!: pulumi.Output; + public readonly preferredBackupWindow!: pulumi.Output; public readonly preferredMaintenanceWindow!: pulumi.Output; public readonly shardCapacity!: pulumi.Output; public readonly shardCount!: pulumi.Output; + public readonly shardInstanceCount!: pulumi.Output; public readonly subnetIds!: pulumi.Output; public readonly tags!: pulumi.Output; public readonly vpcSecurityGroupIds!: pulumi.Output; @@ -77,11 +80,14 @@ export class Cluster extends pulumi.CustomResource { resourceInputs["adminUserName"] = args ? args.adminUserName : undefined; resourceInputs["adminUserPassword"] = args ? args.adminUserPassword : undefined; resourceInputs["authType"] = args ? args.authType : undefined; + resourceInputs["backupRetentionPeriod"] = args ? args.backupRetentionPeriod : undefined; resourceInputs["clusterName"] = args ? args.clusterName : undefined; resourceInputs["kmsKeyId"] = args ? args.kmsKeyId : undefined; + resourceInputs["preferredBackupWindow"] = args ? args.preferredBackupWindow : undefined; resourceInputs["preferredMaintenanceWindow"] = args ? args.preferredMaintenanceWindow : undefined; resourceInputs["shardCapacity"] = args ? args.shardCapacity : undefined; resourceInputs["shardCount"] = args ? args.shardCount : undefined; + resourceInputs["shardInstanceCount"] = args ? args.shardInstanceCount : undefined; resourceInputs["subnetIds"] = args ? args.subnetIds : undefined; resourceInputs["tags"] = args ? args.tags : undefined; resourceInputs["vpcSecurityGroupIds"] = args ? args.vpcSecurityGroupIds : undefined; @@ -91,13 +97,16 @@ export class Cluster extends pulumi.CustomResource { resourceInputs["adminUserName"] = undefined /*out*/; resourceInputs["adminUserPassword"] = undefined /*out*/; resourceInputs["authType"] = undefined /*out*/; + resourceInputs["backupRetentionPeriod"] = undefined /*out*/; resourceInputs["clusterArn"] = undefined /*out*/; resourceInputs["clusterEndpoint"] = undefined /*out*/; resourceInputs["clusterName"] = undefined /*out*/; resourceInputs["kmsKeyId"] = undefined /*out*/; + resourceInputs["preferredBackupWindow"] = undefined /*out*/; resourceInputs["preferredMaintenanceWindow"] = undefined /*out*/; resourceInputs["shardCapacity"] = undefined /*out*/; resourceInputs["shardCount"] = undefined /*out*/; + resourceInputs["shardInstanceCount"] = undefined /*out*/; resourceInputs["subnetIds"] = undefined /*out*/; resourceInputs["tags"] = undefined /*out*/; resourceInputs["vpcSecurityGroupIds"] = undefined /*out*/; @@ -116,11 +125,14 @@ export interface ClusterArgs { adminUserName: pulumi.Input; adminUserPassword?: pulumi.Input; authType: pulumi.Input; + backupRetentionPeriod?: pulumi.Input; clusterName?: pulumi.Input; kmsKeyId?: pulumi.Input; + preferredBackupWindow?: pulumi.Input; preferredMaintenanceWindow?: pulumi.Input; shardCapacity: pulumi.Input; shardCount: pulumi.Input; + shardInstanceCount?: pulumi.Input; subnetIds?: pulumi.Input[]>; tags?: pulumi.Input[]>; vpcSecurityGroupIds?: pulumi.Input[]>; diff --git a/sdk/nodejs/docdbelastic/getCluster.ts b/sdk/nodejs/docdbelastic/getCluster.ts index 48ac010c65..1feb070da9 100644 --- a/sdk/nodejs/docdbelastic/getCluster.ts +++ b/sdk/nodejs/docdbelastic/getCluster.ts @@ -23,11 +23,14 @@ export interface GetClusterArgs { } export interface GetClusterResult { + readonly backupRetentionPeriod?: number; readonly clusterArn?: string; readonly clusterEndpoint?: string; + readonly preferredBackupWindow?: string; readonly preferredMaintenanceWindow?: string; readonly shardCapacity?: number; readonly shardCount?: number; + readonly shardInstanceCount?: number; readonly subnetIds?: string[]; readonly tags?: outputs.Tag[]; readonly vpcSecurityGroupIds?: string[]; diff --git a/sdk/nodejs/dynamodb/getTable.ts b/sdk/nodejs/dynamodb/getTable.ts index 054b9b50de..d63b229d53 100644 --- a/sdk/nodejs/dynamodb/getTable.ts +++ b/sdk/nodejs/dynamodb/getTable.ts @@ -85,6 +85,7 @@ export interface GetTableResult { * If you set ``BillingMode`` as ``PROVISIONED``, you must specify this property. If you set ``BillingMode`` as ``PAY_PER_REQUEST``, you cannot specify this property. */ readonly provisionedThroughput?: outputs.dynamodb.TableProvisionedThroughput; + readonly resourcePolicy?: outputs.dynamodb.TableResourcePolicy; /** * Specifies the settings to enable server-side encryption. */ diff --git a/sdk/nodejs/dynamodb/table.ts b/sdk/nodejs/dynamodb/table.ts index 83f8cab2e4..f7657e132e 100644 --- a/sdk/nodejs/dynamodb/table.ts +++ b/sdk/nodejs/dynamodb/table.ts @@ -328,6 +328,7 @@ export class Table extends pulumi.CustomResource { * If you set ``BillingMode`` as ``PROVISIONED``, you must specify this property. If you set ``BillingMode`` as ``PAY_PER_REQUEST``, you cannot specify this property. */ public readonly provisionedThroughput!: pulumi.Output; + public readonly resourcePolicy!: pulumi.Output; /** * Specifies the settings to enable server-side encryption. */ @@ -382,6 +383,7 @@ export class Table extends pulumi.CustomResource { resourceInputs["localSecondaryIndexes"] = args ? args.localSecondaryIndexes : undefined; resourceInputs["pointInTimeRecoverySpecification"] = args ? args.pointInTimeRecoverySpecification : undefined; resourceInputs["provisionedThroughput"] = args ? args.provisionedThroughput : undefined; + resourceInputs["resourcePolicy"] = args ? args.resourcePolicy : undefined; resourceInputs["sseSpecification"] = args ? args.sseSpecification : undefined; resourceInputs["streamSpecification"] = args ? args.streamSpecification : undefined; resourceInputs["tableClass"] = args ? args.tableClass : undefined; @@ -403,6 +405,7 @@ export class Table extends pulumi.CustomResource { resourceInputs["localSecondaryIndexes"] = undefined /*out*/; resourceInputs["pointInTimeRecoverySpecification"] = undefined /*out*/; resourceInputs["provisionedThroughput"] = undefined /*out*/; + resourceInputs["resourcePolicy"] = undefined /*out*/; resourceInputs["sseSpecification"] = undefined /*out*/; resourceInputs["streamArn"] = undefined /*out*/; resourceInputs["streamSpecification"] = undefined /*out*/; @@ -480,6 +483,7 @@ export interface TableArgs { * If you set ``BillingMode`` as ``PROVISIONED``, you must specify this property. If you set ``BillingMode`` as ``PAY_PER_REQUEST``, you cannot specify this property. */ provisionedThroughput?: pulumi.Input; + resourcePolicy?: pulumi.Input; /** * Specifies the settings to enable server-side encryption. */ diff --git a/sdk/nodejs/ec2/getInternetGateway.ts b/sdk/nodejs/ec2/getInternetGateway.ts index e88dfe5e3c..98e349ee6c 100644 --- a/sdk/nodejs/ec2/getInternetGateway.ts +++ b/sdk/nodejs/ec2/getInternetGateway.ts @@ -8,7 +8,7 @@ import * as enums from "../types/enums"; import * as utilities from "../utilities"; /** - * Resource Type definition for AWS::EC2::InternetGateway + * Allocates an internet gateway for use with a VPC. After creating the Internet gateway, you then attach it to a VPC. */ export function getInternetGateway(args: GetInternetGatewayArgs, opts?: pulumi.InvokeOptions): Promise { @@ -19,16 +19,10 @@ export function getInternetGateway(args: GetInternetGatewayArgs, opts?: pulumi.I } export interface GetInternetGatewayArgs { - /** - * ID of internet gateway. - */ internetGatewayId: string; } export interface GetInternetGatewayResult { - /** - * ID of internet gateway. - */ readonly internetGatewayId?: string; /** * Any tags to assign to the internet gateway. @@ -36,15 +30,12 @@ export interface GetInternetGatewayResult { readonly tags?: outputs.Tag[]; } /** - * Resource Type definition for AWS::EC2::InternetGateway + * Allocates an internet gateway for use with a VPC. After creating the Internet gateway, you then attach it to a VPC. */ export function getInternetGatewayOutput(args: GetInternetGatewayOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { return pulumi.output(args).apply((a: any) => getInternetGateway(a, opts)) } export interface GetInternetGatewayOutputArgs { - /** - * ID of internet gateway. - */ internetGatewayId: pulumi.Input; } diff --git a/sdk/nodejs/ec2/getSubnet.ts b/sdk/nodejs/ec2/getSubnet.ts index e67b3f47a1..3fe2fb2beb 100644 --- a/sdk/nodejs/ec2/getSubnet.ts +++ b/sdk/nodejs/ec2/getSubnet.ts @@ -45,16 +45,16 @@ export interface GetSubnetResult { readonly ipv6CidrBlocks?: string[]; /** * Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``. - * AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). + * AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). */ readonly mapPublicIpOnLaunch?: boolean; readonly networkAclAssociationId?: string; /** * The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. * Available options: - * + EnableResourceNameDnsAAAARecord (true | false) - * + EnableResourceNameDnsARecord (true | false) - * + HostnameType (ip-name | resource-name) + * + EnableResourceNameDnsAAAARecord (true | false) + * + EnableResourceNameDnsARecord (true | false) + * + HostnameType (ip-name | resource-name) */ readonly privateDnsNameOptionsOnLaunch?: outputs.ec2.PrivateDnsNameOptionsOnLaunchProperties; readonly subnetId?: string; diff --git a/sdk/nodejs/ec2/getTransitGatewayRouteTableAssociation.ts b/sdk/nodejs/ec2/getTransitGatewayRouteTableAssociation.ts deleted file mode 100644 index d5ab3ef64a..0000000000 --- a/sdk/nodejs/ec2/getTransitGatewayRouteTableAssociation.ts +++ /dev/null @@ -1,34 +0,0 @@ -// *** 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"; - -/** - * Resource Type definition for AWS::EC2::TransitGatewayRouteTableAssociation - */ -export function getTransitGatewayRouteTableAssociation(args: GetTransitGatewayRouteTableAssociationArgs, opts?: pulumi.InvokeOptions): Promise { - - opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); - return pulumi.runtime.invoke("aws-native:ec2:getTransitGatewayRouteTableAssociation", { - "id": args.id, - }, opts); -} - -export interface GetTransitGatewayRouteTableAssociationArgs { - id: string; -} - -export interface GetTransitGatewayRouteTableAssociationResult { - readonly id?: string; -} -/** - * Resource Type definition for AWS::EC2::TransitGatewayRouteTableAssociation - */ -export function getTransitGatewayRouteTableAssociationOutput(args: GetTransitGatewayRouteTableAssociationOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { - return pulumi.output(args).apply((a: any) => getTransitGatewayRouteTableAssociation(a, opts)) -} - -export interface GetTransitGatewayRouteTableAssociationOutputArgs { - id: pulumi.Input; -} diff --git a/sdk/nodejs/ec2/index.ts b/sdk/nodejs/ec2/index.ts index 628cfa75b3..392db4334e 100644 --- a/sdk/nodejs/ec2/index.ts +++ b/sdk/nodejs/ec2/index.ts @@ -360,11 +360,6 @@ export const getTransitGatewayRouteTable: typeof import("./getTransitGatewayRout export const getTransitGatewayRouteTableOutput: typeof import("./getTransitGatewayRouteTable").getTransitGatewayRouteTableOutput = null as any; utilities.lazyLoad(exports, ["getTransitGatewayRouteTable","getTransitGatewayRouteTableOutput"], () => require("./getTransitGatewayRouteTable")); -export { GetTransitGatewayRouteTableAssociationArgs, GetTransitGatewayRouteTableAssociationResult, GetTransitGatewayRouteTableAssociationOutputArgs } from "./getTransitGatewayRouteTableAssociation"; -export const getTransitGatewayRouteTableAssociation: typeof import("./getTransitGatewayRouteTableAssociation").getTransitGatewayRouteTableAssociation = null as any; -export const getTransitGatewayRouteTableAssociationOutput: typeof import("./getTransitGatewayRouteTableAssociation").getTransitGatewayRouteTableAssociationOutput = null as any; -utilities.lazyLoad(exports, ["getTransitGatewayRouteTableAssociation","getTransitGatewayRouteTableAssociationOutput"], () => require("./getTransitGatewayRouteTableAssociation")); - export { GetTransitGatewayVpcAttachmentArgs, GetTransitGatewayVpcAttachmentResult, GetTransitGatewayVpcAttachmentOutputArgs } from "./getTransitGatewayVpcAttachment"; export const getTransitGatewayVpcAttachment: typeof import("./getTransitGatewayVpcAttachment").getTransitGatewayVpcAttachment = null as any; export const getTransitGatewayVpcAttachmentOutput: typeof import("./getTransitGatewayVpcAttachment").getTransitGatewayVpcAttachmentOutput = null as any; diff --git a/sdk/nodejs/ec2/internetGateway.ts b/sdk/nodejs/ec2/internetGateway.ts index c63e94b274..8c9dd0999c 100644 --- a/sdk/nodejs/ec2/internetGateway.ts +++ b/sdk/nodejs/ec2/internetGateway.ts @@ -8,7 +8,7 @@ import * as enums from "../types/enums"; import * as utilities from "../utilities"; /** - * Resource Type definition for AWS::EC2::InternetGateway + * Allocates an internet gateway for use with a VPC. After creating the Internet gateway, you then attach it to a VPC. * * ## Example Usage * ### Example @@ -51,9 +51,6 @@ export class InternetGateway extends pulumi.CustomResource { return obj['__pulumiType'] === InternetGateway.__pulumiType; } - /** - * ID of internet gateway. - */ public /*out*/ readonly internetGatewayId!: pulumi.Output; /** * Any tags to assign to the internet gateway. diff --git a/sdk/nodejs/ec2/subnet.ts b/sdk/nodejs/ec2/subnet.ts index 18ce306b5d..9662819b64 100644 --- a/sdk/nodejs/ec2/subnet.ts +++ b/sdk/nodejs/ec2/subnet.ts @@ -62,6 +62,10 @@ export class Subnet extends pulumi.CustomResource { * Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. For more information, see [DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) in the *User Guide*. */ public readonly enableDns64!: pulumi.Output; + /** + * Indicates the device position for local network interfaces in this subnet. For example, ``1`` indicates local network interfaces in this subnet are the secondary network interface (eth1). + */ + public readonly enableLniAtDeviceIndex!: pulumi.Output; /** * An IPv4 IPAM pool ID for the subnet. */ @@ -93,7 +97,7 @@ export class Subnet extends pulumi.CustomResource { public readonly ipv6NetmaskLength!: pulumi.Output; /** * Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``. - * AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). + * AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). */ public readonly mapPublicIpOnLaunch!: pulumi.Output; public /*out*/ readonly networkAclAssociationId!: pulumi.Output; @@ -104,9 +108,9 @@ export class Subnet extends pulumi.CustomResource { /** * The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. * Available options: - * + EnableResourceNameDnsAAAARecord (true | false) - * + EnableResourceNameDnsARecord (true | false) - * + HostnameType (ip-name | resource-name) + * + EnableResourceNameDnsAAAARecord (true | false) + * + EnableResourceNameDnsARecord (true | false) + * + HostnameType (ip-name | resource-name) */ public readonly privateDnsNameOptionsOnLaunch!: pulumi.Output; public /*out*/ readonly subnetId!: pulumi.Output; @@ -139,6 +143,7 @@ export class Subnet extends pulumi.CustomResource { resourceInputs["availabilityZoneId"] = args ? args.availabilityZoneId : undefined; resourceInputs["cidrBlock"] = args ? args.cidrBlock : undefined; resourceInputs["enableDns64"] = args ? args.enableDns64 : undefined; + resourceInputs["enableLniAtDeviceIndex"] = args ? args.enableLniAtDeviceIndex : undefined; resourceInputs["ipv4IpamPoolId"] = args ? args.ipv4IpamPoolId : undefined; resourceInputs["ipv4NetmaskLength"] = args ? args.ipv4NetmaskLength : undefined; resourceInputs["ipv6CidrBlock"] = args ? args.ipv6CidrBlock : undefined; @@ -159,6 +164,7 @@ export class Subnet extends pulumi.CustomResource { resourceInputs["availabilityZoneId"] = undefined /*out*/; resourceInputs["cidrBlock"] = undefined /*out*/; resourceInputs["enableDns64"] = undefined /*out*/; + resourceInputs["enableLniAtDeviceIndex"] = undefined /*out*/; resourceInputs["ipv4IpamPoolId"] = undefined /*out*/; resourceInputs["ipv4NetmaskLength"] = undefined /*out*/; resourceInputs["ipv6CidrBlock"] = undefined /*out*/; @@ -208,6 +214,10 @@ export interface SubnetArgs { * Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. For more information, see [DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) in the *User Guide*. */ enableDns64?: pulumi.Input; + /** + * Indicates the device position for local network interfaces in this subnet. For example, ``1`` indicates local network interfaces in this subnet are the secondary network interface (eth1). + */ + enableLniAtDeviceIndex?: pulumi.Input; /** * An IPv4 IPAM pool ID for the subnet. */ @@ -239,7 +249,7 @@ export interface SubnetArgs { ipv6NetmaskLength?: pulumi.Input; /** * Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``. - * AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). + * AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). */ mapPublicIpOnLaunch?: pulumi.Input; /** @@ -249,9 +259,9 @@ export interface SubnetArgs { /** * The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. * Available options: - * + EnableResourceNameDnsAAAARecord (true | false) - * + EnableResourceNameDnsARecord (true | false) - * + HostnameType (ip-name | resource-name) + * + EnableResourceNameDnsAAAARecord (true | false) + * + EnableResourceNameDnsARecord (true | false) + * + HostnameType (ip-name | resource-name) */ privateDnsNameOptionsOnLaunch?: pulumi.Input; /** diff --git a/sdk/nodejs/ec2/transitGatewayRouteTableAssociation.ts b/sdk/nodejs/ec2/transitGatewayRouteTableAssociation.ts index c1111972bd..10e0bffdbf 100644 --- a/sdk/nodejs/ec2/transitGatewayRouteTableAssociation.ts +++ b/sdk/nodejs/ec2/transitGatewayRouteTableAssociation.ts @@ -34,8 +34,13 @@ export class TransitGatewayRouteTableAssociation extends pulumi.CustomResource { return obj['__pulumiType'] === TransitGatewayRouteTableAssociation.__pulumiType; } - public /*out*/ readonly awsId!: pulumi.Output; + /** + * The ID of transit gateway attachment. + */ public readonly transitGatewayAttachmentId!: pulumi.Output; + /** + * The ID of transit gateway route table. + */ public readonly transitGatewayRouteTableId!: pulumi.Output; /** @@ -57,9 +62,7 @@ export class TransitGatewayRouteTableAssociation extends pulumi.CustomResource { } resourceInputs["transitGatewayAttachmentId"] = args ? args.transitGatewayAttachmentId : undefined; resourceInputs["transitGatewayRouteTableId"] = args ? args.transitGatewayRouteTableId : undefined; - resourceInputs["awsId"] = undefined /*out*/; } else { - resourceInputs["awsId"] = undefined /*out*/; resourceInputs["transitGatewayAttachmentId"] = undefined /*out*/; resourceInputs["transitGatewayRouteTableId"] = undefined /*out*/; } @@ -74,6 +77,12 @@ export class TransitGatewayRouteTableAssociation extends pulumi.CustomResource { * The set of arguments for constructing a TransitGatewayRouteTableAssociation resource. */ export interface TransitGatewayRouteTableAssociationArgs { + /** + * The ID of transit gateway attachment. + */ transitGatewayAttachmentId: pulumi.Input; + /** + * The ID of transit gateway route table. + */ transitGatewayRouteTableId: pulumi.Input; } diff --git a/sdk/nodejs/entityresolution/idMappingWorkflow.ts b/sdk/nodejs/entityresolution/idMappingWorkflow.ts index 42d2a76bfc..0aa1a2539f 100644 --- a/sdk/nodejs/entityresolution/idMappingWorkflow.ts +++ b/sdk/nodejs/entityresolution/idMappingWorkflow.ts @@ -44,7 +44,7 @@ export class IdMappingWorkflow extends pulumi.CustomResource { public readonly description!: pulumi.Output; public readonly idMappingTechniques!: pulumi.Output; public readonly inputSourceConfig!: pulumi.Output; - public readonly outputSourceConfig!: pulumi.Output; + public readonly outputSourceConfig!: pulumi.Output; public readonly roleArn!: pulumi.Output; public readonly tags!: pulumi.Output; public /*out*/ readonly updatedAt!: pulumi.Output; @@ -71,9 +71,6 @@ export class IdMappingWorkflow extends pulumi.CustomResource { if ((!args || args.inputSourceConfig === undefined) && !opts.urn) { throw new Error("Missing required property 'inputSourceConfig'"); } - if ((!args || args.outputSourceConfig === undefined) && !opts.urn) { - throw new Error("Missing required property 'outputSourceConfig'"); - } if ((!args || args.roleArn === undefined) && !opts.urn) { throw new Error("Missing required property 'roleArn'"); } @@ -116,7 +113,7 @@ export interface IdMappingWorkflowArgs { description?: pulumi.Input; idMappingTechniques: pulumi.Input; inputSourceConfig: pulumi.Input[]>; - outputSourceConfig: pulumi.Input[]>; + outputSourceConfig?: pulumi.Input[]>; roleArn: pulumi.Input; tags?: pulumi.Input[]>; /** diff --git a/sdk/nodejs/gamelift/gameServerGroup.ts b/sdk/nodejs/gamelift/gameServerGroup.ts index 737c818515..f7986c9513 100644 --- a/sdk/nodejs/gamelift/gameServerGroup.ts +++ b/sdk/nodejs/gamelift/gameServerGroup.ts @@ -42,7 +42,7 @@ export class GameServerGroup extends pulumi.CustomResource { */ public /*out*/ readonly autoScalingGroupArn!: pulumi.Output; /** - * Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting + * Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. */ public readonly autoScalingPolicy!: pulumi.Output; /** @@ -70,15 +70,15 @@ export class GameServerGroup extends pulumi.CustomResource { */ public readonly instanceDefinitions!: pulumi.Output; /** - * The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. + * The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. */ public readonly launchTemplate!: pulumi.Output; /** - * The maximum number of instances allowed in the EC2 Auto Scaling group. + * The maximum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. */ public readonly maxSize!: pulumi.Output; /** - * The minimum number of instances allowed in the EC2 Auto Scaling group. + * The minimum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. */ public readonly minSize!: pulumi.Output; /** @@ -86,11 +86,11 @@ export class GameServerGroup extends pulumi.CustomResource { */ public readonly roleArn!: pulumi.Output; /** - * A list of labels to assign to the new game server group resource. + * A list of labels to assign to the new game server group resource. Updating game server group tags with CloudFormation will not take effect. Please update this property using AWS GameLift APIs instead. */ public readonly tags!: pulumi.Output; /** - * A list of virtual private cloud (VPC) subnets to use with instances in the game server group. + * A list of virtual private cloud (VPC) subnets to use with instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. */ public readonly vpcSubnets!: pulumi.Output; @@ -151,7 +151,7 @@ export class GameServerGroup extends pulumi.CustomResource { */ export interface GameServerGroupArgs { /** - * Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting + * Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. */ autoScalingPolicy?: pulumi.Input; /** @@ -175,15 +175,15 @@ export interface GameServerGroupArgs { */ instanceDefinitions: pulumi.Input[]>; /** - * The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. + * The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. */ launchTemplate?: pulumi.Input; /** - * The maximum number of instances allowed in the EC2 Auto Scaling group. + * The maximum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. */ maxSize?: pulumi.Input; /** - * The minimum number of instances allowed in the EC2 Auto Scaling group. + * The minimum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. */ minSize?: pulumi.Input; /** @@ -191,11 +191,11 @@ export interface GameServerGroupArgs { */ roleArn: pulumi.Input; /** - * A list of labels to assign to the new game server group resource. + * A list of labels to assign to the new game server group resource. Updating game server group tags with CloudFormation will not take effect. Please update this property using AWS GameLift APIs instead. */ tags?: pulumi.Input[]>; /** - * A list of virtual private cloud (VPC) subnets to use with instances in the game server group. + * A list of virtual private cloud (VPC) subnets to use with instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. */ vpcSubnets?: pulumi.Input[]>; } diff --git a/sdk/nodejs/iam/getManagedPolicy.ts b/sdk/nodejs/iam/getManagedPolicy.ts index 51e5d2345c..ea408c349a 100644 --- a/sdk/nodejs/iam/getManagedPolicy.ts +++ b/sdk/nodejs/iam/getManagedPolicy.ts @@ -5,7 +5,10 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; /** - * Resource Type definition for AWS::IAM::ManagedPolicy + * Creates a new managed policy for your AWS-account. + * This operation creates a policy version with a version identifier of ``v1`` and sets v1 as the policy's default version. For more information about policy versions, see [Versioning for managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) in the *IAM User Guide*. + * As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) in the *IAM User Guide*. + * For more information about managed policies in general, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*. */ export function getManagedPolicy(args: GetManagedPolicyArgs, opts?: pulumi.InvokeOptions): Promise { @@ -16,74 +19,58 @@ export function getManagedPolicy(args: GetManagedPolicyArgs, opts?: pulumi.Invok } export interface GetManagedPolicyArgs { - /** - * Amazon Resource Name (ARN) of the managed policy - */ policyArn: string; } export interface GetManagedPolicyResult { - /** - * The number of entities (users, groups, and roles) that the policy is attached to. - */ readonly attachmentCount?: number; - /** - * The date and time, in ISO 8601 date-time format, when the policy was created. - */ readonly createDate?: string; - /** - * The identifier for the version of the policy that is set as the default version. - */ readonly defaultVersionId?: string; /** * The name (friendly name, not ARN) of the group to attach the policy to. + * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- */ readonly groups?: string[]; - /** - * Specifies whether the policy can be attached to an IAM user, group, or role. - */ readonly isAttachable?: boolean; - /** - * The number of entities (users and roles) for which the policy is used to set the permissions boundary. - */ readonly permissionsBoundaryUsageCount?: number; - /** - * Amazon Resource Name (ARN) of the managed policy - */ readonly policyArn?: string; /** * The JSON policy document that you want to use as the content for the new policy. + * You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM. + * The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + * To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. + * The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: + * + Any printable ASCII character ranging from the space character (``\u0020``) through the end of the ASCII character range + * + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\u00FF``) + * + The special characters tab (``\u0009``), line feed (``\u000A``), and carriage return (``\u000D``) * * Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property. */ readonly policyDocument?: any; - /** - * The stable and unique string identifying the policy. - */ readonly policyId?: string; /** * The name (friendly name, not ARN) of the role to attach the policy to. + * This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + * If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy. */ readonly roles?: string[]; - /** - * The date and time, in ISO 8601 date-time format, when the policy was last updated. - */ readonly updateDate?: string; /** * The name (friendly name, not ARN) of the IAM user to attach the policy to. + * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- */ readonly users?: string[]; } /** - * Resource Type definition for AWS::IAM::ManagedPolicy + * Creates a new managed policy for your AWS-account. + * This operation creates a policy version with a version identifier of ``v1`` and sets v1 as the policy's default version. For more information about policy versions, see [Versioning for managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) in the *IAM User Guide*. + * As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) in the *IAM User Guide*. + * For more information about managed policies in general, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*. */ export function getManagedPolicyOutput(args: GetManagedPolicyOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { return pulumi.output(args).apply((a: any) => getManagedPolicy(a, opts)) } export interface GetManagedPolicyOutputArgs { - /** - * Amazon Resource Name (ARN) of the managed policy - */ policyArn: pulumi.Input; } diff --git a/sdk/nodejs/iam/managedPolicy.ts b/sdk/nodejs/iam/managedPolicy.ts index b467eddb5e..e98213bc6e 100644 --- a/sdk/nodejs/iam/managedPolicy.ts +++ b/sdk/nodejs/iam/managedPolicy.ts @@ -5,7 +5,10 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; /** - * Resource Type definition for AWS::IAM::ManagedPolicy + * Creates a new managed policy for your AWS-account. + * This operation creates a policy version with a version identifier of ``v1`` and sets v1 as the policy's default version. For more information about policy versions, see [Versioning for managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) in the *IAM User Guide*. + * As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) in the *IAM User Guide*. + * For more information about managed policies in general, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*. */ export class ManagedPolicy extends pulumi.CustomResource { /** @@ -34,66 +37,62 @@ export class ManagedPolicy extends pulumi.CustomResource { return obj['__pulumiType'] === ManagedPolicy.__pulumiType; } - /** - * The number of entities (users, groups, and roles) that the policy is attached to. - */ public /*out*/ readonly attachmentCount!: pulumi.Output; - /** - * The date and time, in ISO 8601 date-time format, when the policy was created. - */ public /*out*/ readonly createDate!: pulumi.Output; - /** - * The identifier for the version of the policy that is set as the default version. - */ public /*out*/ readonly defaultVersionId!: pulumi.Output; /** * A friendly description of the policy. + * Typically used to store information about the permissions defined in the policy. For example, "Grants access to production DynamoDB tables." + * The policy description is immutable. After a value is assigned, it cannot be changed. */ public readonly description!: pulumi.Output; /** * The name (friendly name, not ARN) of the group to attach the policy to. + * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- */ public readonly groups!: pulumi.Output; - /** - * Specifies whether the policy can be attached to an IAM user, group, or role. - */ public /*out*/ readonly isAttachable!: pulumi.Output; /** * The friendly name of the policy. + * If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. + * If you specify a name, you must specify the ``CAPABILITY_NAMED_IAM`` value to acknowledge your template's capabilities. For more information, see [Acknowledging Resources in Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities). + * Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using ``Fn::Join`` and ``AWS::Region`` to create a Region-specific name, as in the following example: ``{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}``. */ public readonly managedPolicyName!: pulumi.Output; /** * The path for the policy. + * For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*. + * This parameter is optional. If it is not included, it defaults to a slash (/). + * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (``\u0021``) through the DEL character (``\u007F``), including most punctuation characters, digits, and upper and lowercased letters. + * You cannot use an asterisk (*) in the path name. */ public readonly path!: pulumi.Output; - /** - * The number of entities (users and roles) for which the policy is used to set the permissions boundary. - */ public /*out*/ readonly permissionsBoundaryUsageCount!: pulumi.Output; - /** - * Amazon Resource Name (ARN) of the managed policy - */ public /*out*/ readonly policyArn!: pulumi.Output; /** * The JSON policy document that you want to use as the content for the new policy. + * You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM. + * The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + * To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. + * The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: + * + Any printable ASCII character ranging from the space character (``\u0020``) through the end of the ASCII character range + * + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\u00FF``) + * + The special characters tab (``\u0009``), line feed (``\u000A``), and carriage return (``\u000D``) * * Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property. */ public readonly policyDocument!: pulumi.Output; - /** - * The stable and unique string identifying the policy. - */ public /*out*/ readonly policyId!: pulumi.Output; /** * The name (friendly name, not ARN) of the role to attach the policy to. + * This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + * If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy. */ public readonly roles!: pulumi.Output; - /** - * The date and time, in ISO 8601 date-time format, when the policy was last updated. - */ public /*out*/ readonly updateDate!: pulumi.Output; /** * The name (friendly name, not ARN) of the IAM user to attach the policy to. + * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- */ public readonly users!: pulumi.Output; @@ -156,32 +155,52 @@ export class ManagedPolicy extends pulumi.CustomResource { export interface ManagedPolicyArgs { /** * A friendly description of the policy. + * Typically used to store information about the permissions defined in the policy. For example, "Grants access to production DynamoDB tables." + * The policy description is immutable. After a value is assigned, it cannot be changed. */ description?: pulumi.Input; /** * The name (friendly name, not ARN) of the group to attach the policy to. + * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- */ groups?: pulumi.Input[]>; /** * The friendly name of the policy. + * If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. + * If you specify a name, you must specify the ``CAPABILITY_NAMED_IAM`` value to acknowledge your template's capabilities. For more information, see [Acknowledging Resources in Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities). + * Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using ``Fn::Join`` and ``AWS::Region`` to create a Region-specific name, as in the following example: ``{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}``. */ managedPolicyName?: pulumi.Input; /** * The path for the policy. + * For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*. + * This parameter is optional. If it is not included, it defaults to a slash (/). + * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (``\u0021``) through the DEL character (``\u007F``), including most punctuation characters, digits, and upper and lowercased letters. + * You cannot use an asterisk (*) in the path name. */ path?: pulumi.Input; /** * The JSON policy document that you want to use as the content for the new policy. + * You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM. + * The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + * To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. + * The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: + * + Any printable ASCII character ranging from the space character (``\u0020``) through the end of the ASCII character range + * + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\u00FF``) + * + The special characters tab (``\u0009``), line feed (``\u000A``), and carriage return (``\u000D``) * * Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property. */ policyDocument: any; /** * The name (friendly name, not ARN) of the role to attach the policy to. + * This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + * If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy. */ roles?: pulumi.Input[]>; /** * The name (friendly name, not ARN) of the IAM user to attach the policy to. + * This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- */ users?: pulumi.Input[]>; } diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index e2eac9f4c6..478a6adbb7 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -88,6 +88,7 @@ import * as b2bi from "./b2bi"; import * as backup from "./backup"; import * as backupgateway from "./backupgateway"; import * as batch from "./batch"; +import * as bedrock from "./bedrock"; import * as budgets from "./budgets"; import * as cassandra from "./cassandra"; import * as ce from "./ce"; @@ -100,6 +101,7 @@ import * as cloudtrail from "./cloudtrail"; import * as cloudwatch from "./cloudwatch"; import * as codeartifact from "./codeartifact"; import * as codebuild from "./codebuild"; +import * as codeconnections from "./codeconnections"; import * as codedeploy from "./codedeploy"; import * as codeguruprofiler from "./codeguruprofiler"; import * as codegurureviewer from "./codegurureviewer"; @@ -242,6 +244,7 @@ import * as sagemaker from "./sagemaker"; import * as scheduler from "./scheduler"; import * as secretsmanager from "./secretsmanager"; import * as securityhub from "./securityhub"; +import * as securitylake from "./securitylake"; import * as servicecatalog from "./servicecatalog"; import * as servicecatalogappregistry from "./servicecatalogappregistry"; import * as ses from "./ses"; @@ -295,6 +298,7 @@ export { backup, backupgateway, batch, + bedrock, budgets, cassandra, ce, @@ -307,6 +311,7 @@ export { cloudwatch, codeartifact, codebuild, + codeconnections, codedeploy, codeguruprofiler, codegurureviewer, @@ -449,6 +454,7 @@ export { scheduler, secretsmanager, securityhub, + securitylake, servicecatalog, servicecatalogappregistry, ses, diff --git a/sdk/nodejs/kafkaconnect/customPlugin.ts b/sdk/nodejs/kafkaconnect/customPlugin.ts new file mode 100644 index 0000000000..325153453c --- /dev/null +++ b/sdk/nodejs/kafkaconnect/customPlugin.ts @@ -0,0 +1,130 @@ +// *** 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"; + +/** + * An example resource schema demonstrating some basic constructs and validation rules. + */ +export class CustomPlugin extends pulumi.CustomResource { + /** + * Get an existing CustomPlugin 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): CustomPlugin { + return new CustomPlugin(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:kafkaconnect:CustomPlugin'; + + /** + * Returns true if the given object is an instance of CustomPlugin. 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 CustomPlugin { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === CustomPlugin.__pulumiType; + } + + /** + * The type of the plugin file. + */ + public readonly contentType!: pulumi.Output; + /** + * The Amazon Resource Name (ARN) of the custom plugin to use. + */ + public /*out*/ readonly customPluginArn!: pulumi.Output; + /** + * A summary description of the custom plugin. + */ + public readonly description!: pulumi.Output; + public /*out*/ readonly fileDescription!: pulumi.Output; + public readonly location!: pulumi.Output; + /** + * The name of the custom plugin. + */ + public readonly name!: pulumi.Output; + /** + * The revision of the custom plugin. + */ + public /*out*/ readonly revision!: pulumi.Output; + /** + * An array of key-value pairs to apply to this resource. + */ + public readonly tags!: pulumi.Output; + + /** + * Create a CustomPlugin 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: CustomPluginArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.contentType === undefined) && !opts.urn) { + throw new Error("Missing required property 'contentType'"); + } + if ((!args || args.location === undefined) && !opts.urn) { + throw new Error("Missing required property 'location'"); + } + resourceInputs["contentType"] = args ? args.contentType : undefined; + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["location"] = args ? args.location : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["customPluginArn"] = undefined /*out*/; + resourceInputs["fileDescription"] = undefined /*out*/; + resourceInputs["revision"] = undefined /*out*/; + } else { + resourceInputs["contentType"] = undefined /*out*/; + resourceInputs["customPluginArn"] = undefined /*out*/; + resourceInputs["description"] = undefined /*out*/; + resourceInputs["fileDescription"] = undefined /*out*/; + resourceInputs["location"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["revision"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["contentType", "description", "location", "name"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(CustomPlugin.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a CustomPlugin resource. + */ +export interface CustomPluginArgs { + /** + * The type of the plugin file. + */ + contentType: pulumi.Input; + /** + * A summary description of the custom plugin. + */ + description?: pulumi.Input; + location: pulumi.Input; + /** + * The name of the custom plugin. + */ + name?: pulumi.Input; + /** + * An array of key-value pairs to apply to this resource. + */ + tags?: pulumi.Input[]>; +} diff --git a/sdk/nodejs/kafkaconnect/getCustomPlugin.ts b/sdk/nodejs/kafkaconnect/getCustomPlugin.ts new file mode 100644 index 0000000000..8d855eccb5 --- /dev/null +++ b/sdk/nodejs/kafkaconnect/getCustomPlugin.ts @@ -0,0 +1,55 @@ +// *** 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"; + +/** + * An example resource schema demonstrating some basic constructs and validation rules. + */ +export function getCustomPlugin(args: GetCustomPluginArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:kafkaconnect:getCustomPlugin", { + "customPluginArn": args.customPluginArn, + }, opts); +} + +export interface GetCustomPluginArgs { + /** + * The Amazon Resource Name (ARN) of the custom plugin to use. + */ + customPluginArn: string; +} + +export interface GetCustomPluginResult { + /** + * The Amazon Resource Name (ARN) of the custom plugin to use. + */ + readonly customPluginArn?: string; + readonly fileDescription?: outputs.kafkaconnect.CustomPluginFileDescription; + /** + * The revision of the custom plugin. + */ + readonly revision?: number; + /** + * An array of key-value pairs to apply to this resource. + */ + readonly tags?: outputs.Tag[]; +} +/** + * An example resource schema demonstrating some basic constructs and validation rules. + */ +export function getCustomPluginOutput(args: GetCustomPluginOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getCustomPlugin(a, opts)) +} + +export interface GetCustomPluginOutputArgs { + /** + * The Amazon Resource Name (ARN) of the custom plugin to use. + */ + customPluginArn: pulumi.Input; +} diff --git a/sdk/nodejs/kafkaconnect/getWorkerConfiguration.ts b/sdk/nodejs/kafkaconnect/getWorkerConfiguration.ts new file mode 100644 index 0000000000..cf0ed706e9 --- /dev/null +++ b/sdk/nodejs/kafkaconnect/getWorkerConfiguration.ts @@ -0,0 +1,54 @@ +// *** 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 configuration of the workers, which are the processes that run the connector logic. + */ +export function getWorkerConfiguration(args: GetWorkerConfigurationArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:kafkaconnect:getWorkerConfiguration", { + "workerConfigurationArn": args.workerConfigurationArn, + }, opts); +} + +export interface GetWorkerConfigurationArgs { + /** + * The Amazon Resource Name (ARN) of the custom configuration. + */ + workerConfigurationArn: string; +} + +export interface GetWorkerConfigurationResult { + /** + * The description of a revision of the worker configuration. + */ + readonly revision?: number; + /** + * A collection of tags associated with a resource + */ + readonly tags?: outputs.Tag[]; + /** + * The Amazon Resource Name (ARN) of the custom configuration. + */ + readonly workerConfigurationArn?: string; +} +/** + * The configuration of the workers, which are the processes that run the connector logic. + */ +export function getWorkerConfigurationOutput(args: GetWorkerConfigurationOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getWorkerConfiguration(a, opts)) +} + +export interface GetWorkerConfigurationOutputArgs { + /** + * The Amazon Resource Name (ARN) of the custom configuration. + */ + workerConfigurationArn: pulumi.Input; +} diff --git a/sdk/nodejs/kafkaconnect/index.ts b/sdk/nodejs/kafkaconnect/index.ts index 0014341760..187ac82f9b 100644 --- a/sdk/nodejs/kafkaconnect/index.ts +++ b/sdk/nodejs/kafkaconnect/index.ts @@ -10,11 +10,31 @@ export type Connector = import("./connector").Connector; export const Connector: typeof import("./connector").Connector = null as any; utilities.lazyLoad(exports, ["Connector"], () => require("./connector")); +export { CustomPluginArgs } from "./customPlugin"; +export type CustomPlugin = import("./customPlugin").CustomPlugin; +export const CustomPlugin: typeof import("./customPlugin").CustomPlugin = null as any; +utilities.lazyLoad(exports, ["CustomPlugin"], () => require("./customPlugin")); + export { GetConnectorArgs, GetConnectorResult, GetConnectorOutputArgs } from "./getConnector"; export const getConnector: typeof import("./getConnector").getConnector = null as any; export const getConnectorOutput: typeof import("./getConnector").getConnectorOutput = null as any; utilities.lazyLoad(exports, ["getConnector","getConnectorOutput"], () => require("./getConnector")); +export { GetCustomPluginArgs, GetCustomPluginResult, GetCustomPluginOutputArgs } from "./getCustomPlugin"; +export const getCustomPlugin: typeof import("./getCustomPlugin").getCustomPlugin = null as any; +export const getCustomPluginOutput: typeof import("./getCustomPlugin").getCustomPluginOutput = null as any; +utilities.lazyLoad(exports, ["getCustomPlugin","getCustomPluginOutput"], () => require("./getCustomPlugin")); + +export { GetWorkerConfigurationArgs, GetWorkerConfigurationResult, GetWorkerConfigurationOutputArgs } from "./getWorkerConfiguration"; +export const getWorkerConfiguration: typeof import("./getWorkerConfiguration").getWorkerConfiguration = null as any; +export const getWorkerConfigurationOutput: typeof import("./getWorkerConfiguration").getWorkerConfigurationOutput = null as any; +utilities.lazyLoad(exports, ["getWorkerConfiguration","getWorkerConfigurationOutput"], () => require("./getWorkerConfiguration")); + +export { WorkerConfigurationArgs } from "./workerConfiguration"; +export type WorkerConfiguration = import("./workerConfiguration").WorkerConfiguration; +export const WorkerConfiguration: typeof import("./workerConfiguration").WorkerConfiguration = null as any; +utilities.lazyLoad(exports, ["WorkerConfiguration"], () => require("./workerConfiguration")); + // Export enums: export * from "../types/enums/kafkaconnect"; @@ -25,6 +45,10 @@ const _module = { switch (type) { case "aws-native:kafkaconnect:Connector": return new Connector(name, undefined, { urn }) + case "aws-native:kafkaconnect:CustomPlugin": + return new CustomPlugin(name, undefined, { urn }) + case "aws-native:kafkaconnect:WorkerConfiguration": + return new WorkerConfiguration(name, undefined, { urn }) default: throw new Error(`unknown resource type ${type}`); } diff --git a/sdk/nodejs/kafkaconnect/workerConfiguration.ts b/sdk/nodejs/kafkaconnect/workerConfiguration.ts new file mode 100644 index 0000000000..62a9e2594d --- /dev/null +++ b/sdk/nodejs/kafkaconnect/workerConfiguration.ts @@ -0,0 +1,120 @@ +// *** 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 configuration of the workers, which are the processes that run the connector logic. + */ +export class WorkerConfiguration extends pulumi.CustomResource { + /** + * Get an existing WorkerConfiguration 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): WorkerConfiguration { + return new WorkerConfiguration(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:kafkaconnect:WorkerConfiguration'; + + /** + * Returns true if the given object is an instance of WorkerConfiguration. 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 WorkerConfiguration { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === WorkerConfiguration.__pulumiType; + } + + /** + * A summary description of the worker configuration. + */ + public readonly description!: pulumi.Output; + /** + * The name of the worker configuration. + */ + public readonly name!: pulumi.Output; + /** + * Base64 encoded contents of connect-distributed.properties file. + */ + public readonly propertiesFileContent!: pulumi.Output; + /** + * The description of a revision of the worker configuration. + */ + public /*out*/ readonly revision!: pulumi.Output; + /** + * A collection of tags associated with a resource + */ + public readonly tags!: pulumi.Output; + /** + * The Amazon Resource Name (ARN) of the custom configuration. + */ + public /*out*/ readonly workerConfigurationArn!: pulumi.Output; + + /** + * Create a WorkerConfiguration 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: WorkerConfigurationArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.propertiesFileContent === undefined) && !opts.urn) { + throw new Error("Missing required property 'propertiesFileContent'"); + } + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["propertiesFileContent"] = args ? args.propertiesFileContent : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["revision"] = undefined /*out*/; + resourceInputs["workerConfigurationArn"] = undefined /*out*/; + } else { + resourceInputs["description"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["propertiesFileContent"] = undefined /*out*/; + resourceInputs["revision"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; + resourceInputs["workerConfigurationArn"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["description", "name", "propertiesFileContent"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(WorkerConfiguration.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a WorkerConfiguration resource. + */ +export interface WorkerConfigurationArgs { + /** + * A summary description of the worker configuration. + */ + description?: pulumi.Input; + /** + * The name of the worker configuration. + */ + name?: pulumi.Input; + /** + * Base64 encoded contents of connect-distributed.properties file. + */ + propertiesFileContent: pulumi.Input; + /** + * A collection of tags associated with a resource + */ + tags?: pulumi.Input[]>; +} diff --git a/sdk/nodejs/logs/getLogGroup.ts b/sdk/nodejs/logs/getLogGroup.ts index de807221c2..aedfcdcf0a 100644 --- a/sdk/nodejs/logs/getLogGroup.ts +++ b/sdk/nodejs/logs/getLogGroup.ts @@ -8,7 +8,11 @@ import * as enums from "../types/enums"; import * as utilities from "../utilities"; /** - * Resource schema for AWS::Logs::LogGroup + * The ``AWS::Logs::LogGroup`` resource specifies a log group. A log group defines common properties for log streams, such as their retention and access control rules. Each log stream must belong to one log group. + * You can create up to 1,000,000 log groups per Region per account. You must use the following guidelines when naming a log group: + * + Log group names must be unique within a Region for an AWS account. + * + Log group names can be between 1 and 512 characters long. + * + Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period). */ export function getLogGroup(args: GetLogGroupArgs, opts?: pulumi.InvokeOptions): Promise { @@ -20,47 +24,52 @@ export function getLogGroup(args: GetLogGroupArgs, opts?: pulumi.InvokeOptions): export interface GetLogGroupArgs { /** - * The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group. + * The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group. */ logGroupName: string; } export interface GetLogGroupResult { - /** - * The CloudWatch log group ARN. - */ readonly arn?: string; /** - * The body of the policy document you want to use for this topic. - * - * You can only add one policy per topic. - * - * The policy must be in JSON string format. - * - * Length Constraints: Maximum length of 30720 + * Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks. + * For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html). * * Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property. */ readonly dataProtectionPolicy?: any; /** - * The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. + * The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data. + * To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested. + * If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error. + * Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) */ readonly kmsKeyId?: string; /** - * The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class + * Specifies the log group class for this log group. There are two classes: + * + The ``Standard`` log class supports all CWL features. + * + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs. + * + * For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) */ readonly logGroupClass?: enums.logs.LogGroupClass; /** - * The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653. + * The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653. + * To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). */ readonly retentionInDays?: number; /** - * An array of key-value pairs to apply to this resource. + * An array of key-value pairs to apply to the log group. + * For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). */ readonly tags?: outputs.Tag[]; } /** - * Resource schema for AWS::Logs::LogGroup + * The ``AWS::Logs::LogGroup`` resource specifies a log group. A log group defines common properties for log streams, such as their retention and access control rules. Each log stream must belong to one log group. + * You can create up to 1,000,000 log groups per Region per account. You must use the following guidelines when naming a log group: + * + Log group names must be unique within a Region for an AWS account. + * + Log group names can be between 1 and 512 characters long. + * + Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period). */ export function getLogGroupOutput(args: GetLogGroupOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { return pulumi.output(args).apply((a: any) => getLogGroup(a, opts)) @@ -68,7 +77,7 @@ export function getLogGroupOutput(args: GetLogGroupOutputArgs, opts?: pulumi.Inv export interface GetLogGroupOutputArgs { /** - * The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group. + * The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group. */ logGroupName: pulumi.Input; } diff --git a/sdk/nodejs/logs/getMetricFilter.ts b/sdk/nodejs/logs/getMetricFilter.ts index 2060fc6345..b917e67758 100644 --- a/sdk/nodejs/logs/getMetricFilter.ts +++ b/sdk/nodejs/logs/getMetricFilter.ts @@ -8,7 +8,8 @@ import * as enums from "../types/enums"; import * as utilities from "../utilities"; /** - * Specifies a metric filter that describes how CloudWatch Logs extracts information from logs and transforms it into Amazon CloudWatch metrics. + * The ``AWS::Logs::MetricFilter`` resource specifies a metric filter that describes how CWL extracts information from logs and transforms it into Amazon CloudWatch metrics. If you have multiple metric filters that are associated with a log group, all the filters are applied to the log streams in that group. + * The maximum number of metric filters that can be associated with a log group is 100. */ export function getMetricFilter(args: GetMetricFilterArgs, opts?: pulumi.InvokeOptions): Promise { @@ -21,27 +22,28 @@ export function getMetricFilter(args: GetMetricFilterArgs, opts?: pulumi.InvokeO export interface GetMetricFilterArgs { /** - * A name for the metric filter. + * The name of the metric filter. */ filterName: string; /** - * Existing log group that you want to associate with this filter. + * The name of an existing log group that you want to associate with this metric filter. */ logGroupName: string; } export interface GetMetricFilterResult { /** - * Pattern that Logs follows to interpret each entry in a log. + * A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). */ readonly filterPattern?: string; /** - * A collection of information that defines how metric data gets emitted. + * The metric transformations. */ readonly metricTransformations?: outputs.logs.MetricFilterMetricTransformation[]; } /** - * Specifies a metric filter that describes how CloudWatch Logs extracts information from logs and transforms it into Amazon CloudWatch metrics. + * The ``AWS::Logs::MetricFilter`` resource specifies a metric filter that describes how CWL extracts information from logs and transforms it into Amazon CloudWatch metrics. If you have multiple metric filters that are associated with a log group, all the filters are applied to the log streams in that group. + * The maximum number of metric filters that can be associated with a log group is 100. */ export function getMetricFilterOutput(args: GetMetricFilterOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { return pulumi.output(args).apply((a: any) => getMetricFilter(a, opts)) @@ -49,11 +51,11 @@ export function getMetricFilterOutput(args: GetMetricFilterOutputArgs, opts?: pu export interface GetMetricFilterOutputArgs { /** - * A name for the metric filter. + * The name of the metric filter. */ filterName: pulumi.Input; /** - * Existing log group that you want to associate with this filter. + * The name of an existing log group that you want to associate with this metric filter. */ logGroupName: pulumi.Input; } diff --git a/sdk/nodejs/logs/getSubscriptionFilter.ts b/sdk/nodejs/logs/getSubscriptionFilter.ts index f4ce75196c..db889dd301 100644 --- a/sdk/nodejs/logs/getSubscriptionFilter.ts +++ b/sdk/nodejs/logs/getSubscriptionFilter.ts @@ -8,7 +8,13 @@ import * as enums from "../types/enums"; import * as utilities from "../utilities"; /** - * Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. + * The ``AWS::Logs::SubscriptionFilter`` resource specifies a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. Currently, the supported destinations are: + * + An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery. + * + A logical destination that belongs to a different account, for cross-account delivery. + * + An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery. + * + An LAMlong function that belongs to the same account as the subscription filter, for same-account delivery. + * + * There can be as many as two subscription filters associated with a log group. */ export function getSubscriptionFilter(args: GetSubscriptionFilterArgs, opts?: pulumi.InvokeOptions): Promise { @@ -21,11 +27,11 @@ export function getSubscriptionFilter(args: GetSubscriptionFilterArgs, opts?: pu export interface GetSubscriptionFilterArgs { /** - * The name of the filter generated by resource. + * The name of the subscription filter. */ filterName: string; /** - * Existing log group that you want to associate with this filter. + * The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events. */ logGroupName: string; } @@ -36,20 +42,26 @@ export interface GetSubscriptionFilterResult { */ readonly destinationArn?: string; /** - * The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. + * The method used to distribute log data to the destination, which can be either random or grouped by log stream. */ readonly distribution?: enums.logs.SubscriptionFilterDistribution; /** - * The filtering expressions that restrict what gets delivered to the destination AWS resource. + * The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). */ readonly filterPattern?: string; /** - * The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. + * The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. */ readonly roleArn?: string; } /** - * Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. + * The ``AWS::Logs::SubscriptionFilter`` resource specifies a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. Currently, the supported destinations are: + * + An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery. + * + A logical destination that belongs to a different account, for cross-account delivery. + * + An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery. + * + An LAMlong function that belongs to the same account as the subscription filter, for same-account delivery. + * + * There can be as many as two subscription filters associated with a log group. */ export function getSubscriptionFilterOutput(args: GetSubscriptionFilterOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { return pulumi.output(args).apply((a: any) => getSubscriptionFilter(a, opts)) @@ -57,11 +69,11 @@ export function getSubscriptionFilterOutput(args: GetSubscriptionFilterOutputArg export interface GetSubscriptionFilterOutputArgs { /** - * The name of the filter generated by resource. + * The name of the subscription filter. */ filterName: pulumi.Input; /** - * Existing log group that you want to associate with this filter. + * The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events. */ logGroupName: pulumi.Input; } diff --git a/sdk/nodejs/logs/logGroup.ts b/sdk/nodejs/logs/logGroup.ts index 6db46ac6a7..366b569131 100644 --- a/sdk/nodejs/logs/logGroup.ts +++ b/sdk/nodejs/logs/logGroup.ts @@ -8,7 +8,11 @@ import * as enums from "../types/enums"; import * as utilities from "../utilities"; /** - * Resource schema for AWS::Logs::LogGroup + * The ``AWS::Logs::LogGroup`` resource specifies a log group. A log group defines common properties for log streams, such as their retention and access control rules. Each log stream must belong to one log group. + * You can create up to 1,000,000 log groups per Region per account. You must use the following guidelines when naming a log group: + * + Log group names must be unique within a Region for an AWS account. + * + Log group names can be between 1 and 512 characters long. + * + Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period). */ export class LogGroup extends pulumi.CustomResource { /** @@ -37,40 +41,41 @@ export class LogGroup extends pulumi.CustomResource { return obj['__pulumiType'] === LogGroup.__pulumiType; } - /** - * The CloudWatch log group ARN. - */ public /*out*/ readonly arn!: pulumi.Output; /** - * The body of the policy document you want to use for this topic. - * - * You can only add one policy per topic. - * - * The policy must be in JSON string format. - * - * Length Constraints: Maximum length of 30720 + * Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks. + * For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html). * * Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property. */ public readonly dataProtectionPolicy!: pulumi.Output; /** - * The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. + * The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data. + * To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested. + * If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error. + * Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) */ public readonly kmsKeyId!: pulumi.Output; /** - * The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class + * Specifies the log group class for this log group. There are two classes: + * + The ``Standard`` log class supports all CWL features. + * + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs. + * + * For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) */ public readonly logGroupClass!: pulumi.Output; /** - * The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group. + * The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group. */ public readonly logGroupName!: pulumi.Output; /** - * The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653. + * The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653. + * To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). */ public readonly retentionInDays!: pulumi.Output; /** - * An array of key-value pairs to apply to this resource. + * An array of key-value pairs to apply to the log group. + * For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). */ public readonly tags!: pulumi.Output; @@ -113,35 +118,39 @@ export class LogGroup extends pulumi.CustomResource { */ export interface LogGroupArgs { /** - * The body of the policy document you want to use for this topic. - * - * You can only add one policy per topic. - * - * The policy must be in JSON string format. - * - * Length Constraints: Maximum length of 30720 + * Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks. + * For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html). * * Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property. */ dataProtectionPolicy?: any; /** - * The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. + * The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data. + * To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested. + * If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error. + * Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) */ kmsKeyId?: pulumi.Input; /** - * The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class + * Specifies the log group class for this log group. There are two classes: + * + The ``Standard`` log class supports all CWL features. + * + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs. + * + * For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) */ logGroupClass?: pulumi.Input; /** - * The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group. + * The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group. */ logGroupName?: pulumi.Input; /** - * The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653. + * The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653. + * To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). */ retentionInDays?: pulumi.Input; /** - * An array of key-value pairs to apply to this resource. + * An array of key-value pairs to apply to the log group. + * For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). */ tags?: pulumi.Input[]>; } diff --git a/sdk/nodejs/logs/metricFilter.ts b/sdk/nodejs/logs/metricFilter.ts index 8f41141c09..e93796d942 100644 --- a/sdk/nodejs/logs/metricFilter.ts +++ b/sdk/nodejs/logs/metricFilter.ts @@ -8,7 +8,8 @@ import * as enums from "../types/enums"; import * as utilities from "../utilities"; /** - * Specifies a metric filter that describes how CloudWatch Logs extracts information from logs and transforms it into Amazon CloudWatch metrics. + * The ``AWS::Logs::MetricFilter`` resource specifies a metric filter that describes how CWL extracts information from logs and transforms it into Amazon CloudWatch metrics. If you have multiple metric filters that are associated with a log group, all the filters are applied to the log streams in that group. + * The maximum number of metric filters that can be associated with a log group is 100. */ export class MetricFilter extends pulumi.CustomResource { /** @@ -38,19 +39,19 @@ export class MetricFilter extends pulumi.CustomResource { } /** - * A name for the metric filter. + * The name of the metric filter. */ public readonly filterName!: pulumi.Output; /** - * Pattern that Logs follows to interpret each entry in a log. + * A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). */ public readonly filterPattern!: pulumi.Output; /** - * Existing log group that you want to associate with this filter. + * The name of an existing log group that you want to associate with this metric filter. */ public readonly logGroupName!: pulumi.Output; /** - * A collection of information that defines how metric data gets emitted. + * The metric transformations. */ public readonly metricTransformations!: pulumi.Output; @@ -96,19 +97,19 @@ export class MetricFilter extends pulumi.CustomResource { */ export interface MetricFilterArgs { /** - * A name for the metric filter. + * The name of the metric filter. */ filterName?: pulumi.Input; /** - * Pattern that Logs follows to interpret each entry in a log. + * A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). */ filterPattern: pulumi.Input; /** - * Existing log group that you want to associate with this filter. + * The name of an existing log group that you want to associate with this metric filter. */ logGroupName: pulumi.Input; /** - * A collection of information that defines how metric data gets emitted. + * The metric transformations. */ metricTransformations: pulumi.Input[]>; } diff --git a/sdk/nodejs/logs/subscriptionFilter.ts b/sdk/nodejs/logs/subscriptionFilter.ts index 096f488256..2c52685779 100644 --- a/sdk/nodejs/logs/subscriptionFilter.ts +++ b/sdk/nodejs/logs/subscriptionFilter.ts @@ -8,7 +8,13 @@ import * as enums from "../types/enums"; import * as utilities from "../utilities"; /** - * Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. + * The ``AWS::Logs::SubscriptionFilter`` resource specifies a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. Currently, the supported destinations are: + * + An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery. + * + A logical destination that belongs to a different account, for cross-account delivery. + * + An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery. + * + An LAMlong function that belongs to the same account as the subscription filter, for same-account delivery. + * + * There can be as many as two subscription filters associated with a log group. */ export class SubscriptionFilter extends pulumi.CustomResource { /** @@ -42,23 +48,23 @@ export class SubscriptionFilter extends pulumi.CustomResource { */ public readonly destinationArn!: pulumi.Output; /** - * The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. + * The method used to distribute log data to the destination, which can be either random or grouped by log stream. */ public readonly distribution!: pulumi.Output; /** - * The name of the filter generated by resource. + * The name of the subscription filter. */ public readonly filterName!: pulumi.Output; /** - * The filtering expressions that restrict what gets delivered to the destination AWS resource. + * The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). */ public readonly filterPattern!: pulumi.Output; /** - * Existing log group that you want to associate with this filter. + * The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events. */ public readonly logGroupName!: pulumi.Output; /** - * The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. + * The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. */ public readonly roleArn!: pulumi.Output; @@ -112,23 +118,23 @@ export interface SubscriptionFilterArgs { */ destinationArn: pulumi.Input; /** - * The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. + * The method used to distribute log data to the destination, which can be either random or grouped by log stream. */ distribution?: pulumi.Input; /** - * The name of the filter generated by resource. + * The name of the subscription filter. */ filterName?: pulumi.Input; /** - * The filtering expressions that restrict what gets delivered to the destination AWS resource. + * The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). */ filterPattern: pulumi.Input; /** - * Existing log group that you want to associate with this filter. + * The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events. */ logGroupName: pulumi.Input; /** - * The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. + * The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. */ roleArn?: pulumi.Input; } diff --git a/sdk/nodejs/rds/getIntegration.ts b/sdk/nodejs/rds/getIntegration.ts index 41154dd70d..c146f5cf78 100644 --- a/sdk/nodejs/rds/getIntegration.ts +++ b/sdk/nodejs/rds/getIntegration.ts @@ -27,10 +27,22 @@ export interface GetIntegrationArgs { export interface GetIntegrationResult { readonly createTime?: string; + /** + * The data filter for the integration. + */ + readonly dataFilter?: string; + /** + * The description of the integration. + */ + readonly description?: string; /** * The ARN of the integration. */ readonly integrationArn?: string; + /** + * The name of the integration. + */ + readonly integrationName?: string; /** * An array of key-value pairs to apply to this resource. */ diff --git a/sdk/nodejs/rds/integration.ts b/sdk/nodejs/rds/integration.ts index a332367395..3b2373fbbd 100644 --- a/sdk/nodejs/rds/integration.ts +++ b/sdk/nodejs/rds/integration.ts @@ -39,6 +39,14 @@ export class Integration extends pulumi.CustomResource { public readonly additionalEncryptionContext!: pulumi.Output<{[key: string]: string} | undefined>; public /*out*/ readonly createTime!: pulumi.Output; + /** + * The data filter for the integration. + */ + public readonly dataFilter!: pulumi.Output; + /** + * The description of the integration. + */ + public readonly description!: pulumi.Output; /** * The ARN of the integration. */ @@ -82,6 +90,8 @@ export class Integration extends pulumi.CustomResource { throw new Error("Missing required property 'targetArn'"); } resourceInputs["additionalEncryptionContext"] = args ? args.additionalEncryptionContext : undefined; + resourceInputs["dataFilter"] = args ? args.dataFilter : undefined; + resourceInputs["description"] = args ? args.description : undefined; resourceInputs["integrationName"] = args ? args.integrationName : undefined; resourceInputs["kmsKeyId"] = args ? args.kmsKeyId : undefined; resourceInputs["sourceArn"] = args ? args.sourceArn : undefined; @@ -92,6 +102,8 @@ export class Integration extends pulumi.CustomResource { } else { resourceInputs["additionalEncryptionContext"] = undefined /*out*/; resourceInputs["createTime"] = undefined /*out*/; + resourceInputs["dataFilter"] = undefined /*out*/; + resourceInputs["description"] = undefined /*out*/; resourceInputs["integrationArn"] = undefined /*out*/; resourceInputs["integrationName"] = undefined /*out*/; resourceInputs["kmsKeyId"] = undefined /*out*/; @@ -100,7 +112,7 @@ export class Integration extends pulumi.CustomResource { resourceInputs["targetArn"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); - const replaceOnChanges = { replaceOnChanges: ["additionalEncryptionContext.*", "integrationName", "kmsKeyId", "sourceArn", "targetArn"] }; + const replaceOnChanges = { replaceOnChanges: ["additionalEncryptionContext.*", "kmsKeyId", "sourceArn", "targetArn"] }; opts = pulumi.mergeOptions(opts, replaceOnChanges); super(Integration.__pulumiType, name, resourceInputs, opts); } @@ -111,6 +123,14 @@ export class Integration extends pulumi.CustomResource { */ export interface IntegrationArgs { additionalEncryptionContext?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The data filter for the integration. + */ + dataFilter?: pulumi.Input; + /** + * The description of the integration. + */ + description?: pulumi.Input; /** * The name of the integration. */ diff --git a/sdk/nodejs/resiliencehub/getResiliencyPolicy.ts b/sdk/nodejs/resiliencehub/getResiliencyPolicy.ts index 02d80aeb7f..0e9d564dd4 100644 --- a/sdk/nodejs/resiliencehub/getResiliencyPolicy.ts +++ b/sdk/nodejs/resiliencehub/getResiliencyPolicy.ts @@ -30,7 +30,7 @@ export interface GetResiliencyPolicyResult { * Data Location Constraint of the Policy. */ readonly dataLocationConstraint?: enums.resiliencehub.ResiliencyPolicyDataLocationConstraint; - readonly policy?: {[key: string]: outputs.resiliencehub.ResiliencyPolicyFailurePolicy}; + readonly policy?: outputs.resiliencehub.ResiliencyPolicyPolicyMap; /** * Amazon Resource Name (ARN) of the Resiliency Policy. */ diff --git a/sdk/nodejs/resiliencehub/resiliencyPolicy.ts b/sdk/nodejs/resiliencehub/resiliencyPolicy.ts index 481ac9662d..2fbf8d0c71 100644 --- a/sdk/nodejs/resiliencehub/resiliencyPolicy.ts +++ b/sdk/nodejs/resiliencehub/resiliencyPolicy.ts @@ -41,7 +41,7 @@ export class ResiliencyPolicy extends pulumi.CustomResource { * Data Location Constraint of the Policy. */ public readonly dataLocationConstraint!: pulumi.Output; - public readonly policy!: pulumi.Output<{[key: string]: outputs.resiliencehub.ResiliencyPolicyFailurePolicy}>; + public readonly policy!: pulumi.Output; /** * Amazon Resource Name (ARN) of the Resiliency Policy. */ @@ -106,7 +106,7 @@ export interface ResiliencyPolicyArgs { * Data Location Constraint of the Policy. */ dataLocationConstraint?: pulumi.Input; - policy: pulumi.Input<{[key: string]: pulumi.Input}>; + policy: pulumi.Input; /** * Description of Resiliency Policy. */ diff --git a/sdk/nodejs/securitylake/awsLogSource.ts b/sdk/nodejs/securitylake/awsLogSource.ts new file mode 100644 index 0000000000..4cab017272 --- /dev/null +++ b/sdk/nodejs/securitylake/awsLogSource.ts @@ -0,0 +1,108 @@ +// *** 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"; + +/** + * Resource Type definition for AWS::SecurityLake::AwsLogSource + */ +export class AwsLogSource extends pulumi.CustomResource { + /** + * Get an existing AwsLogSource 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): AwsLogSource { + return new AwsLogSource(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:securitylake:AwsLogSource'; + + /** + * Returns true if the given object is an instance of AwsLogSource. 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 AwsLogSource { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === AwsLogSource.__pulumiType; + } + + /** + * AWS account where you want to collect logs from. + */ + public readonly accounts!: pulumi.Output; + /** + * The ARN for the data lake. + */ + public readonly dataLakeArn!: pulumi.Output; + /** + * The name for a AWS source. This must be a Regionally unique value. + */ + public readonly sourceName!: pulumi.Output; + /** + * The version for a AWS source. This must be a Regionally unique value. + */ + public readonly sourceVersion!: pulumi.Output; + + /** + * Create a AwsLogSource 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: AwsLogSourceArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.dataLakeArn === undefined) && !opts.urn) { + throw new Error("Missing required property 'dataLakeArn'"); + } + if ((!args || args.sourceVersion === undefined) && !opts.urn) { + throw new Error("Missing required property 'sourceVersion'"); + } + resourceInputs["accounts"] = args ? args.accounts : undefined; + resourceInputs["dataLakeArn"] = args ? args.dataLakeArn : undefined; + resourceInputs["sourceName"] = args ? args.sourceName : undefined; + resourceInputs["sourceVersion"] = args ? args.sourceVersion : undefined; + } else { + resourceInputs["accounts"] = undefined /*out*/; + resourceInputs["dataLakeArn"] = undefined /*out*/; + resourceInputs["sourceName"] = undefined /*out*/; + resourceInputs["sourceVersion"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["dataLakeArn", "sourceName", "sourceVersion"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(AwsLogSource.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a AwsLogSource resource. + */ +export interface AwsLogSourceArgs { + /** + * AWS account where you want to collect logs from. + */ + accounts?: pulumi.Input[]>; + /** + * The ARN for the data lake. + */ + dataLakeArn: pulumi.Input; + /** + * The name for a AWS source. This must be a Regionally unique value. + */ + sourceName?: pulumi.Input; + /** + * The version for a AWS source. This must be a Regionally unique value. + */ + sourceVersion: pulumi.Input; +} diff --git a/sdk/nodejs/securitylake/dataLake.ts b/sdk/nodejs/securitylake/dataLake.ts new file mode 100644 index 0000000000..3d2d1e478b --- /dev/null +++ b/sdk/nodejs/securitylake/dataLake.ts @@ -0,0 +1,103 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Resource Type definition for AWS::SecurityLake::DataLake + */ +export class DataLake extends pulumi.CustomResource { + /** + * Get an existing DataLake 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): DataLake { + return new DataLake(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:securitylake:DataLake'; + + /** + * Returns true if the given object is an instance of DataLake. 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 DataLake { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === DataLake.__pulumiType; + } + + /** + * The Amazon Resource Name (ARN) created by you to provide to the subscriber. + */ + public /*out*/ readonly arn!: pulumi.Output; + public readonly encryptionConfiguration!: pulumi.Output; + public readonly lifecycleConfiguration!: pulumi.Output; + /** + * The Amazon Resource Name (ARN) used to index AWS Glue table partitions that are generated by the ingestion and normalization of AWS log sources and custom sources. + */ + public readonly metaStoreManagerRoleArn!: pulumi.Output; + public readonly replicationConfiguration!: pulumi.Output; + /** + * The ARN for the Amazon Security Lake Amazon S3 bucket. + */ + public /*out*/ readonly s3BucketArn!: pulumi.Output; + public readonly tags!: pulumi.Output; + + /** + * Create a DataLake 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?: DataLakeArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + resourceInputs["encryptionConfiguration"] = args ? args.encryptionConfiguration : undefined; + resourceInputs["lifecycleConfiguration"] = args ? args.lifecycleConfiguration : undefined; + resourceInputs["metaStoreManagerRoleArn"] = args ? args.metaStoreManagerRoleArn : undefined; + resourceInputs["replicationConfiguration"] = args ? args.replicationConfiguration : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["s3BucketArn"] = undefined /*out*/; + } else { + resourceInputs["arn"] = undefined /*out*/; + resourceInputs["encryptionConfiguration"] = undefined /*out*/; + resourceInputs["lifecycleConfiguration"] = undefined /*out*/; + resourceInputs["metaStoreManagerRoleArn"] = undefined /*out*/; + resourceInputs["replicationConfiguration"] = undefined /*out*/; + resourceInputs["s3BucketArn"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["metaStoreManagerRoleArn"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(DataLake.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a DataLake resource. + */ +export interface DataLakeArgs { + encryptionConfiguration?: pulumi.Input; + lifecycleConfiguration?: pulumi.Input; + /** + * The Amazon Resource Name (ARN) used to index AWS Glue table partitions that are generated by the ingestion and normalization of AWS log sources and custom sources. + */ + metaStoreManagerRoleArn?: pulumi.Input; + replicationConfiguration?: pulumi.Input; + tags?: pulumi.Input[]>; +} diff --git a/sdk/nodejs/securitylake/getAwsLogSource.ts b/sdk/nodejs/securitylake/getAwsLogSource.ts new file mode 100644 index 0000000000..8b22c6277b --- /dev/null +++ b/sdk/nodejs/securitylake/getAwsLogSource.ts @@ -0,0 +1,52 @@ +// *** 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"; + +/** + * Resource Type definition for AWS::SecurityLake::AwsLogSource + */ +export function getAwsLogSource(args: GetAwsLogSourceArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:securitylake:getAwsLogSource", { + "sourceName": args.sourceName, + "sourceVersion": args.sourceVersion, + }, opts); +} + +export interface GetAwsLogSourceArgs { + /** + * The name for a AWS source. This must be a Regionally unique value. + */ + sourceName: string; + /** + * The version for a AWS source. This must be a Regionally unique value. + */ + sourceVersion: string; +} + +export interface GetAwsLogSourceResult { + /** + * AWS account where you want to collect logs from. + */ + readonly accounts?: string[]; +} +/** + * Resource Type definition for AWS::SecurityLake::AwsLogSource + */ +export function getAwsLogSourceOutput(args: GetAwsLogSourceOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getAwsLogSource(a, opts)) +} + +export interface GetAwsLogSourceOutputArgs { + /** + * The name for a AWS source. This must be a Regionally unique value. + */ + sourceName: pulumi.Input; + /** + * The version for a AWS source. This must be a Regionally unique value. + */ + sourceVersion: pulumi.Input; +} diff --git a/sdk/nodejs/securitylake/getDataLake.ts b/sdk/nodejs/securitylake/getDataLake.ts new file mode 100644 index 0000000000..01d90c0821 --- /dev/null +++ b/sdk/nodejs/securitylake/getDataLake.ts @@ -0,0 +1,54 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Resource Type definition for AWS::SecurityLake::DataLake + */ +export function getDataLake(args: GetDataLakeArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:securitylake:getDataLake", { + "arn": args.arn, + }, opts); +} + +export interface GetDataLakeArgs { + /** + * The Amazon Resource Name (ARN) created by you to provide to the subscriber. + */ + arn: string; +} + +export interface GetDataLakeResult { + /** + * The Amazon Resource Name (ARN) created by you to provide to the subscriber. + */ + readonly arn?: string; + readonly encryptionConfiguration?: outputs.securitylake.DataLakeEncryptionConfiguration; + readonly lifecycleConfiguration?: outputs.securitylake.DataLakeLifecycleConfiguration; + readonly replicationConfiguration?: outputs.securitylake.DataLakeReplicationConfiguration; + /** + * The ARN for the Amazon Security Lake Amazon S3 bucket. + */ + readonly s3BucketArn?: string; + readonly tags?: outputs.Tag[]; +} +/** + * Resource Type definition for AWS::SecurityLake::DataLake + */ +export function getDataLakeOutput(args: GetDataLakeOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getDataLake(a, opts)) +} + +export interface GetDataLakeOutputArgs { + /** + * The Amazon Resource Name (ARN) created by you to provide to the subscriber. + */ + arn: pulumi.Input; +} diff --git a/sdk/nodejs/securitylake/getSubscriber.ts b/sdk/nodejs/securitylake/getSubscriber.ts new file mode 100644 index 0000000000..acca8273df --- /dev/null +++ b/sdk/nodejs/securitylake/getSubscriber.ts @@ -0,0 +1,62 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Resource Type definition for AWS::SecurityLake::Subscriber + */ +export function getSubscriber(args: GetSubscriberArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("aws-native:securitylake:getSubscriber", { + "subscriberArn": args.subscriberArn, + }, opts); +} + +export interface GetSubscriberArgs { + subscriberArn: string; +} + +export interface GetSubscriberResult { + readonly accessTypes?: enums.securitylake.SubscriberAccessTypesItem[]; + readonly resourceShareArn?: string; + readonly resourceShareName?: string; + readonly s3BucketArn?: string; + /** + * The supported AWS services from which logs and events are collected. + */ + readonly sources?: (outputs.securitylake.SubscriberSource0Properties | outputs.securitylake.SubscriberSource1Properties)[]; + readonly subscriberArn?: string; + /** + * The description for your subscriber account in Security Lake. + */ + readonly subscriberDescription?: string; + /** + * The AWS identity used to access your data. + */ + readonly subscriberIdentity?: outputs.securitylake.SubscriberIdentityProperties; + /** + * The name of your Security Lake subscriber account. + */ + readonly subscriberName?: string; + readonly subscriberRoleArn?: string; + /** + * An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string. + */ + readonly tags?: outputs.Tag[]; +} +/** + * Resource Type definition for AWS::SecurityLake::Subscriber + */ +export function getSubscriberOutput(args: GetSubscriberOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getSubscriber(a, opts)) +} + +export interface GetSubscriberOutputArgs { + subscriberArn: pulumi.Input; +} diff --git a/sdk/nodejs/securitylake/index.ts b/sdk/nodejs/securitylake/index.ts new file mode 100644 index 0000000000..75c2ffd61b --- /dev/null +++ b/sdk/nodejs/securitylake/index.ts @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +// Export members: +export { AwsLogSourceArgs } from "./awsLogSource"; +export type AwsLogSource = import("./awsLogSource").AwsLogSource; +export const AwsLogSource: typeof import("./awsLogSource").AwsLogSource = null as any; +utilities.lazyLoad(exports, ["AwsLogSource"], () => require("./awsLogSource")); + +export { DataLakeArgs } from "./dataLake"; +export type DataLake = import("./dataLake").DataLake; +export const DataLake: typeof import("./dataLake").DataLake = null as any; +utilities.lazyLoad(exports, ["DataLake"], () => require("./dataLake")); + +export { GetAwsLogSourceArgs, GetAwsLogSourceResult, GetAwsLogSourceOutputArgs } from "./getAwsLogSource"; +export const getAwsLogSource: typeof import("./getAwsLogSource").getAwsLogSource = null as any; +export const getAwsLogSourceOutput: typeof import("./getAwsLogSource").getAwsLogSourceOutput = null as any; +utilities.lazyLoad(exports, ["getAwsLogSource","getAwsLogSourceOutput"], () => require("./getAwsLogSource")); + +export { GetDataLakeArgs, GetDataLakeResult, GetDataLakeOutputArgs } from "./getDataLake"; +export const getDataLake: typeof import("./getDataLake").getDataLake = null as any; +export const getDataLakeOutput: typeof import("./getDataLake").getDataLakeOutput = null as any; +utilities.lazyLoad(exports, ["getDataLake","getDataLakeOutput"], () => require("./getDataLake")); + +export { GetSubscriberArgs, GetSubscriberResult, GetSubscriberOutputArgs } from "./getSubscriber"; +export const getSubscriber: typeof import("./getSubscriber").getSubscriber = null as any; +export const getSubscriberOutput: typeof import("./getSubscriber").getSubscriberOutput = null as any; +utilities.lazyLoad(exports, ["getSubscriber","getSubscriberOutput"], () => require("./getSubscriber")); + +export { SubscriberArgs } from "./subscriber"; +export type Subscriber = import("./subscriber").Subscriber; +export const Subscriber: typeof import("./subscriber").Subscriber = null as any; +utilities.lazyLoad(exports, ["Subscriber"], () => require("./subscriber")); + + +// Export enums: +export * from "../types/enums/securitylake"; + +const _module = { + version: utilities.getVersion(), + construct: (name: string, type: string, urn: string): pulumi.Resource => { + switch (type) { + case "aws-native:securitylake:AwsLogSource": + return new AwsLogSource(name, undefined, { urn }) + case "aws-native:securitylake:DataLake": + return new DataLake(name, undefined, { urn }) + case "aws-native:securitylake:Subscriber": + return new Subscriber(name, undefined, { urn }) + default: + throw new Error(`unknown resource type ${type}`); + } + }, +}; +pulumi.runtime.registerResourceModule("aws-native", "securitylake", _module) diff --git a/sdk/nodejs/securitylake/subscriber.ts b/sdk/nodejs/securitylake/subscriber.ts new file mode 100644 index 0000000000..7da2ccbc37 --- /dev/null +++ b/sdk/nodejs/securitylake/subscriber.ts @@ -0,0 +1,156 @@ +// *** WARNING: this file was generated by pulumi-language-nodejs. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Resource Type definition for AWS::SecurityLake::Subscriber + */ +export class Subscriber extends pulumi.CustomResource { + /** + * Get an existing Subscriber 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): Subscriber { + return new Subscriber(name, undefined as any, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws-native:securitylake:Subscriber'; + + /** + * Returns true if the given object is an instance of Subscriber. 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 Subscriber { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Subscriber.__pulumiType; + } + + public readonly accessTypes!: pulumi.Output; + /** + * The ARN for the data lake. + */ + public readonly dataLakeArn!: pulumi.Output; + public /*out*/ readonly resourceShareArn!: pulumi.Output; + public /*out*/ readonly resourceShareName!: pulumi.Output; + public /*out*/ readonly s3BucketArn!: pulumi.Output; + /** + * The supported AWS services from which logs and events are collected. + */ + public readonly sources!: pulumi.Output<(outputs.securitylake.SubscriberSource0Properties | outputs.securitylake.SubscriberSource1Properties)[]>; + public /*out*/ readonly subscriberArn!: pulumi.Output; + /** + * The description for your subscriber account in Security Lake. + */ + public readonly subscriberDescription!: pulumi.Output; + /** + * The AWS identity used to access your data. + */ + public readonly subscriberIdentity!: pulumi.Output; + /** + * The name of your Security Lake subscriber account. + */ + public readonly subscriberName!: pulumi.Output; + public /*out*/ readonly subscriberRoleArn!: pulumi.Output; + /** + * An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string. + */ + public readonly tags!: pulumi.Output; + + /** + * Create a Subscriber 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: SubscriberArgs, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (!opts.id) { + if ((!args || args.accessTypes === undefined) && !opts.urn) { + throw new Error("Missing required property 'accessTypes'"); + } + if ((!args || args.dataLakeArn === undefined) && !opts.urn) { + throw new Error("Missing required property 'dataLakeArn'"); + } + if ((!args || args.sources === undefined) && !opts.urn) { + throw new Error("Missing required property 'sources'"); + } + if ((!args || args.subscriberIdentity === undefined) && !opts.urn) { + throw new Error("Missing required property 'subscriberIdentity'"); + } + resourceInputs["accessTypes"] = args ? args.accessTypes : undefined; + resourceInputs["dataLakeArn"] = args ? args.dataLakeArn : undefined; + resourceInputs["sources"] = args ? args.sources : undefined; + resourceInputs["subscriberDescription"] = args ? args.subscriberDescription : undefined; + resourceInputs["subscriberIdentity"] = args ? args.subscriberIdentity : undefined; + resourceInputs["subscriberName"] = args ? args.subscriberName : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["resourceShareArn"] = undefined /*out*/; + resourceInputs["resourceShareName"] = undefined /*out*/; + resourceInputs["s3BucketArn"] = undefined /*out*/; + resourceInputs["subscriberArn"] = undefined /*out*/; + resourceInputs["subscriberRoleArn"] = undefined /*out*/; + } else { + resourceInputs["accessTypes"] = undefined /*out*/; + resourceInputs["dataLakeArn"] = undefined /*out*/; + resourceInputs["resourceShareArn"] = undefined /*out*/; + resourceInputs["resourceShareName"] = undefined /*out*/; + resourceInputs["s3BucketArn"] = undefined /*out*/; + resourceInputs["sources"] = undefined /*out*/; + resourceInputs["subscriberArn"] = undefined /*out*/; + resourceInputs["subscriberDescription"] = undefined /*out*/; + resourceInputs["subscriberIdentity"] = undefined /*out*/; + resourceInputs["subscriberName"] = undefined /*out*/; + resourceInputs["subscriberRoleArn"] = undefined /*out*/; + resourceInputs["tags"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const replaceOnChanges = { replaceOnChanges: ["dataLakeArn"] }; + opts = pulumi.mergeOptions(opts, replaceOnChanges); + super(Subscriber.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * The set of arguments for constructing a Subscriber resource. + */ +export interface SubscriberArgs { + accessTypes: pulumi.Input[]>; + /** + * The ARN for the data lake. + */ + dataLakeArn: pulumi.Input; + /** + * The supported AWS services from which logs and events are collected. + */ + sources: pulumi.Input[]>; + /** + * The description for your subscriber account in Security Lake. + */ + subscriberDescription?: pulumi.Input; + /** + * The AWS identity used to access your data. + */ + subscriberIdentity: pulumi.Input; + /** + * The name of your Security Lake subscriber account. + */ + subscriberName?: pulumi.Input; + /** + * An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string. + */ + tags?: pulumi.Input[]>; +} diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 7408a01660..abeb582764 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -116,8 +116,10 @@ "appflow/getConnectorProfile.ts", "appflow/getFlow.ts", "appflow/index.ts", + "appintegrations/application.ts", "appintegrations/dataIntegration.ts", "appintegrations/eventIntegration.ts", + "appintegrations/getApplication.ts", "appintegrations/getDataIntegration.ts", "appintegrations/getEventIntegration.ts", "appintegrations/index.ts", @@ -167,9 +169,11 @@ "appsync/resolver.ts", "appsync/sourceApiAssociation.ts", "aps/getRuleGroupsNamespace.ts", + "aps/getScraper.ts", "aps/getWorkspace.ts", "aps/index.ts", "aps/ruleGroupsNamespace.ts", + "aps/scraper.ts", "aps/workspace.ts", "arczonalshift/getZonalAutoshiftConfiguration.ts", "arczonalshift/index.ts", @@ -236,6 +240,11 @@ "batch/jobDefinition.ts", "batch/jobQueue.ts", "batch/schedulingPolicy.ts", + "bedrock/agent.ts", + "bedrock/agentAlias.ts", + "bedrock/getAgent.ts", + "bedrock/getAgentAlias.ts", + "bedrock/index.ts", "budgets/budgetsAction.ts", "budgets/getBudgetsAction.ts", "budgets/index.ts", @@ -340,12 +349,17 @@ "cloudwatch/metricStream.ts", "codeartifact/domain.ts", "codeartifact/getDomain.ts", + "codeartifact/getPackageGroup.ts", "codeartifact/getRepository.ts", "codeartifact/index.ts", + "codeartifact/packageGroup.ts", "codeartifact/repository.ts", "codebuild/fleet.ts", "codebuild/getFleet.ts", "codebuild/index.ts", + "codeconnections/connection.ts", + "codeconnections/getConnection.ts", + "codeconnections/index.ts", "codedeploy/application.ts", "codedeploy/deploymentConfig.ts", "codedeploy/getApplication.ts", @@ -661,7 +675,6 @@ "ec2/getTransitGatewayMulticastGroupSource.ts", "ec2/getTransitGatewayPeeringAttachment.ts", "ec2/getTransitGatewayRouteTable.ts", - "ec2/getTransitGatewayRouteTableAssociation.ts", "ec2/getTransitGatewayVpcAttachment.ts", "ec2/getVerifiedAccessEndpoint.ts", "ec2/getVerifiedAccessGroup.ts", @@ -1197,8 +1210,12 @@ "ivschat/loggingConfiguration.ts", "ivschat/room.ts", "kafkaconnect/connector.ts", + "kafkaconnect/customPlugin.ts", "kafkaconnect/getConnector.ts", + "kafkaconnect/getCustomPlugin.ts", + "kafkaconnect/getWorkerConfiguration.ts", "kafkaconnect/index.ts", + "kafkaconnect/workerConfiguration.ts", "kendra/dataSource.ts", "kendra/faq.ts", "kendra/getDataSource.ts", @@ -1855,6 +1872,13 @@ "securityhub/hub.ts", "securityhub/index.ts", "securityhub/standard.ts", + "securitylake/awsLogSource.ts", + "securitylake/dataLake.ts", + "securitylake/getAwsLogSource.ts", + "securitylake/getDataLake.ts", + "securitylake/getSubscriber.ts", + "securitylake/index.ts", + "securitylake/subscriber.ts", "servicecatalog/cloudFormationProvisionedProduct.ts", "servicecatalog/getCloudFormationProvisionedProduct.ts", "servicecatalog/getServiceAction.ts", @@ -2000,6 +2024,7 @@ "types/enums/b2bi/index.ts", "types/enums/backup/index.ts", "types/enums/batch/index.ts", + "types/enums/bedrock/index.ts", "types/enums/budgets/index.ts", "types/enums/cassandra/index.ts", "types/enums/ce/index.ts", @@ -2007,9 +2032,11 @@ "types/enums/cloudformation/index.ts", "types/enums/cloudfront/index.ts", "types/enums/cloudtrail/index.ts", + "types/enums/codeartifact/index.ts", "types/enums/codebuild/index.ts", "types/enums/codeguruprofiler/index.ts", "types/enums/codegurureviewer/index.ts", + "types/enums/codestarconnections/index.ts", "types/enums/codestarnotifications/index.ts", "types/enums/comprehend/index.ts", "types/enums/connect/index.ts", @@ -2116,6 +2143,7 @@ "types/enums/sagemaker/index.ts", "types/enums/scheduler/index.ts", "types/enums/securityhub/index.ts", + "types/enums/securitylake/index.ts", "types/enums/servicecatalog/index.ts", "types/enums/servicecatalogappregistry/index.ts", "types/enums/shield/index.ts", diff --git a/sdk/nodejs/types/enums/appsync/index.ts b/sdk/nodejs/types/enums/appsync/index.ts index 707b1f0828..d08588d72e 100644 --- a/sdk/nodejs/types/enums/appsync/index.ts +++ b/sdk/nodejs/types/enums/appsync/index.ts @@ -7,6 +7,9 @@ export const ResolverMetricsConfig = { Disabled: "DISABLED", } as const; +/** + * Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value. + */ export type ResolverMetricsConfig = (typeof ResolverMetricsConfig)[keyof typeof ResolverMetricsConfig]; export const SourceApiAssociationConfigMergeType = { diff --git a/sdk/nodejs/types/enums/bedrock/index.ts b/sdk/nodejs/types/enums/bedrock/index.ts new file mode 100644 index 0000000000..1f401ab02c --- /dev/null +++ b/sdk/nodejs/types/enums/bedrock/index.ts @@ -0,0 +1,93 @@ +// *** 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 AgentActionGroupSignature = { + AmazonUserInput: "AMAZON.UserInput", +} as const; + +/** + * Action Group Signature for a BuiltIn Action + */ +export type AgentActionGroupSignature = (typeof AgentActionGroupSignature)[keyof typeof AgentActionGroupSignature]; + +export const AgentActionGroupState = { + Enabled: "ENABLED", + Disabled: "DISABLED", +} as const; + +/** + * State of the action group + */ +export type AgentActionGroupState = (typeof AgentActionGroupState)[keyof typeof AgentActionGroupState]; + +export const AgentAliasStatus = { + Creating: "CREATING", + Prepared: "PREPARED", + Failed: "FAILED", + Updating: "UPDATING", + Deleting: "DELETING", +} as const; + +/** + * The statuses an Agent Alias can be in. + */ +export type AgentAliasStatus = (typeof AgentAliasStatus)[keyof typeof AgentAliasStatus]; + +export const AgentCreationMode = { + Default: "DEFAULT", + Overridden: "OVERRIDDEN", +} as const; + +/** + * Creation Mode for Prompt Configuration. + */ +export type AgentCreationMode = (typeof AgentCreationMode)[keyof typeof AgentCreationMode]; + +export const AgentKnowledgeBaseState = { + Enabled: "ENABLED", + Disabled: "DISABLED", +} as const; + +/** + * State of the knowledge base; whether it is enabled or disabled + */ +export type AgentKnowledgeBaseState = (typeof AgentKnowledgeBaseState)[keyof typeof AgentKnowledgeBaseState]; + +export const AgentPromptState = { + Enabled: "ENABLED", + Disabled: "DISABLED", +} as const; + +/** + * Prompt State. + */ +export type AgentPromptState = (typeof AgentPromptState)[keyof typeof AgentPromptState]; + +export const AgentPromptType = { + PreProcessing: "PRE_PROCESSING", + Orchestration: "ORCHESTRATION", + PostProcessing: "POST_PROCESSING", + KnowledgeBaseResponseGeneration: "KNOWLEDGE_BASE_RESPONSE_GENERATION", +} as const; + +/** + * Prompt Type. + */ +export type AgentPromptType = (typeof AgentPromptType)[keyof typeof AgentPromptType]; + +export const AgentStatus = { + Creating: "CREATING", + Preparing: "PREPARING", + Prepared: "PREPARED", + NotPrepared: "NOT_PREPARED", + Deleting: "DELETING", + Failed: "FAILED", + Versioning: "VERSIONING", + Updating: "UPDATING", +} as const; + +/** + * Schema Type for Action APIs. + */ +export type AgentStatus = (typeof AgentStatus)[keyof typeof AgentStatus]; diff --git a/sdk/nodejs/types/enums/cleanrooms/index.ts b/sdk/nodejs/types/enums/cleanrooms/index.ts index 5786f2c50d..e464e071fc 100644 --- a/sdk/nodejs/types/enums/cleanrooms/index.ts +++ b/sdk/nodejs/types/enums/cleanrooms/index.ts @@ -99,6 +99,17 @@ export const ConfiguredTableScalarFunctions = { Rtrim: "RTRIM", Upper: "UPPER", Coalesce: "COALESCE", + Convert: "CONVERT", + CurrentDate: "CURRENT_DATE", + Dateadd: "DATEADD", + Extract: "EXTRACT", + Getdate: "GETDATE", + Substring: "SUBSTRING", + ToChar: "TO_CHAR", + ToDate: "TO_DATE", + ToNumber: "TO_NUMBER", + ToTimestamp: "TO_TIMESTAMP", + Trim: "TRIM", } as const; export type ConfiguredTableScalarFunctions = (typeof ConfiguredTableScalarFunctions)[keyof typeof ConfiguredTableScalarFunctions]; diff --git a/sdk/nodejs/types/enums/codeartifact/index.ts b/sdk/nodejs/types/enums/codeartifact/index.ts new file mode 100644 index 0000000000..027d05def4 --- /dev/null +++ b/sdk/nodejs/types/enums/codeartifact/index.ts @@ -0,0 +1,12 @@ +// *** 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 PackageGroupRestrictionTypeRestrictionMode = { + Allow: "ALLOW", + Block: "BLOCK", + AllowSpecificRepositories: "ALLOW_SPECIFIC_REPOSITORIES", + Inherit: "INHERIT", +} as const; + +export type PackageGroupRestrictionTypeRestrictionMode = (typeof PackageGroupRestrictionTypeRestrictionMode)[keyof typeof PackageGroupRestrictionTypeRestrictionMode]; diff --git a/sdk/nodejs/types/enums/codestarconnections/index.ts b/sdk/nodejs/types/enums/codestarconnections/index.ts new file mode 100644 index 0000000000..8776cd96bb --- /dev/null +++ b/sdk/nodejs/types/enums/codestarconnections/index.ts @@ -0,0 +1,49 @@ +// *** 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 RepositoryLinkProviderType = { + GitHub: "GitHub", + Bitbucket: "Bitbucket", + GitHubEnterprise: "GitHubEnterprise", + GitLab: "GitLab", + GitLabSelfManaged: "GitLabSelfManaged", +} as const; + +/** + * The name of the external provider where your third-party code repository is configured. + */ +export type RepositoryLinkProviderType = (typeof RepositoryLinkProviderType)[keyof typeof RepositoryLinkProviderType]; + +export const SyncConfigurationProviderType = { + GitHub: "GitHub", + Bitbucket: "Bitbucket", + GitHubEnterprise: "GitHubEnterprise", + GitLab: "GitLab", + GitLabSelfManaged: "GitLabSelfManaged", +} as const; + +/** + * The name of the external provider where your third-party code repository is configured. + */ +export type SyncConfigurationProviderType = (typeof SyncConfigurationProviderType)[keyof typeof SyncConfigurationProviderType]; + +export const SyncConfigurationPublishDeploymentStatus = { + Enabled: "ENABLED", + Disabled: "DISABLED", +} as const; + +/** + * Whether to enable or disable publishing of deployment status to source providers. + */ +export type SyncConfigurationPublishDeploymentStatus = (typeof SyncConfigurationPublishDeploymentStatus)[keyof typeof SyncConfigurationPublishDeploymentStatus]; + +export const SyncConfigurationTriggerResourceUpdateOn = { + AnyChange: "ANY_CHANGE", + FileChange: "FILE_CHANGE", +} as const; + +/** + * When to trigger Git sync to begin the stack update. + */ +export type SyncConfigurationTriggerResourceUpdateOn = (typeof SyncConfigurationTriggerResourceUpdateOn)[keyof typeof SyncConfigurationTriggerResourceUpdateOn]; diff --git a/sdk/nodejs/types/enums/efs/index.ts b/sdk/nodejs/types/enums/efs/index.ts index 189cda0089..5403d09c56 100644 --- a/sdk/nodejs/types/enums/efs/index.ts +++ b/sdk/nodejs/types/enums/efs/index.ts @@ -2,6 +2,18 @@ // *** Do not edit by hand unless you're certain you know what you are doing! *** +export const FileSystemBackupPolicyStatus = { + Disabled: "DISABLED", + Enabled: "ENABLED", +} as const; + +/** + * Set the backup policy status for the file system. + * + *ENABLED* - Turns automatic backups on for the file system. + * + *DISABLED* - Turns automatic backups off for the file system. + */ +export type FileSystemBackupPolicyStatus = (typeof FileSystemBackupPolicyStatus)[keyof typeof FileSystemBackupPolicyStatus]; + export const FileSystemProtectionReplicationOverwriteProtection = { Disabled: "DISABLED", Enabled: "ENABLED", diff --git a/sdk/nodejs/types/enums/elasticache/index.ts b/sdk/nodejs/types/enums/elasticache/index.ts index 43458ef0b2..e9b8d4fe8f 100644 --- a/sdk/nodejs/types/enums/elasticache/index.ts +++ b/sdk/nodejs/types/enums/elasticache/index.ts @@ -17,7 +17,7 @@ export const ServerlessCacheDataStorageUnit = { } as const; /** - * The unix of cached data capacity of the Serverless Cache. + * The unit of cached data capacity of the Serverless Cache. */ export type ServerlessCacheDataStorageUnit = (typeof ServerlessCacheDataStorageUnit)[keyof typeof ServerlessCacheDataStorageUnit]; diff --git a/sdk/nodejs/types/enums/entityresolution/index.ts b/sdk/nodejs/types/enums/entityresolution/index.ts index a4f2edf6fc..9915c084c3 100644 --- a/sdk/nodejs/types/enums/entityresolution/index.ts +++ b/sdk/nodejs/types/enums/entityresolution/index.ts @@ -8,6 +8,13 @@ export const IdMappingWorkflowIdMappingTechniquesIdMappingType = { export type IdMappingWorkflowIdMappingTechniquesIdMappingType = (typeof IdMappingWorkflowIdMappingTechniquesIdMappingType)[keyof typeof IdMappingWorkflowIdMappingTechniquesIdMappingType]; +export const IdMappingWorkflowInputSourceType = { + Source: "SOURCE", + Target: "TARGET", +} as const; + +export type IdMappingWorkflowInputSourceType = (typeof IdMappingWorkflowInputSourceType)[keyof typeof IdMappingWorkflowInputSourceType]; + export const MatchingWorkflowResolutionTechniquesResolutionType = { RuleMatching: "RULE_MATCHING", MlMatching: "ML_MATCHING", diff --git a/sdk/nodejs/types/enums/index.ts b/sdk/nodejs/types/enums/index.ts index 0307b068a0..1485569ae1 100644 --- a/sdk/nodejs/types/enums/index.ts +++ b/sdk/nodejs/types/enums/index.ts @@ -15,6 +15,7 @@ import * as auditmanager from "./auditmanager"; import * as b2bi from "./b2bi"; import * as backup from "./backup"; import * as batch from "./batch"; +import * as bedrock from "./bedrock"; import * as budgets from "./budgets"; import * as cassandra from "./cassandra"; import * as ce from "./ce"; @@ -22,9 +23,11 @@ import * as cleanrooms from "./cleanrooms"; import * as cloudformation from "./cloudformation"; import * as cloudfront from "./cloudfront"; import * as cloudtrail from "./cloudtrail"; +import * as codeartifact from "./codeartifact"; import * as codebuild from "./codebuild"; import * as codeguruprofiler from "./codeguruprofiler"; import * as codegurureviewer from "./codegurureviewer"; +import * as codestarconnections from "./codestarconnections"; import * as codestarnotifications from "./codestarnotifications"; import * as comprehend from "./comprehend"; import * as connect from "./connect"; @@ -130,6 +133,7 @@ import * as s3outposts from "./s3outposts"; import * as sagemaker from "./sagemaker"; import * as scheduler from "./scheduler"; import * as securityhub from "./securityhub"; +import * as securitylake from "./securitylake"; import * as servicecatalog from "./servicecatalog"; import * as servicecatalogappregistry from "./servicecatalogappregistry"; import * as shield from "./shield"; @@ -166,6 +170,7 @@ export { b2bi, backup, batch, + bedrock, budgets, cassandra, ce, @@ -173,9 +178,11 @@ export { cloudformation, cloudfront, cloudtrail, + codeartifact, codebuild, codeguruprofiler, codegurureviewer, + codestarconnections, codestarnotifications, comprehend, connect, @@ -281,6 +288,7 @@ export { sagemaker, scheduler, securityhub, + securitylake, servicecatalog, servicecatalogappregistry, shield, diff --git a/sdk/nodejs/types/enums/kafkaconnect/index.ts b/sdk/nodejs/types/enums/kafkaconnect/index.ts index 3562062ddb..fe4640cefd 100644 --- a/sdk/nodejs/types/enums/kafkaconnect/index.ts +++ b/sdk/nodejs/types/enums/kafkaconnect/index.ts @@ -21,3 +21,13 @@ export const ConnectorKafkaClusterEncryptionInTransitType = { * The type of encryption in transit to the Kafka cluster. */ export type ConnectorKafkaClusterEncryptionInTransitType = (typeof ConnectorKafkaClusterEncryptionInTransitType)[keyof typeof ConnectorKafkaClusterEncryptionInTransitType]; + +export const CustomPluginContentType = { + Jar: "JAR", + Zip: "ZIP", +} as const; + +/** + * The type of the plugin file. + */ +export type CustomPluginContentType = (typeof CustomPluginContentType)[keyof typeof CustomPluginContentType]; diff --git a/sdk/nodejs/types/enums/logs/index.ts b/sdk/nodejs/types/enums/logs/index.ts index ea3f6c68d1..4561ac905f 100644 --- a/sdk/nodejs/types/enums/logs/index.ts +++ b/sdk/nodejs/types/enums/logs/index.ts @@ -40,7 +40,11 @@ export const LogGroupClass = { } as const; /** - * The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class + * Specifies the log group class for this log group. There are two classes: + * + The ``Standard`` log class supports all CWL features. + * + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs. + * + * For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) */ export type LogGroupClass = (typeof LogGroupClass)[keyof typeof LogGroupClass]; @@ -75,7 +79,7 @@ export const MetricFilterMetricTransformationUnit = { } as const; /** - * The unit to assign to the metric. If you omit this, the unit is set as None. + * The unit to assign to the metric. If you omit this, the unit is set as ``None``. */ export type MetricFilterMetricTransformationUnit = (typeof MetricFilterMetricTransformationUnit)[keyof typeof MetricFilterMetricTransformationUnit]; @@ -85,6 +89,6 @@ export const SubscriptionFilterDistribution = { } as const; /** - * The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. + * The method used to distribute log data to the destination, which can be either random or grouped by log stream. */ export type SubscriptionFilterDistribution = (typeof SubscriptionFilterDistribution)[keyof typeof SubscriptionFilterDistribution]; diff --git a/sdk/nodejs/types/enums/securitylake/index.ts b/sdk/nodejs/types/enums/securitylake/index.ts new file mode 100644 index 0000000000..35b33c6991 --- /dev/null +++ b/sdk/nodejs/types/enums/securitylake/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 SubscriberAccessTypesItem = { + Lakeformation: "LAKEFORMATION", + S3: "S3", +} as const; + +export type SubscriberAccessTypesItem = (typeof SubscriberAccessTypesItem)[keyof typeof SubscriberAccessTypesItem]; diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 32ddd3ef4a..af540b082e 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -2624,6 +2624,18 @@ export namespace appflow { } export namespace appintegrations { + export interface ApplicationExternalUrlConfigArgs { + accessUrl: pulumi.Input; + approvedOrigins: pulumi.Input[]>; + } + + /** + * Application source config + */ + export interface ApplicationSourceConfigPropertiesArgs { + externalUrlConfig: pulumi.Input; + } + /** * The configuration for what files should be pulled from the source. */ @@ -3722,6 +3734,64 @@ export namespace appsync { } export namespace aps { + /** + * Scraper metrics destination + */ + export interface ScraperDestinationArgs { + /** + * Configuration for Amazon Managed Prometheus metrics destination + */ + ampConfiguration?: pulumi.Input; + } + + /** + * Configuration for Amazon Managed Prometheus metrics destination + */ + export interface ScraperDestinationAmpConfigurationPropertiesArgs { + /** + * ARN of an Amazon Managed Prometheus workspace + */ + workspaceArn: pulumi.Input; + } + + /** + * Scraper configuration + */ + export interface ScraperScrapeConfigurationArgs { + /** + * Prometheus compatible scrape configuration in base64 encoded blob format + */ + configurationBlob?: pulumi.Input; + } + + /** + * Scraper metrics source + */ + export interface ScraperSourceArgs { + /** + * Configuration for EKS metrics source + */ + eksConfiguration?: pulumi.Input; + } + + /** + * Configuration for EKS metrics source + */ + export interface ScraperSourceEksConfigurationPropertiesArgs { + /** + * ARN of an EKS cluster + */ + clusterArn: pulumi.Input; + /** + * List of security group IDs + */ + securityGroupIds?: pulumi.Input[]>; + /** + * List of subnet IDs + */ + subnetIds: pulumi.Input[]>; + } + /** * Logging configuration */ @@ -5249,6 +5319,148 @@ export namespace batch { } } +export namespace bedrock { + /** + * Contains the information of an Agent Action Group + */ + export interface AgentActionGroupArgs { + actionGroupExecutor?: pulumi.Input; + /** + * Name of the action group + */ + actionGroupName: pulumi.Input; + actionGroupState?: pulumi.Input; + apiSchema?: pulumi.Input; + /** + * Description of action group + */ + description?: pulumi.Input; + parentActionGroupSignature?: pulumi.Input; + /** + * Specifies whether to allow deleting action group while it is in use. + */ + skipResourceInUseCheckOnDelete?: pulumi.Input; + } + + export interface AgentActionGroupExecutorArgs { + /** + * ARN of a Lambda. + */ + lambda: pulumi.Input; + } + + /** + * Details about the routing configuration for an Agent alias. + */ + export interface AgentAliasRoutingConfigurationListItemArgs { + /** + * Agent Version. + */ + agentVersion: pulumi.Input; + } + + /** + * Contains information about the API Schema for the Action Group + */ + export interface AgentApiSchema0PropertiesArgs { + s3: pulumi.Input; + } + + /** + * Contains information about the API Schema for the Action Group + */ + export interface AgentApiSchema1PropertiesArgs { + /** + * String OpenAPI Payload + */ + payload: pulumi.Input; + } + + /** + * Configuration for inference in prompt configuration + */ + export interface AgentInferenceConfigurationArgs { + /** + * Maximum length of output + */ + maximumLength?: pulumi.Input; + /** + * List of stop sequences + */ + stopSequences?: pulumi.Input[]>; + /** + * Controls randomness, higher values increase diversity + */ + temperature?: pulumi.Input; + /** + * Sample from the k most likely next tokens + */ + topK?: pulumi.Input; + /** + * Cumulative probability cutoff for token selection + */ + topP?: pulumi.Input; + } + + /** + * Agent Knowledge Base + */ + export interface AgentKnowledgeBaseArgs { + /** + * Description of the Resource. + */ + description: pulumi.Input; + /** + * Identifier for a resource. + */ + knowledgeBaseId: pulumi.Input; + knowledgeBaseState?: pulumi.Input; + } + + /** + * BasePromptConfiguration per Prompt Type. + */ + export interface AgentPromptConfigurationArgs { + /** + * Base Prompt Template. + */ + basePromptTemplate?: pulumi.Input; + inferenceConfiguration?: pulumi.Input; + parserMode?: pulumi.Input; + promptCreationMode?: pulumi.Input; + promptState?: pulumi.Input; + promptType?: pulumi.Input; + } + + /** + * Configuration for prompt override. + */ + export interface AgentPromptOverrideConfigurationArgs { + /** + * ARN of a Lambda. + */ + overrideLambda?: pulumi.Input; + /** + * List of BasePromptConfiguration + */ + promptConfigurations: pulumi.Input[]>; + } + + /** + * The identifier for the S3 resource. + */ + export interface AgentS3IdentifierArgs { + /** + * A bucket in S3. + */ + s3BucketName?: pulumi.Input; + /** + * A object key in S3. + */ + s3ObjectKey?: pulumi.Input; + } +} + export namespace budgets { export interface BudgetsActionActionThresholdArgs { type: pulumi.Input; @@ -5471,6 +5683,7 @@ export namespace cleanrooms { export interface ConfiguredTableAnalysisRuleCustomArgs { allowedAnalyses: pulumi.Input[]>; allowedAnalysisProviders?: pulumi.Input[]>; + differentialPrivacy?: pulumi.Input; } export interface ConfiguredTableAnalysisRuleListArgs { @@ -5495,6 +5708,14 @@ export namespace cleanrooms { custom: pulumi.Input; } + export interface ConfiguredTableDifferentialPrivacyArgs { + columns: pulumi.Input[]>; + } + + export interface ConfiguredTableDifferentialPrivacyColumnArgs { + name: pulumi.Input; + } + export interface ConfiguredTableGlueTableReferenceArgs { databaseName: pulumi.Input; tableName: pulumi.Input; @@ -5724,7 +5945,9 @@ export namespace cloudfront { * You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to serve objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin is never used. * For the current quota (formerly known as limit) on the number of cache behaviors that you can add to a distribution, see [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) in the *Amazon CloudFront Developer Guide*. * If you don't want to specify any cache behaviors, include only an empty ``CacheBehaviors`` element. Don't include an empty ``CacheBehavior`` element because this is invalid. - * To delete all cache behaviors in an exist + * To delete all cache behaviors in an existing distribution, update the distribution configuration and include only an empty ``CacheBehaviors`` element. + * To add, change, or remove one or more cache behaviors, update the distribution configuration and specify all of the cache behaviors that you want to include in the updated distribution. + * For more information about cache behaviors, see [Cache Behavior Settings](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesCacheBehavior) in the *Amazon CloudFront Developer Guide*. */ export interface DistributionCacheBehaviorArgs { /** @@ -5755,7 +5978,7 @@ export namespace cloudfront { compress?: pulumi.Input; /** * This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - * The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide + * The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. */ defaultTtl?: pulumi.Input; /** @@ -5765,7 +5988,9 @@ export namespace cloudfront { /** * This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. * If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - * If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r + * If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. + * A ``CacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. + * A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. */ forwardedValues?: pulumi.Input; /** @@ -5778,13 +6003,13 @@ export namespace cloudfront { lambdaFunctionAssociations?: pulumi.Input[]>; /** * This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - * The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. + * The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. */ maxTtl?: pulumi.Input; /** * This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. * The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. - * You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He + * You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). */ minTtl?: pulumi.Input; /** @@ -5832,7 +6057,7 @@ export namespace cloudfront { * + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). * * For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. - * The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol + * The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. */ viewerProtocolPolicy: pulumi.Input; } @@ -5877,7 +6102,7 @@ export namespace cloudfront { * If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element. * To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element. * To replace the default root object, update the distribution configuration and specify the new object. - * For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/D + * For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*. */ defaultRootObject?: pulumi.Input; /** @@ -5892,7 +6117,13 @@ export namespace cloudfront { httpVersion?: pulumi.Input; /** * If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify ``true``. If you specify ``false``, CloudFront responds to IPv6 DNS requests with the DNS response code ``NOERROR`` and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution. - * In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/Devel + * In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html) in the *Amazon CloudFront Developer Guide*. + * If you're using an R53AWSIntlong alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true: + * + You enable IPv6 for the distribution + * + You're using alternate domain names in the URLs for your objects + * + * For more information, see [Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html) in the *Developer Guide*. + * If you created a CNAME resource record set, either with R53AWSIntlong or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request. */ ipv6Enabled?: pulumi.Input; /** @@ -5929,7 +6160,7 @@ export namespace cloudfront { viewerCertificate?: pulumi.Input; /** * A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example ``arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a``. To specify a web ACL created using WAF Classic, use the ACL ID, for example ``473e64fd-f30b-4765-81a0-62ad96dd167a``. - * WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest + * WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html). */ webAclId?: pulumi.Input; } @@ -5938,7 +6169,7 @@ export namespace cloudfront { * This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. * If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. * If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - * A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C + * A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*. */ export interface DistributionCookiesArgs { /** @@ -5946,14 +6177,16 @@ export namespace cloudfront { * If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. * If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. * Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the ``WhitelistedNames`` complex type. - * Amazon S3 doesn't process cookies. When the cache behavior is forw + * Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify none for the ``Forward`` element. */ forward: pulumi.Input; /** * This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. * If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. * If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - * Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward se + * Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward selected cookies, the names of those cookies. + * If you specify ``all`` or ``none`` for the value of ``Forward``, omit ``WhitelistedNames``. If you change the value of ``Forward`` from ``whitelist`` to ``all`` or ``none`` and you don't delete the ``WhitelistedNames`` element and its child elements, CloudFront deletes them automatically. + * For the current limit on the number of cookie names that you can whitelist for each cache behavior, see [CloudFront Limits](https://docs.aws.amazon.com/general/latest/gr/xrefaws_service_limits.html#limits_cloudfront) in the *General Reference*. */ whitelistedNames?: pulumi.Input[]>; } @@ -5990,7 +6223,7 @@ export namespace cloudfront { * + The value of ``TargetOriginId`` specifies the value of the ``ID`` element for the origin that contains your custom error pages. * * If you specify a value for ``ResponsePagePath``, you must also specify a value for ``ResponseCode``. - * We recommend + * We recommend that you store custom error pages in an Amazon S3 bucket. If you store custom error pages on an HTTP server and the server starts to return 5xx errors, CloudFront can't get the files that you want to return to viewers because the origin server is unavailable. */ responsePagePath?: pulumi.Input; } @@ -6063,7 +6296,7 @@ export namespace cloudfront { compress?: pulumi.Input; /** * This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - * The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide + * The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. */ defaultTtl?: pulumi.Input; /** @@ -6073,7 +6306,9 @@ export namespace cloudfront { /** * This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. * If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - * If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r + * If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. + * A ``DefaultCacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. + * A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. */ forwardedValues?: pulumi.Input; /** @@ -6086,13 +6321,13 @@ export namespace cloudfront { lambdaFunctionAssociations?: pulumi.Input[]>; /** * This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - * The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. + * The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. */ maxTtl?: pulumi.Input; /** * This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. * The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. - * You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He + * You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). */ minTtl?: pulumi.Input; /** @@ -6133,7 +6368,7 @@ export namespace cloudfront { * + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). * * For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. - * The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol + * The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. */ viewerProtocolPolicy: pulumi.Input; } @@ -6149,21 +6384,26 @@ export namespace cloudfront { * This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. * If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. * If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - * A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C + * A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*. */ cookies?: pulumi.Input; /** * This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. * If you want to include headers in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. * If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - * A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versio + * A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versions of a specified object that is based on the header values in viewer requests. + * For more information, see [Caching Content Based on Request Headers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html) in the *Amazon CloudFront Developer Guide*. */ headers?: pulumi.Input[]>; /** * This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. * If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. * If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - * Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of + * Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of ``QueryString`` and on the values that you specify for ``QueryStringCacheKeys``, if any: + * If you specify true for ``QueryString`` and you don't specify any values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin and caches based on all query string parameters. Depending on how many query string parameters and values you have, this can adversely affect performance because CloudFront must forward more requests to the origin. + * If you specify true for ``QueryString`` and you specify one or more values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin, but it only caches based on the query string parameters that you specify. + * If you specify false for ``QueryString``, CloudFront doesn't forward any query string parameters to the origin, and doesn't cache based on query string parameters. + * For more information, see [Configuring CloudFront to Cache Based on Query String Parameters](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html) in the *Amazon CloudFront Developer Guide*. */ queryString: pulumi.Input; /** @@ -6447,7 +6687,7 @@ export namespace cloudfront { * If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element. * To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element. * To replace the origin access identity, update the distribution configuration and specify the new origin access identity. - * For more information about the origin access identity, see [Serving Private Content through CloudFront](https://d + * For more information about the origin access identity, see [Serving Private Content through CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*. */ originAccessIdentity?: pulumi.Input; } @@ -6471,7 +6711,17 @@ export namespace cloudfront { * If the distribution doesn't use ``Aliases`` (also known as alternate domain names or CNAMEs)—that is, if the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``—set ``CloudFrontDefaultCertificate`` to ``true`` and leave all other fields empty. * If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), use the fields in this type to specify the following settings: * + Which viewers the distribution accepts HTTPS connections from: only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication) (recommended), or all viewers including those that don't support SNI. - * + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field n + * + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + * + To accept HTTPS connections from all viewers, including those that don't support SNI, set ``SSLSupportMethod`` to ``vip``. This is not recommended, and results in additional monthly charges from CloudFront. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + * + * + The minimum SSL/TLS protocol version that the distribution can use to communicate with viewers. To specify a minimum version, choose a value for ``MinimumProtocolVersion``. For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) in the *Amazon CloudFront Developer Guide*. + * + The location of the SSL/TLS certificate, [(ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) (recommended) or [(IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html). You specify the location by setting a value in one of the following fields (not both): + * + ``ACMCertificateArn`` (In CloudFormation, this field name is ``AcmCertificateArn``. Note the different capitalization.) + * + ``IAMCertificateId`` (In CloudFormation, this field name is ``IamCertificateId``. Note the different capitalization.) + * + * + * All distributions support HTTPS connections from viewers. To require viewers to use HTTPS only, or to redirect them from HTTP to HTTPS, use ``ViewerProtocolPolicy`` in the ``CacheBehavior`` or ``DefaultCacheBehavior``. To specify how CloudFront should use SSL/TLS to communicate with your custom origin, use ``CustomOriginConfig``. + * For more information, see [Using HTTPS with CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html) and [Using Alternate Domain Names and HTTPS](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-alternate-domain-names.html) in the *Amazon CloudFront Developer Guide*. */ export interface DistributionViewerCertificateArgs { /** @@ -6501,7 +6751,8 @@ export namespace cloudfront { * * For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*. * On the CloudFront console, this setting is called *Security Policy*. - * When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-onl + * When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-only``), you must specify ``TLSv1`` or higher. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + * If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` (you set ``CloudFrontDefaultCertificate`` to ``true``), CloudFront automatically sets the security policy to ``TLSv1`` regardless of the value that you set here. */ minimumProtocolVersion?: pulumi.Input; /** @@ -6510,6 +6761,8 @@ export namespace cloudfront { * + ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication). This is recommended. Most browsers and clients support SNI. * + ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront. * + ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [Center](https://docs.aws.amazon.com/support/home). + * + * If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``, don't set a value for this field. */ sslSupportMethod?: pulumi.Input; } @@ -6997,11 +7250,41 @@ export namespace cloudwatch { } export namespace codeartifact { + export interface PackageGroupOriginConfigurationArgs { + /** + * The origin configuration that is applied to the package group. + */ + restrictions: pulumi.Input; + } + + export interface PackageGroupRestrictionTypeArgs { + repositories?: pulumi.Input[]>; + restrictionMode: pulumi.Input; + } + + export interface PackageGroupRestrictionsArgs { + /** + * The external upstream restriction determines if new package versions can be ingested or retained from external connections. + */ + externalUpstream?: pulumi.Input; + /** + * The internal upstream restriction determines if new package versions can be ingested or retained from upstream repositories. + */ + internalUpstream?: pulumi.Input; + /** + * The publish restriction determines if new package versions can be published. + */ + publish?: pulumi.Input; + } + } export namespace codebuild { } +export namespace codeconnections { +} + export namespace codedeploy { export interface DeploymentConfigMinimumHealthyHostsArgs { type: pulumi.Input; @@ -8179,6 +8462,20 @@ export namespace connect { fields: pulumi.Input[]>; } + /** + * A third-party application's metadata. + */ + export interface SecurityProfileApplicationArgs { + /** + * The permissions that the agent is granted on the application + */ + applicationPermissions: pulumi.Input[]>; + /** + * Namespace of the application that you want to give access to. + */ + namespace: pulumi.Input; + } + /** * A key-value pair to associate with a resource. */ @@ -10284,6 +10581,8 @@ export namespace dynamodb { pointInTimeRecoverySpecification?: pulumi.Input; readProvisionedThroughputSettings?: pulumi.Input; region: pulumi.Input; + replicaStreamSpecification?: pulumi.Input; + resourcePolicy?: pulumi.Input; sseSpecification?: pulumi.Input; tableClass?: pulumi.Input; tags?: pulumi.Input[]>; @@ -10293,6 +10592,14 @@ export namespace dynamodb { kmsMasterKeyId: pulumi.Input; } + export interface GlobalTableReplicaStreamSpecificationArgs { + resourcePolicy: pulumi.Input; + } + + export interface GlobalTableResourcePolicyArgs { + policyDocument: any; + } + export interface GlobalTableSseSpecificationArgs { sseEnabled: pulumi.Input; sseType?: pulumi.Input; @@ -10533,6 +10840,10 @@ export namespace dynamodb { writeCapacityUnits: pulumi.Input; } + export interface TableResourcePolicyArgs { + policyDocument: any; + } + /** * The S3 bucket that is being imported from. */ @@ -10574,6 +10885,7 @@ export namespace dynamodb { * Represents the DynamoDB Streams configuration for a table in DynamoDB. */ export interface TableStreamSpecificationArgs { + resourcePolicy?: pulumi.Input; /** * When an item in the table is modified, ``StreamViewType`` determines what information is written to the stream for this table. Valid values for ``StreamViewType`` are: * + ``KEYS_ONLY`` - Only the key attributes of the modified item are written to the stream. @@ -11316,7 +11628,9 @@ export namespace ec2 { * + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. * + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. * - * If you specify ``InstanceReq + * If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. + * Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. + * For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. */ instanceRequirements?: pulumi.Input; /** @@ -11435,13 +11749,14 @@ export namespace ec2 { */ volumeSize?: pulumi.Input; /** - * The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*. + * The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon EBS User Guide*. */ volumeType?: pulumi.Input; } /** - * Specifies a specification for an Elastic GPU for an Amazon EC2 launch template. + * Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. + * Specifies a specification for an Elastic GPU for an Amazon EC2 launch template. * ``ElasticGpuSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html). */ export interface LaunchTemplateElasticGpuSpecificationArgs { @@ -11516,7 +11831,7 @@ export namespace ec2 { /** * Specifies an IAM instance profile, which is a container for an IAM role for your instance. You can use an IAM role to distribute your AWS credentials to your instances. - * If you are creating the launch template for use with an Amazon EC2 Auto Scaling group, you can specify either the name or the ARN of the instance profile, but not both. + * If you are creating the launch template for use with an ASlong group, you can specify either the name or the ARN of the instance profile, but not both. * ``IamInstanceProfile`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html). */ export interface LaunchTemplateIamInstanceProfileArgs { @@ -11553,7 +11868,9 @@ export namespace ec2 { * + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. * + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. * - * If you specify ``InstanceReq + * If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. + * Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. + * For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. */ export interface LaunchTemplateInstanceRequirementsArgs { /** @@ -11681,8 +11998,8 @@ export namespace ec2 { /** * [Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold. * The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - * To indicate no price protection threshold, specify a high value, such as ``999999``. - * If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instanc + * If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price. + * Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. */ maxSpotPriceAsPercentageOfOptimalOnDemandPrice?: pulumi.Input; /** @@ -11709,7 +12026,8 @@ export namespace ec2 { * The parameter accepts an integer, which Amazon EC2 interprets as a percentage. * To turn off price protection, specify a high value, such as ``999999``. * This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). - * If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per- + * If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. + * Default: ``20`` */ onDemandMaxPricePercentageOverLowestPrice?: pulumi.Input; /** @@ -11721,8 +12039,10 @@ export namespace ec2 { /** * [Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold. * The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - * To indicate no price protection threshold, specify a high value, such as ``999999``. - * If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price i + * If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. + * This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). + * Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. + * Default: ``100`` */ spotMaxPricePercentageOverLowestPrice?: pulumi.Input; /** @@ -11788,7 +12108,6 @@ export namespace ec2 { * Disables the automatic recovery behavior of your instance or sets it to default. */ autoRecovery?: pulumi.Input; - rebootMigration?: pulumi.Input; } /** @@ -12090,7 +12409,7 @@ export namespace ec2 { maxPrice?: pulumi.Input; /** * The Spot Instance request type. - * If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is below its desired capacity. + * If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the ASlong service handles requesting new Spot Instances whenever the group is below its desired capacity. */ spotInstanceType?: pulumi.Input; /** @@ -12260,9 +12579,9 @@ export namespace ec2 { /** * The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. * Available options: - * + EnableResourceNameDnsAAAARecord (true | false) - * + EnableResourceNameDnsARecord (true | false) - * + HostnameType (ip-name | resource-name) + * + EnableResourceNameDnsAAAARecord (true | false) + * + EnableResourceNameDnsARecord (true | false) + * + HostnameType (ip-name | resource-name) */ export interface PrivateDnsNameOptionsOnLaunchPropertiesArgs { enableResourceNameDnsARecord?: pulumi.Input; @@ -14505,7 +14824,7 @@ export namespace efs { * + *ENABLED* - Turns automatic backups on for the file system. * + *DISABLED* - Turns automatic backups off for the file system. */ - status: pulumi.Input; + status: pulumi.Input; } /** @@ -14922,9 +15241,13 @@ export namespace elasticache { /** * The maximum cached data capacity of the Serverless Cache. */ - maximum: pulumi.Input; + maximum?: pulumi.Input; /** - * The unix of cached data capacity of the Serverless Cache. + * The minimum cached data capacity of the Serverless Cache. + */ + minimum?: pulumi.Input; + /** + * The unit of cached data capacity of the Serverless Cache. */ unit: pulumi.Input; } @@ -14936,7 +15259,11 @@ export namespace elasticache { /** * The maximum ECPU per second of the Serverless Cache. */ - maximum: pulumi.Input; + maximum?: pulumi.Input; + /** + * The minimum ECPU per second of the Serverless Cache. + */ + minimum?: pulumi.Input; } /** @@ -16034,10 +16361,11 @@ export namespace entityresolution { export interface IdMappingWorkflowInputSourceArgs { /** - * An Glue table ARN for the input source table + * An Glue table ARN for the input source table or IdNamespace ARN */ inputSourceArn: pulumi.Input; - schemaArn: pulumi.Input; + schemaArn?: pulumi.Input; + type?: pulumi.Input; } export interface IdMappingWorkflowIntermediateSourceConfigurationArgs { @@ -17214,7 +17542,7 @@ export namespace gamelift { } /** - * Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting + * Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. */ export interface GameServerGroupAutoScalingPolicyArgs { estimatedInstanceWarmup?: pulumi.Input; @@ -17230,7 +17558,7 @@ export namespace gamelift { } /** - * The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. + * The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. */ export interface GameServerGroupLaunchTemplateArgs { launchTemplateId?: pulumi.Input; @@ -21025,6 +21353,20 @@ export namespace iotsitewise { * A gateway that runs on AWS IoT Greengrass V2. */ greengrassV2?: pulumi.Input; + /** + * A gateway that runs on Siemens Industrial Edge. + */ + siemensIe?: pulumi.Input; + } + + /** + * Contains the IotCoreThingName of AWS IoT Thing that the gateway runs on. + */ + export interface GatewaySiemensIeArgs { + /** + * The name of the IoT Core Thing. + */ + iotCoreThingName: pulumi.Input; } } @@ -21925,6 +22267,32 @@ export namespace kafkaconnect { firehose?: pulumi.Input; s3?: pulumi.Input; } + + /** + * Information about the location of a custom plugin. + */ + export interface CustomPluginLocationArgs { + s3Location: pulumi.Input; + } + + /** + * The S3 bucket Amazon Resource Name (ARN), file key, and object version of the plugin file stored in Amazon S3. + */ + export interface CustomPluginS3LocationArgs { + /** + * The Amazon Resource Name (ARN) of an S3 bucket. + */ + bucketArn: pulumi.Input; + /** + * The file key for an object in an S3 bucket. + */ + fileKey: pulumi.Input; + /** + * The version of an object in an S3 bucket. + */ + objectVersion?: pulumi.Input; + } + } export namespace kendra { @@ -25756,42 +26124,54 @@ export namespace logs { } /** - * the key-value pairs that further define a metric. + * Specifies the CW metric dimensions to publish with this metric. + * Because dimensions are part of the unique identifier for a metric, whenever a unique dimension name/value pair is extracted from your logs, you are creating a new variation of that metric. + * For more information about publishing dimensions with metrics created by metric filters, see [Publishing dimensions with metrics from values in JSON or space-delimited log events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html#logs-metric-filters-dimensions). + * Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. + * To help prevent accidental high charges, Amazon disables a metric filter if it generates 1000 different name/value pairs for the dimensions that you have specified within a certain amount of time. + * You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). */ export interface MetricFilterDimensionArgs { /** - * The key of the dimension. Maximum length of 255. + * The name for the CW metric dimension that the metric filter creates. + * Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon (:). */ key: pulumi.Input; /** - * The value of the dimension. Maximum length of 255. + * The log event field that will contain the value for this dimension. This dimension will only be published for a metric if the value is found in the log event. For example, ``$.eventType`` for JSON log events, or ``$server`` for space-delimited log events. */ value: pulumi.Input; } + /** + * ``MetricTransformation`` is a property of the ``AWS::Logs::MetricFilter`` resource that describes how to transform log streams into a CloudWatch metric. + */ export interface MetricFilterMetricTransformationArgs { /** - * The value to emit when a filter pattern does not match a log event. This value can be null. + * (Optional) The value to emit when a filter pattern does not match a log event. This value can be null. */ defaultValue?: pulumi.Input; /** - * Dimensions are the key-value pairs that further define a metric + * The fields to use as dimensions for the metric. One metric filter can include as many as three dimensions. + * Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. + * CloudWatch Logs disables a metric filter if it generates 1000 different name/value pairs for your specified dimensions within a certain amount of time. This helps to prevent accidental high charges. + * You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). */ dimensions?: pulumi.Input[]>; /** - * The name of the CloudWatch metric. Metric name must be in ASCII format. + * The name of the CloudWatch metric. */ metricName: pulumi.Input; /** - * The namespace of the CloudWatch metric. + * A custom namespace to contain your metric in CloudWatch. Use namespaces to group together metrics that are similar. For more information, see [Namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace). */ metricNamespace: pulumi.Input; /** - * The value to publish to the CloudWatch metric when a filter pattern matches a log event. + * The value that is published to the CloudWatch metric. For example, if you're counting the occurrences of a particular term like ``Error``, specify 1 for the metric value. If you're counting the number of bytes transferred, reference the value that is in the log event by using $. followed by the name of the field that you specified in the filter pattern, such as ``$.size``. */ metricValue: pulumi.Input; /** - * The unit to assign to the metric. If you omit this, the unit is set as None. + * The unit to assign to the metric. If you omit this, the unit is set as ``None``. */ unit?: pulumi.Input; } @@ -41085,6 +41465,13 @@ export namespace resiliencehub { */ rtoInSecs: pulumi.Input; } + + export interface ResiliencyPolicyPolicyMapArgs { + az: pulumi.Input; + hardware: pulumi.Input; + region?: pulumi.Input; + software: pulumi.Input; + } } export namespace resourceexplorer2 { @@ -46872,6 +47259,106 @@ export namespace securityhub { } } +export namespace securitylake { + /** + * Provides encryption details of Amazon Security Lake object. + */ + export interface DataLakeEncryptionConfigurationArgs { + /** + * The id of KMS encryption key used by Amazon Security Lake to encrypt the Security Lake object. + */ + kmsKeyId?: pulumi.Input; + } + + /** + * Provides data expiration details of Amazon Security Lake object. + */ + export interface DataLakeExpirationArgs { + days?: pulumi.Input; + } + + /** + * Provides lifecycle details of Amazon Security Lake object. + */ + export interface DataLakeLifecycleConfigurationArgs { + expiration?: pulumi.Input; + /** + * Provides data storage transition details of Amazon Security Lake object. + */ + transitions?: pulumi.Input[]>; + } + + /** + * Provides replication details of Amazon Security Lake object. + */ + export interface DataLakeReplicationConfigurationArgs { + regions?: pulumi.Input[]>; + /** + * Replication settings for the Amazon S3 buckets. This parameter uses the AWS Identity and Access Management (IAM) role you created that is managed by Security Lake, to ensure the replication setting is correct. + */ + roleArn?: pulumi.Input; + } + + export interface DataLakeTransitionsArgs { + /** + * Number of days before data transitions to a different S3 Storage Class in the Amazon Security Lake object. + */ + days?: pulumi.Input; + /** + * The range of storage classes that you can choose from based on the data access, resiliency, and cost requirements of your workloads. + */ + storageClass?: pulumi.Input; + } + + /** + * Amazon Security Lake supports log and event collection for natively supported AWS services. + */ + export interface SubscriberAwsLogSourceArgs { + /** + * The name for a AWS source. This must be a Regionally unique value. + */ + sourceName?: pulumi.Input; + /** + * The version for a AWS source. This must be a Regionally unique value. + */ + sourceVersion?: pulumi.Input; + } + + export interface SubscriberCustomLogSourceArgs { + /** + * The name for a third-party custom source. This must be a Regionally unique value. + */ + sourceName?: pulumi.Input; + /** + * The version for a third-party custom source. This must be a Regionally unique value. + */ + sourceVersion?: pulumi.Input; + } + + /** + * The AWS identity used to access your data. + */ + export interface SubscriberIdentityPropertiesArgs { + /** + * The external ID used to establish trust relationship with the AWS identity. + */ + externalId: pulumi.Input; + /** + * The AWS identity principal. + */ + principal: pulumi.Input; + } + + export interface SubscriberSource0PropertiesArgs { + awsLogSource: pulumi.Input; + } + + export interface SubscriberSource1PropertiesArgs { + customLogSource: pulumi.Input; + } + +} + export namespace servicecatalog { export interface CloudFormationProvisionedProductProvisioningParameterArgs { key: pulumi.Input; diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 62cc7a7557..8d6a5129fb 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -2543,6 +2543,18 @@ export namespace appflow { } export namespace appintegrations { + export interface ApplicationExternalUrlConfig { + accessUrl: string; + approvedOrigins: string[]; + } + + /** + * Application source config + */ + export interface ApplicationSourceConfigProperties { + externalUrlConfig: outputs.appintegrations.ApplicationExternalUrlConfig; + } + /** * The configuration for what files should be pulled from the source. */ @@ -3645,6 +3657,64 @@ export namespace appsync { } export namespace aps { + /** + * Scraper metrics destination + */ + export interface ScraperDestination { + /** + * Configuration for Amazon Managed Prometheus metrics destination + */ + ampConfiguration?: outputs.aps.ScraperDestinationAmpConfigurationProperties; + } + + /** + * Configuration for Amazon Managed Prometheus metrics destination + */ + export interface ScraperDestinationAmpConfigurationProperties { + /** + * ARN of an Amazon Managed Prometheus workspace + */ + workspaceArn: string; + } + + /** + * Scraper configuration + */ + export interface ScraperScrapeConfiguration { + /** + * Prometheus compatible scrape configuration in base64 encoded blob format + */ + configurationBlob?: string; + } + + /** + * Scraper metrics source + */ + export interface ScraperSource { + /** + * Configuration for EKS metrics source + */ + eksConfiguration?: outputs.aps.ScraperSourceEksConfigurationProperties; + } + + /** + * Configuration for EKS metrics source + */ + export interface ScraperSourceEksConfigurationProperties { + /** + * ARN of an EKS cluster + */ + clusterArn: string; + /** + * List of security group IDs + */ + securityGroupIds?: string[]; + /** + * List of subnet IDs + */ + subnetIds: string[]; + } + /** * Logging configuration */ @@ -5177,6 +5247,167 @@ export namespace batch { } +export namespace bedrock { + /** + * Contains the information of an Agent Action Group + */ + export interface AgentActionGroup { + actionGroupExecutor?: outputs.bedrock.AgentActionGroupExecutor; + /** + * Name of the action group + */ + actionGroupName: string; + actionGroupState?: enums.bedrock.AgentActionGroupState; + apiSchema?: outputs.bedrock.AgentApiSchema0Properties | outputs.bedrock.AgentApiSchema1Properties; + /** + * Description of action group + */ + description?: string; + parentActionGroupSignature?: enums.bedrock.AgentActionGroupSignature; + /** + * Specifies whether to allow deleting action group while it is in use. + */ + skipResourceInUseCheckOnDelete?: boolean; + } + + export interface AgentActionGroupExecutor { + /** + * ARN of a Lambda. + */ + lambda: string; + } + + /** + * History event for an alias for an Agent. + */ + export interface AgentAliasHistoryEvent { + /** + * Time Stamp. + */ + endDate?: string; + /** + * Routing configuration for an Agent alias. + */ + routingConfiguration?: outputs.bedrock.AgentAliasRoutingConfigurationListItem[]; + /** + * Time Stamp. + */ + startDate?: string; + } + + /** + * Details about the routing configuration for an Agent alias. + */ + export interface AgentAliasRoutingConfigurationListItem { + /** + * Agent Version. + */ + agentVersion: string; + } + + /** + * Contains information about the API Schema for the Action Group + */ + export interface AgentApiSchema0Properties { + s3: outputs.bedrock.AgentS3Identifier; + } + + /** + * Contains information about the API Schema for the Action Group + */ + export interface AgentApiSchema1Properties { + /** + * String OpenAPI Payload + */ + payload: string; + } + + /** + * Configuration for inference in prompt configuration + */ + export interface AgentInferenceConfiguration { + /** + * Maximum length of output + */ + maximumLength?: number; + /** + * List of stop sequences + */ + stopSequences?: string[]; + /** + * Controls randomness, higher values increase diversity + */ + temperature?: number; + /** + * Sample from the k most likely next tokens + */ + topK?: number; + /** + * Cumulative probability cutoff for token selection + */ + topP?: number; + } + + /** + * Agent Knowledge Base + */ + export interface AgentKnowledgeBase { + /** + * Description of the Resource. + */ + description: string; + /** + * Identifier for a resource. + */ + knowledgeBaseId: string; + knowledgeBaseState?: enums.bedrock.AgentKnowledgeBaseState; + } + + /** + * BasePromptConfiguration per Prompt Type. + */ + export interface AgentPromptConfiguration { + /** + * Base Prompt Template. + */ + basePromptTemplate?: string; + inferenceConfiguration?: outputs.bedrock.AgentInferenceConfiguration; + parserMode?: enums.bedrock.AgentCreationMode; + promptCreationMode?: enums.bedrock.AgentCreationMode; + promptState?: enums.bedrock.AgentPromptState; + promptType?: enums.bedrock.AgentPromptType; + } + + /** + * Configuration for prompt override. + */ + export interface AgentPromptOverrideConfiguration { + /** + * ARN of a Lambda. + */ + overrideLambda?: string; + /** + * List of BasePromptConfiguration + */ + promptConfigurations: outputs.bedrock.AgentPromptConfiguration[]; + } + + /** + * The identifier for the S3 resource. + */ + export interface AgentS3Identifier { + /** + * A bucket in S3. + */ + s3BucketName?: string; + /** + * A object key in S3. + */ + s3ObjectKey?: string; + } + +} + export namespace budgets { export interface BudgetsActionActionThreshold { type: enums.budgets.BudgetsActionActionThresholdType; @@ -5407,6 +5638,7 @@ export namespace cleanrooms { export interface ConfiguredTableAnalysisRuleCustom { allowedAnalyses: string[]; allowedAnalysisProviders?: string[]; + differentialPrivacy?: outputs.cleanrooms.ConfiguredTableDifferentialPrivacy; } export interface ConfiguredTableAnalysisRuleList { @@ -5431,6 +5663,14 @@ export namespace cleanrooms { custom: outputs.cleanrooms.ConfiguredTableAnalysisRuleCustom; } + export interface ConfiguredTableDifferentialPrivacy { + columns: outputs.cleanrooms.ConfiguredTableDifferentialPrivacyColumn[]; + } + + export interface ConfiguredTableDifferentialPrivacyColumn { + name: string; + } + export interface ConfiguredTableGlueTableReference { databaseName: string; tableName: string; @@ -5668,7 +5908,9 @@ export namespace cloudfront { * You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to serve objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin is never used. * For the current quota (formerly known as limit) on the number of cache behaviors that you can add to a distribution, see [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) in the *Amazon CloudFront Developer Guide*. * If you don't want to specify any cache behaviors, include only an empty ``CacheBehaviors`` element. Don't include an empty ``CacheBehavior`` element because this is invalid. - * To delete all cache behaviors in an exist + * To delete all cache behaviors in an existing distribution, update the distribution configuration and include only an empty ``CacheBehaviors`` element. + * To add, change, or remove one or more cache behaviors, update the distribution configuration and specify all of the cache behaviors that you want to include in the updated distribution. + * For more information about cache behaviors, see [Cache Behavior Settings](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesCacheBehavior) in the *Amazon CloudFront Developer Guide*. */ export interface DistributionCacheBehavior { /** @@ -5699,7 +5941,7 @@ export namespace cloudfront { compress?: boolean; /** * This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - * The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide + * The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. */ defaultTtl?: number; /** @@ -5709,7 +5951,9 @@ export namespace cloudfront { /** * This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. * If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - * If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r + * If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. + * A ``CacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. + * A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. */ forwardedValues?: outputs.cloudfront.DistributionForwardedValues; /** @@ -5722,13 +5966,13 @@ export namespace cloudfront { lambdaFunctionAssociations?: outputs.cloudfront.DistributionLambdaFunctionAssociation[]; /** * This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - * The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. + * The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. */ maxTtl?: number; /** * This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. * The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. - * You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He + * You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). */ minTtl?: number; /** @@ -5776,7 +6020,7 @@ export namespace cloudfront { * + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). * * For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. - * The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol + * The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. */ viewerProtocolPolicy: string; } @@ -5821,7 +6065,7 @@ export namespace cloudfront { * If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element. * To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element. * To replace the default root object, update the distribution configuration and specify the new object. - * For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/D + * For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*. */ defaultRootObject?: string; /** @@ -5836,7 +6080,13 @@ export namespace cloudfront { httpVersion?: string; /** * If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify ``true``. If you specify ``false``, CloudFront responds to IPv6 DNS requests with the DNS response code ``NOERROR`` and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution. - * In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/Devel + * In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html) in the *Amazon CloudFront Developer Guide*. + * If you're using an R53AWSIntlong alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true: + * + You enable IPv6 for the distribution + * + You're using alternate domain names in the URLs for your objects + * + * For more information, see [Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html) in the *Developer Guide*. + * If you created a CNAME resource record set, either with R53AWSIntlong or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request. */ ipv6Enabled?: boolean; /** @@ -5873,7 +6123,7 @@ export namespace cloudfront { viewerCertificate?: outputs.cloudfront.DistributionViewerCertificate; /** * A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example ``arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a``. To specify a web ACL created using WAF Classic, use the ACL ID, for example ``473e64fd-f30b-4765-81a0-62ad96dd167a``. - * WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest + * WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html). */ webAclId?: string; } @@ -5882,7 +6132,7 @@ export namespace cloudfront { * This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. * If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. * If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - * A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C + * A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*. */ export interface DistributionCookies { /** @@ -5890,14 +6140,16 @@ export namespace cloudfront { * If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. * If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. * Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the ``WhitelistedNames`` complex type. - * Amazon S3 doesn't process cookies. When the cache behavior is forw + * Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify none for the ``Forward`` element. */ forward: string; /** * This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. * If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. * If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - * Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward se + * Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward selected cookies, the names of those cookies. + * If you specify ``all`` or ``none`` for the value of ``Forward``, omit ``WhitelistedNames``. If you change the value of ``Forward`` from ``whitelist`` to ``all`` or ``none`` and you don't delete the ``WhitelistedNames`` element and its child elements, CloudFront deletes them automatically. + * For the current limit on the number of cookie names that you can whitelist for each cache behavior, see [CloudFront Limits](https://docs.aws.amazon.com/general/latest/gr/xrefaws_service_limits.html#limits_cloudfront) in the *General Reference*. */ whitelistedNames?: string[]; } @@ -5934,7 +6186,7 @@ export namespace cloudfront { * + The value of ``TargetOriginId`` specifies the value of the ``ID`` element for the origin that contains your custom error pages. * * If you specify a value for ``ResponsePagePath``, you must also specify a value for ``ResponseCode``. - * We recommend + * We recommend that you store custom error pages in an Amazon S3 bucket. If you store custom error pages on an HTTP server and the server starts to return 5xx errors, CloudFront can't get the files that you want to return to viewers because the origin server is unavailable. */ responsePagePath?: string; } @@ -6007,7 +6259,7 @@ export namespace cloudfront { compress?: boolean; /** * This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - * The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide + * The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. */ defaultTtl?: number; /** @@ -6017,7 +6269,9 @@ export namespace cloudfront { /** * This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. * If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - * If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r + * If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. + * A ``DefaultCacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. + * A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. */ forwardedValues?: outputs.cloudfront.DistributionForwardedValues; /** @@ -6030,13 +6284,13 @@ export namespace cloudfront { lambdaFunctionAssociations?: outputs.cloudfront.DistributionLambdaFunctionAssociation[]; /** * This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - * The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. + * The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. */ maxTtl?: number; /** * This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. * The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. - * You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He + * You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). */ minTtl?: number; /** @@ -6077,7 +6331,7 @@ export namespace cloudfront { * + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). * * For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. - * The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol + * The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. */ viewerProtocolPolicy: string; } @@ -6093,21 +6347,26 @@ export namespace cloudfront { * This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. * If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. * If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - * A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C + * A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*. */ cookies?: outputs.cloudfront.DistributionCookies; /** * This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. * If you want to include headers in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. * If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - * A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versio + * A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versions of a specified object that is based on the header values in viewer requests. + * For more information, see [Caching Content Based on Request Headers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html) in the *Amazon CloudFront Developer Guide*. */ headers?: string[]; /** * This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. * If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. * If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - * Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of + * Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of ``QueryString`` and on the values that you specify for ``QueryStringCacheKeys``, if any: + * If you specify true for ``QueryString`` and you don't specify any values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin and caches based on all query string parameters. Depending on how many query string parameters and values you have, this can adversely affect performance because CloudFront must forward more requests to the origin. + * If you specify true for ``QueryString`` and you specify one or more values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin, but it only caches based on the query string parameters that you specify. + * If you specify false for ``QueryString``, CloudFront doesn't forward any query string parameters to the origin, and doesn't cache based on query string parameters. + * For more information, see [Configuring CloudFront to Cache Based on Query String Parameters](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html) in the *Amazon CloudFront Developer Guide*. */ queryString: boolean; /** @@ -6391,7 +6650,7 @@ export namespace cloudfront { * If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element. * To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element. * To replace the origin access identity, update the distribution configuration and specify the new origin access identity. - * For more information about the origin access identity, see [Serving Private Content through CloudFront](https://d + * For more information about the origin access identity, see [Serving Private Content through CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*. */ originAccessIdentity?: string; } @@ -6415,7 +6674,17 @@ export namespace cloudfront { * If the distribution doesn't use ``Aliases`` (also known as alternate domain names or CNAMEs)—that is, if the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``—set ``CloudFrontDefaultCertificate`` to ``true`` and leave all other fields empty. * If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), use the fields in this type to specify the following settings: * + Which viewers the distribution accepts HTTPS connections from: only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication) (recommended), or all viewers including those that don't support SNI. - * + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field n + * + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + * + To accept HTTPS connections from all viewers, including those that don't support SNI, set ``SSLSupportMethod`` to ``vip``. This is not recommended, and results in additional monthly charges from CloudFront. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + * + * + The minimum SSL/TLS protocol version that the distribution can use to communicate with viewers. To specify a minimum version, choose a value for ``MinimumProtocolVersion``. For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) in the *Amazon CloudFront Developer Guide*. + * + The location of the SSL/TLS certificate, [(ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) (recommended) or [(IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html). You specify the location by setting a value in one of the following fields (not both): + * + ``ACMCertificateArn`` (In CloudFormation, this field name is ``AcmCertificateArn``. Note the different capitalization.) + * + ``IAMCertificateId`` (In CloudFormation, this field name is ``IamCertificateId``. Note the different capitalization.) + * + * + * All distributions support HTTPS connections from viewers. To require viewers to use HTTPS only, or to redirect them from HTTP to HTTPS, use ``ViewerProtocolPolicy`` in the ``CacheBehavior`` or ``DefaultCacheBehavior``. To specify how CloudFront should use SSL/TLS to communicate with your custom origin, use ``CustomOriginConfig``. + * For more information, see [Using HTTPS with CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html) and [Using Alternate Domain Names and HTTPS](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-alternate-domain-names.html) in the *Amazon CloudFront Developer Guide*. */ export interface DistributionViewerCertificate { /** @@ -6445,7 +6714,8 @@ export namespace cloudfront { * * For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*. * On the CloudFront console, this setting is called *Security Policy*. - * When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-onl + * When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-only``), you must specify ``TLSv1`` or higher. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + * If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` (you set ``CloudFrontDefaultCertificate`` to ``true``), CloudFront automatically sets the security policy to ``TLSv1`` regardless of the value that you set here. */ minimumProtocolVersion?: string; /** @@ -6454,6 +6724,8 @@ export namespace cloudfront { * + ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication). This is recommended. Most browsers and clients support SNI. * + ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront. * + ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [Center](https://docs.aws.amazon.com/support/home). + * + * If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``, don't set a value for this field. */ sslSupportMethod?: string; } @@ -6942,11 +7214,41 @@ export namespace cloudwatch { } export namespace codeartifact { + export interface PackageGroupOriginConfiguration { + /** + * The origin configuration that is applied to the package group. + */ + restrictions: outputs.codeartifact.PackageGroupRestrictions; + } + + export interface PackageGroupRestrictionType { + repositories?: string[]; + restrictionMode: enums.codeartifact.PackageGroupRestrictionTypeRestrictionMode; + } + + export interface PackageGroupRestrictions { + /** + * The external upstream restriction determines if new package versions can be ingested or retained from external connections. + */ + externalUpstream?: outputs.codeartifact.PackageGroupRestrictionType; + /** + * The internal upstream restriction determines if new package versions can be ingested or retained from upstream repositories. + */ + internalUpstream?: outputs.codeartifact.PackageGroupRestrictionType; + /** + * The publish restriction determines if new package versions can be published. + */ + publish?: outputs.codeartifact.PackageGroupRestrictionType; + } + } export namespace codebuild { } +export namespace codeconnections { +} + export namespace codedeploy { export interface DeploymentConfigMinimumHealthyHosts { type: string; @@ -8217,6 +8519,20 @@ export namespace connect { fields: outputs.connect.RuleField[]; } + /** + * A third-party application's metadata. + */ + export interface SecurityProfileApplication { + /** + * The permissions that the agent is granted on the application + */ + applicationPermissions: string[]; + /** + * Namespace of the application that you want to give access to. + */ + namespace: string; + } + /** * A key-value pair to associate with a resource. */ @@ -10356,6 +10672,8 @@ export namespace dynamodb { pointInTimeRecoverySpecification?: outputs.dynamodb.GlobalTablePointInTimeRecoverySpecification; readProvisionedThroughputSettings?: outputs.dynamodb.GlobalTableReadProvisionedThroughputSettings; region: string; + replicaStreamSpecification?: outputs.dynamodb.GlobalTableReplicaStreamSpecification; + resourcePolicy?: outputs.dynamodb.GlobalTableResourcePolicy; sseSpecification?: outputs.dynamodb.GlobalTableReplicaSseSpecification; tableClass?: string; tags?: outputs.dynamodb.GlobalTableTag[]; @@ -10365,6 +10683,14 @@ export namespace dynamodb { kmsMasterKeyId: string; } + export interface GlobalTableReplicaStreamSpecification { + resourcePolicy: outputs.dynamodb.GlobalTableResourcePolicy; + } + + export interface GlobalTableResourcePolicy { + policyDocument: any; + } + export interface GlobalTableSseSpecification { sseEnabled: boolean; sseType?: string; @@ -10605,6 +10931,10 @@ export namespace dynamodb { writeCapacityUnits: number; } + export interface TableResourcePolicy { + policyDocument: any; + } + /** * The S3 bucket that is being imported from. */ @@ -10646,6 +10976,7 @@ export namespace dynamodb { * Represents the DynamoDB Streams configuration for a table in DynamoDB. */ export interface TableStreamSpecification { + resourcePolicy?: outputs.dynamodb.TableResourcePolicy; /** * When an item in the table is modified, ``StreamViewType`` determines what information is written to the stream for this table. Valid values for ``StreamViewType`` are: * + ``KEYS_ONLY`` - Only the key attributes of the modified item are written to the stream. @@ -11389,7 +11720,9 @@ export namespace ec2 { * + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. * + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. * - * If you specify ``InstanceReq + * If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. + * Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. + * For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. */ instanceRequirements?: outputs.ec2.LaunchTemplateInstanceRequirements; /** @@ -11508,13 +11841,14 @@ export namespace ec2 { */ volumeSize?: number; /** - * The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*. + * The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon EBS User Guide*. */ volumeType?: string; } /** - * Specifies a specification for an Elastic GPU for an Amazon EC2 launch template. + * Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. + * Specifies a specification for an Elastic GPU for an Amazon EC2 launch template. * ``ElasticGpuSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html). */ export interface LaunchTemplateElasticGpuSpecification { @@ -11589,7 +11923,7 @@ export namespace ec2 { /** * Specifies an IAM instance profile, which is a container for an IAM role for your instance. You can use an IAM role to distribute your AWS credentials to your instances. - * If you are creating the launch template for use with an Amazon EC2 Auto Scaling group, you can specify either the name or the ARN of the instance profile, but not both. + * If you are creating the launch template for use with an ASlong group, you can specify either the name or the ARN of the instance profile, but not both. * ``IamInstanceProfile`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html). */ export interface LaunchTemplateIamInstanceProfile { @@ -11626,7 +11960,9 @@ export namespace ec2 { * + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. * + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. * - * If you specify ``InstanceReq + * If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. + * Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. + * For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. */ export interface LaunchTemplateInstanceRequirements { /** @@ -11754,8 +12090,8 @@ export namespace ec2 { /** * [Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold. * The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - * To indicate no price protection threshold, specify a high value, such as ``999999``. - * If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instanc + * If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price. + * Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. */ maxSpotPriceAsPercentageOfOptimalOnDemandPrice?: number; /** @@ -11782,7 +12118,8 @@ export namespace ec2 { * The parameter accepts an integer, which Amazon EC2 interprets as a percentage. * To turn off price protection, specify a high value, such as ``999999``. * This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). - * If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per- + * If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. + * Default: ``20`` */ onDemandMaxPricePercentageOverLowestPrice?: number; /** @@ -11794,8 +12131,10 @@ export namespace ec2 { /** * [Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold. * The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - * To indicate no price protection threshold, specify a high value, such as ``999999``. - * If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price i + * If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. + * This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). + * Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. + * Default: ``100`` */ spotMaxPricePercentageOverLowestPrice?: number; /** @@ -11861,7 +12200,6 @@ export namespace ec2 { * Disables the automatic recovery behavior of your instance or sets it to default. */ autoRecovery?: string; - rebootMigration?: string; } /** @@ -12163,7 +12501,7 @@ export namespace ec2 { maxPrice?: string; /** * The Spot Instance request type. - * If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is below its desired capacity. + * If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the ASlong service handles requesting new Spot Instances whenever the group is below its desired capacity. */ spotInstanceType?: string; /** @@ -12491,9 +12829,9 @@ export namespace ec2 { /** * The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. * Available options: - * + EnableResourceNameDnsAAAARecord (true | false) - * + EnableResourceNameDnsARecord (true | false) - * + HostnameType (ip-name | resource-name) + * + EnableResourceNameDnsAAAARecord (true | false) + * + EnableResourceNameDnsARecord (true | false) + * + HostnameType (ip-name | resource-name) */ export interface PrivateDnsNameOptionsOnLaunchProperties { enableResourceNameDnsARecord?: boolean; @@ -14747,7 +15085,7 @@ export namespace efs { * + *ENABLED* - Turns automatic backups on for the file system. * + *DISABLED* - Turns automatic backups off for the file system. */ - status: string; + status: enums.efs.FileSystemBackupPolicyStatus; } /** @@ -15165,9 +15503,13 @@ export namespace elasticache { /** * The maximum cached data capacity of the Serverless Cache. */ - maximum: number; + maximum?: number; /** - * The unix of cached data capacity of the Serverless Cache. + * The minimum cached data capacity of the Serverless Cache. + */ + minimum?: number; + /** + * The unit of cached data capacity of the Serverless Cache. */ unit: enums.elasticache.ServerlessCacheDataStorageUnit; } @@ -15179,7 +15521,11 @@ export namespace elasticache { /** * The maximum ECPU per second of the Serverless Cache. */ - maximum: number; + maximum?: number; + /** + * The minimum ECPU per second of the Serverless Cache. + */ + minimum?: number; } /** @@ -16286,10 +16632,11 @@ export namespace entityresolution { export interface IdMappingWorkflowInputSource { /** - * An Glue table ARN for the input source table + * An Glue table ARN for the input source table or IdNamespace ARN */ inputSourceArn: string; - schemaArn: string; + schemaArn?: string; + type?: enums.entityresolution.IdMappingWorkflowInputSourceType; } export interface IdMappingWorkflowIntermediateSourceConfiguration { @@ -17468,7 +17815,7 @@ export namespace gamelift { } /** - * Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting + * Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. */ export interface GameServerGroupAutoScalingPolicy { estimatedInstanceWarmup?: number; @@ -17484,7 +17831,7 @@ export namespace gamelift { } /** - * The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. + * The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. */ export interface GameServerGroupLaunchTemplate { launchTemplateId?: string; @@ -21308,6 +21655,20 @@ export namespace iotsitewise { * A gateway that runs on AWS IoT Greengrass V2. */ greengrassV2?: outputs.iotsitewise.GatewayGreengrassV2; + /** + * A gateway that runs on Siemens Industrial Edge. + */ + siemensIe?: outputs.iotsitewise.GatewaySiemensIe; + } + + /** + * Contains the IotCoreThingName of AWS IoT Thing that the gateway runs on. + */ + export interface GatewaySiemensIe { + /** + * The name of the IoT Core Thing. + */ + iotCoreThingName: string; } } @@ -22223,6 +22584,45 @@ export namespace kafkaconnect { s3?: outputs.kafkaconnect.ConnectorS3LogDelivery; } + /** + * Details about the custom plugin file. + */ + export interface CustomPluginFileDescription { + /** + * The hex-encoded MD5 checksum of the custom plugin file. You can use it to validate the file. + */ + fileMd5?: string; + /** + * The size in bytes of the custom plugin file. You can use it to validate the file. + */ + fileSize?: number; + } + + /** + * Information about the location of a custom plugin. + */ + export interface CustomPluginLocation { + s3Location: outputs.kafkaconnect.CustomPluginS3Location; + } + + /** + * The S3 bucket Amazon Resource Name (ARN), file key, and object version of the plugin file stored in Amazon S3. + */ + export interface CustomPluginS3Location { + /** + * The Amazon Resource Name (ARN) of an S3 bucket. + */ + bucketArn: string; + /** + * The file key for an object in an S3 bucket. + */ + fileKey: string; + /** + * The version of an object in an S3 bucket. + */ + objectVersion?: string; + } + } export namespace kendra { @@ -26075,42 +26475,54 @@ export namespace logs { } /** - * the key-value pairs that further define a metric. + * Specifies the CW metric dimensions to publish with this metric. + * Because dimensions are part of the unique identifier for a metric, whenever a unique dimension name/value pair is extracted from your logs, you are creating a new variation of that metric. + * For more information about publishing dimensions with metrics created by metric filters, see [Publishing dimensions with metrics from values in JSON or space-delimited log events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html#logs-metric-filters-dimensions). + * Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. + * To help prevent accidental high charges, Amazon disables a metric filter if it generates 1000 different name/value pairs for the dimensions that you have specified within a certain amount of time. + * You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). */ export interface MetricFilterDimension { /** - * The key of the dimension. Maximum length of 255. + * The name for the CW metric dimension that the metric filter creates. + * Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon (:). */ key: string; /** - * The value of the dimension. Maximum length of 255. + * The log event field that will contain the value for this dimension. This dimension will only be published for a metric if the value is found in the log event. For example, ``$.eventType`` for JSON log events, or ``$server`` for space-delimited log events. */ value: string; } + /** + * ``MetricTransformation`` is a property of the ``AWS::Logs::MetricFilter`` resource that describes how to transform log streams into a CloudWatch metric. + */ export interface MetricFilterMetricTransformation { /** - * The value to emit when a filter pattern does not match a log event. This value can be null. + * (Optional) The value to emit when a filter pattern does not match a log event. This value can be null. */ defaultValue?: number; /** - * Dimensions are the key-value pairs that further define a metric + * The fields to use as dimensions for the metric. One metric filter can include as many as three dimensions. + * Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. + * CloudWatch Logs disables a metric filter if it generates 1000 different name/value pairs for your specified dimensions within a certain amount of time. This helps to prevent accidental high charges. + * You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). */ dimensions?: outputs.logs.MetricFilterDimension[]; /** - * The name of the CloudWatch metric. Metric name must be in ASCII format. + * The name of the CloudWatch metric. */ metricName: string; /** - * The namespace of the CloudWatch metric. + * A custom namespace to contain your metric in CloudWatch. Use namespaces to group together metrics that are similar. For more information, see [Namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace). */ metricNamespace: string; /** - * The value to publish to the CloudWatch metric when a filter pattern matches a log event. + * The value that is published to the CloudWatch metric. For example, if you're counting the occurrences of a particular term like ``Error``, specify 1 for the metric value. If you're counting the number of bytes transferred, reference the value that is in the log event by using $. followed by the name of the field that you specified in the filter pattern, such as ``$.size``. */ metricValue: string; /** - * The unit to assign to the metric. If you omit this, the unit is set as None. + * The unit to assign to the metric. If you omit this, the unit is set as ``None``. */ unit?: enums.logs.MetricFilterMetricTransformationUnit; } @@ -41748,6 +42160,13 @@ export namespace resiliencehub { rtoInSecs: number; } + export interface ResiliencyPolicyPolicyMap { + az: outputs.resiliencehub.ResiliencyPolicyFailurePolicy; + hardware: outputs.resiliencehub.ResiliencyPolicyFailurePolicy; + region?: outputs.resiliencehub.ResiliencyPolicyFailurePolicy; + software: outputs.resiliencehub.ResiliencyPolicyFailurePolicy; + } + } export namespace resourceexplorer2 { @@ -47627,6 +48046,106 @@ export namespace securityhub { } +export namespace securitylake { + /** + * Provides encryption details of Amazon Security Lake object. + */ + export interface DataLakeEncryptionConfiguration { + /** + * The id of KMS encryption key used by Amazon Security Lake to encrypt the Security Lake object. + */ + kmsKeyId?: string; + } + + /** + * Provides data expiration details of Amazon Security Lake object. + */ + export interface DataLakeExpiration { + days?: number; + } + + /** + * Provides lifecycle details of Amazon Security Lake object. + */ + export interface DataLakeLifecycleConfiguration { + expiration?: outputs.securitylake.DataLakeExpiration; + /** + * Provides data storage transition details of Amazon Security Lake object. + */ + transitions?: outputs.securitylake.DataLakeTransitions[]; + } + + /** + * Provides replication details of Amazon Security Lake object. + */ + export interface DataLakeReplicationConfiguration { + regions?: string[]; + /** + * Replication settings for the Amazon S3 buckets. This parameter uses the AWS Identity and Access Management (IAM) role you created that is managed by Security Lake, to ensure the replication setting is correct. + */ + roleArn?: string; + } + + export interface DataLakeTransitions { + /** + * Number of days before data transitions to a different S3 Storage Class in the Amazon Security Lake object. + */ + days?: number; + /** + * The range of storage classes that you can choose from based on the data access, resiliency, and cost requirements of your workloads. + */ + storageClass?: string; + } + + /** + * Amazon Security Lake supports log and event collection for natively supported AWS services. + */ + export interface SubscriberAwsLogSource { + /** + * The name for a AWS source. This must be a Regionally unique value. + */ + sourceName?: string; + /** + * The version for a AWS source. This must be a Regionally unique value. + */ + sourceVersion?: string; + } + + export interface SubscriberCustomLogSource { + /** + * The name for a third-party custom source. This must be a Regionally unique value. + */ + sourceName?: string; + /** + * The version for a third-party custom source. This must be a Regionally unique value. + */ + sourceVersion?: string; + } + + /** + * The AWS identity used to access your data. + */ + export interface SubscriberIdentityProperties { + /** + * The external ID used to establish trust relationship with the AWS identity. + */ + externalId: string; + /** + * The AWS identity principal. + */ + principal: string; + } + + export interface SubscriberSource0Properties { + awsLogSource: outputs.securitylake.SubscriberAwsLogSource; + } + + export interface SubscriberSource1Properties { + customLogSource: outputs.securitylake.SubscriberCustomLogSource; + } + +} + export namespace servicecatalog { export interface CloudFormationProvisionedProductProvisioningParameter { key: string; diff --git a/sdk/python/pulumi_aws_native/__init__.py b/sdk/python/pulumi_aws_native/__init__.py index 44b30db8a9..ab76560585 100644 --- a/sdk/python/pulumi_aws_native/__init__.py +++ b/sdk/python/pulumi_aws_native/__init__.py @@ -68,6 +68,8 @@ backupgateway = __backupgateway import pulumi_aws_native.batch as __batch batch = __batch + import pulumi_aws_native.bedrock as __bedrock + bedrock = __bedrock import pulumi_aws_native.budgets as __budgets budgets = __budgets import pulumi_aws_native.cassandra as __cassandra @@ -92,6 +94,8 @@ codeartifact = __codeartifact import pulumi_aws_native.codebuild as __codebuild codebuild = __codebuild + import pulumi_aws_native.codeconnections as __codeconnections + codeconnections = __codeconnections import pulumi_aws_native.codedeploy as __codedeploy codedeploy = __codedeploy import pulumi_aws_native.codeguruprofiler as __codeguruprofiler @@ -376,6 +380,8 @@ secretsmanager = __secretsmanager import pulumi_aws_native.securityhub as __securityhub securityhub = __securityhub + import pulumi_aws_native.securitylake as __securitylake + securitylake = __securitylake import pulumi_aws_native.servicecatalog as __servicecatalog servicecatalog = __servicecatalog import pulumi_aws_native.servicecatalogappregistry as __servicecatalogappregistry @@ -454,6 +460,7 @@ backup = _utilities.lazy_import('pulumi_aws_native.backup') backupgateway = _utilities.lazy_import('pulumi_aws_native.backupgateway') batch = _utilities.lazy_import('pulumi_aws_native.batch') + bedrock = _utilities.lazy_import('pulumi_aws_native.bedrock') budgets = _utilities.lazy_import('pulumi_aws_native.budgets') cassandra = _utilities.lazy_import('pulumi_aws_native.cassandra') ce = _utilities.lazy_import('pulumi_aws_native.ce') @@ -466,6 +473,7 @@ cloudwatch = _utilities.lazy_import('pulumi_aws_native.cloudwatch') codeartifact = _utilities.lazy_import('pulumi_aws_native.codeartifact') codebuild = _utilities.lazy_import('pulumi_aws_native.codebuild') + codeconnections = _utilities.lazy_import('pulumi_aws_native.codeconnections') codedeploy = _utilities.lazy_import('pulumi_aws_native.codedeploy') codeguruprofiler = _utilities.lazy_import('pulumi_aws_native.codeguruprofiler') codegurureviewer = _utilities.lazy_import('pulumi_aws_native.codegurureviewer') @@ -608,6 +616,7 @@ scheduler = _utilities.lazy_import('pulumi_aws_native.scheduler') secretsmanager = _utilities.lazy_import('pulumi_aws_native.secretsmanager') securityhub = _utilities.lazy_import('pulumi_aws_native.securityhub') + securitylake = _utilities.lazy_import('pulumi_aws_native.securitylake') servicecatalog = _utilities.lazy_import('pulumi_aws_native.servicecatalog') servicecatalogappregistry = _utilities.lazy_import('pulumi_aws_native.servicecatalogappregistry') ses = _utilities.lazy_import('pulumi_aws_native.ses') @@ -748,6 +757,7 @@ "mod": "appintegrations", "fqn": "pulumi_aws_native.appintegrations", "classes": { + "aws-native:appintegrations:Application": "Application", "aws-native:appintegrations:DataIntegration": "DataIntegration", "aws-native:appintegrations:EventIntegration": "EventIntegration" } @@ -814,6 +824,7 @@ "fqn": "pulumi_aws_native.aps", "classes": { "aws-native:aps:RuleGroupsNamespace": "RuleGroupsNamespace", + "aws-native:aps:Scraper": "Scraper", "aws-native:aps:Workspace": "Workspace" } }, @@ -902,6 +913,15 @@ "aws-native:batch:SchedulingPolicy": "SchedulingPolicy" } }, + { + "pkg": "aws-native", + "mod": "bedrock", + "fqn": "pulumi_aws_native.bedrock", + "classes": { + "aws-native:bedrock:Agent": "Agent", + "aws-native:bedrock:AgentAlias": "AgentAlias" + } + }, { "pkg": "aws-native", "mod": "budgets", @@ -1024,6 +1044,7 @@ "fqn": "pulumi_aws_native.codeartifact", "classes": { "aws-native:codeartifact:Domain": "Domain", + "aws-native:codeartifact:PackageGroup": "PackageGroup", "aws-native:codeartifact:Repository": "Repository" } }, @@ -1035,6 +1056,14 @@ "aws-native:codebuild:Fleet": "Fleet" } }, + { + "pkg": "aws-native", + "mod": "codeconnections", + "fqn": "pulumi_aws_native.codeconnections", + "classes": { + "aws-native:codeconnections:Connection": "Connection" + } + }, { "pkg": "aws-native", "mod": "codedeploy", @@ -1928,7 +1957,9 @@ "mod": "kafkaconnect", "fqn": "pulumi_aws_native.kafkaconnect", "classes": { - "aws-native:kafkaconnect:Connector": "Connector" + "aws-native:kafkaconnect:Connector": "Connector", + "aws-native:kafkaconnect:CustomPlugin": "CustomPlugin", + "aws-native:kafkaconnect:WorkerConfiguration": "WorkerConfiguration" } }, { @@ -2720,6 +2751,16 @@ "aws-native:securityhub:Standard": "Standard" } }, + { + "pkg": "aws-native", + "mod": "securitylake", + "fqn": "pulumi_aws_native.securitylake", + "classes": { + "aws-native:securitylake:AwsLogSource": "AwsLogSource", + "aws-native:securitylake:DataLake": "DataLake", + "aws-native:securitylake:Subscriber": "Subscriber" + } + }, { "pkg": "aws-native", "mod": "servicecatalog", diff --git a/sdk/python/pulumi_aws_native/appintegrations/__init__.py b/sdk/python/pulumi_aws_native/appintegrations/__init__.py index 22d752614d..5e11a12565 100644 --- a/sdk/python/pulumi_aws_native/appintegrations/__init__.py +++ b/sdk/python/pulumi_aws_native/appintegrations/__init__.py @@ -5,8 +5,10 @@ from .. import _utilities import typing # Export this package's modules as members: +from .application import * from .data_integration import * from .event_integration import * +from .get_application import * from .get_data_integration import * from .get_event_integration import * from ._inputs import * diff --git a/sdk/python/pulumi_aws_native/appintegrations/_inputs.py b/sdk/python/pulumi_aws_native/appintegrations/_inputs.py index 5b920104ae..f6e0de0f7c 100644 --- a/sdk/python/pulumi_aws_native/appintegrations/_inputs.py +++ b/sdk/python/pulumi_aws_native/appintegrations/_inputs.py @@ -10,11 +10,59 @@ from .. import _utilities __all__ = [ + 'ApplicationExternalUrlConfigArgs', + 'ApplicationSourceConfigPropertiesArgs', 'DataIntegrationFileConfigurationArgs', 'DataIntegrationScheduleConfigArgs', 'EventIntegrationEventFilterArgs', ] +@pulumi.input_type +class ApplicationExternalUrlConfigArgs: + def __init__(__self__, *, + access_url: pulumi.Input[str], + approved_origins: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(__self__, "access_url", access_url) + pulumi.set(__self__, "approved_origins", approved_origins) + + @property + @pulumi.getter(name="accessUrl") + def access_url(self) -> pulumi.Input[str]: + return pulumi.get(self, "access_url") + + @access_url.setter + def access_url(self, value: pulumi.Input[str]): + pulumi.set(self, "access_url", value) + + @property + @pulumi.getter(name="approvedOrigins") + def approved_origins(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + return pulumi.get(self, "approved_origins") + + @approved_origins.setter + def approved_origins(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(self, "approved_origins", value) + + +@pulumi.input_type +class ApplicationSourceConfigPropertiesArgs: + def __init__(__self__, *, + external_url_config: pulumi.Input['ApplicationExternalUrlConfigArgs']): + """ + Application source config + """ + pulumi.set(__self__, "external_url_config", external_url_config) + + @property + @pulumi.getter(name="externalUrlConfig") + def external_url_config(self) -> pulumi.Input['ApplicationExternalUrlConfigArgs']: + return pulumi.get(self, "external_url_config") + + @external_url_config.setter + def external_url_config(self, value: pulumi.Input['ApplicationExternalUrlConfigArgs']): + pulumi.set(self, "external_url_config", value) + + @pulumi.input_type class DataIntegrationFileConfigurationArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws_native/appintegrations/application.py b/sdk/python/pulumi_aws_native/appintegrations/application.py new file mode 100644 index 0000000000..fb8f1f08b6 --- /dev/null +++ b/sdk/python/pulumi_aws_native/appintegrations/application.py @@ -0,0 +1,261 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from .. import _inputs as _root_inputs +from .. import outputs as _root_outputs +from ._inputs import * + +__all__ = ['ApplicationArgs', 'Application'] + +@pulumi.input_type +class ApplicationArgs: + def __init__(__self__, *, + application_source_config: pulumi.Input['ApplicationSourceConfigPropertiesArgs'], + description: pulumi.Input[str], + name: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None): + """ + The set of arguments for constructing a Application resource. + :param pulumi.Input['ApplicationSourceConfigPropertiesArgs'] application_source_config: Application source config + :param pulumi.Input[str] description: The application description. + :param pulumi.Input[str] name: The name of the application. + :param pulumi.Input[str] namespace: The namespace of the application. + :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: The tags (keys and values) associated with the application. + """ + pulumi.set(__self__, "application_source_config", application_source_config) + pulumi.set(__self__, "description", description) + if name is not None: + pulumi.set(__self__, "name", name) + if namespace is not None: + pulumi.set(__self__, "namespace", namespace) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="applicationSourceConfig") + def application_source_config(self) -> pulumi.Input['ApplicationSourceConfigPropertiesArgs']: + """ + Application source config + """ + return pulumi.get(self, "application_source_config") + + @application_source_config.setter + def application_source_config(self, value: pulumi.Input['ApplicationSourceConfigPropertiesArgs']): + pulumi.set(self, "application_source_config", value) + + @property + @pulumi.getter + def description(self) -> pulumi.Input[str]: + """ + The application description. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: pulumi.Input[str]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the application. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def namespace(self) -> Optional[pulumi.Input[str]]: + """ + The namespace of the application. + """ + return pulumi.get(self, "namespace") + + @namespace.setter + def namespace(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "namespace", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]: + """ + The tags (keys and values) associated with the application. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]): + pulumi.set(self, "tags", value) + + +class Application(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + application_source_config: Optional[pulumi.Input[pulumi.InputType['ApplicationSourceConfigPropertiesArgs']]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, + __props__=None): + """ + Resource Type definition for AWS:AppIntegrations::Application + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[pulumi.InputType['ApplicationSourceConfigPropertiesArgs']] application_source_config: Application source config + :param pulumi.Input[str] description: The application description. + :param pulumi.Input[str] name: The name of the application. + :param pulumi.Input[str] namespace: The namespace of the application. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]] tags: The tags (keys and values) associated with the application. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ApplicationArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource Type definition for AWS:AppIntegrations::Application + + :param str resource_name: The name of the resource. + :param ApplicationArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ApplicationArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + application_source_config: Optional[pulumi.Input[pulumi.InputType['ApplicationSourceConfigPropertiesArgs']]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + namespace: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ApplicationArgs.__new__(ApplicationArgs) + + if application_source_config is None and not opts.urn: + raise TypeError("Missing required property 'application_source_config'") + __props__.__dict__["application_source_config"] = application_source_config + if description is None and not opts.urn: + raise TypeError("Missing required property 'description'") + __props__.__dict__["description"] = description + __props__.__dict__["name"] = name + __props__.__dict__["namespace"] = namespace + __props__.__dict__["tags"] = tags + __props__.__dict__["application_arn"] = None + __props__.__dict__["aws_id"] = None + super(Application, __self__).__init__( + 'aws-native:appintegrations:Application', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'Application': + """ + Get an existing Application resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = ApplicationArgs.__new__(ApplicationArgs) + + __props__.__dict__["application_arn"] = None + __props__.__dict__["application_source_config"] = None + __props__.__dict__["aws_id"] = None + __props__.__dict__["description"] = None + __props__.__dict__["name"] = None + __props__.__dict__["namespace"] = None + __props__.__dict__["tags"] = None + return Application(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="applicationArn") + def application_arn(self) -> pulumi.Output[str]: + """ + The Amazon Resource Name (ARN) of the application. + """ + return pulumi.get(self, "application_arn") + + @property + @pulumi.getter(name="applicationSourceConfig") + def application_source_config(self) -> pulumi.Output['outputs.ApplicationSourceConfigProperties']: + """ + Application source config + """ + return pulumi.get(self, "application_source_config") + + @property + @pulumi.getter(name="awsId") + def aws_id(self) -> pulumi.Output[str]: + """ + The id of the application. + """ + return pulumi.get(self, "aws_id") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[str]: + """ + The application description. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of the application. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def namespace(self) -> pulumi.Output[Optional[str]]: + """ + The namespace of the application. + """ + return pulumi.get(self, "namespace") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: + """ + The tags (keys and values) associated with the application. + """ + return pulumi.get(self, "tags") + diff --git a/sdk/python/pulumi_aws_native/appintegrations/get_application.py b/sdk/python/pulumi_aws_native/appintegrations/get_application.py new file mode 100644 index 0000000000..8fb4d0c17c --- /dev/null +++ b/sdk/python/pulumi_aws_native/appintegrations/get_application.py @@ -0,0 +1,150 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from .. import outputs as _root_outputs + +__all__ = [ + 'GetApplicationResult', + 'AwaitableGetApplicationResult', + 'get_application', + 'get_application_output', +] + +@pulumi.output_type +class GetApplicationResult: + def __init__(__self__, application_arn=None, application_source_config=None, description=None, id=None, name=None, namespace=None, tags=None): + if application_arn and not isinstance(application_arn, str): + raise TypeError("Expected argument 'application_arn' to be a str") + pulumi.set(__self__, "application_arn", application_arn) + if application_source_config and not isinstance(application_source_config, dict): + raise TypeError("Expected argument 'application_source_config' to be a dict") + pulumi.set(__self__, "application_source_config", application_source_config) + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if namespace and not isinstance(namespace, str): + raise TypeError("Expected argument 'namespace' to be a str") + pulumi.set(__self__, "namespace", namespace) + 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="applicationArn") + def application_arn(self) -> Optional[str]: + """ + The Amazon Resource Name (ARN) of the application. + """ + return pulumi.get(self, "application_arn") + + @property + @pulumi.getter(name="applicationSourceConfig") + def application_source_config(self) -> Optional['outputs.ApplicationSourceConfigProperties']: + """ + Application source config + """ + return pulumi.get(self, "application_source_config") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + """ + The application description. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def id(self) -> Optional[str]: + """ + The id of the application. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + The name of the application. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def namespace(self) -> Optional[str]: + """ + The namespace of the application. + """ + return pulumi.get(self, "namespace") + + @property + @pulumi.getter + def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: + """ + The tags (keys and values) associated with the application. + """ + return pulumi.get(self, "tags") + + +class AwaitableGetApplicationResult(GetApplicationResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetApplicationResult( + application_arn=self.application_arn, + application_source_config=self.application_source_config, + description=self.description, + id=self.id, + name=self.name, + namespace=self.namespace, + tags=self.tags) + + +def get_application(application_arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetApplicationResult: + """ + Resource Type definition for AWS:AppIntegrations::Application + + + :param str application_arn: The Amazon Resource Name (ARN) of the application. + """ + __args__ = dict() + __args__['applicationArn'] = application_arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:appintegrations:getApplication', __args__, opts=opts, typ=GetApplicationResult).value + + return AwaitableGetApplicationResult( + application_arn=pulumi.get(__ret__, 'application_arn'), + application_source_config=pulumi.get(__ret__, 'application_source_config'), + description=pulumi.get(__ret__, 'description'), + id=pulumi.get(__ret__, 'id'), + name=pulumi.get(__ret__, 'name'), + namespace=pulumi.get(__ret__, 'namespace'), + tags=pulumi.get(__ret__, 'tags')) + + +@_utilities.lift_output_func(get_application) +def get_application_output(application_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetApplicationResult]: + """ + Resource Type definition for AWS:AppIntegrations::Application + + + :param str application_arn: The Amazon Resource Name (ARN) of the application. + """ + ... diff --git a/sdk/python/pulumi_aws_native/appintegrations/outputs.py b/sdk/python/pulumi_aws_native/appintegrations/outputs.py index 9b625cb2f3..ec1958d7dc 100644 --- a/sdk/python/pulumi_aws_native/appintegrations/outputs.py +++ b/sdk/python/pulumi_aws_native/appintegrations/outputs.py @@ -8,13 +8,89 @@ import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities +from . import outputs __all__ = [ + 'ApplicationExternalUrlConfig', + 'ApplicationSourceConfigProperties', 'DataIntegrationFileConfiguration', 'DataIntegrationScheduleConfig', 'EventIntegrationEventFilter', ] +@pulumi.output_type +class ApplicationExternalUrlConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "accessUrl": + suggest = "access_url" + elif key == "approvedOrigins": + suggest = "approved_origins" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ApplicationExternalUrlConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ApplicationExternalUrlConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ApplicationExternalUrlConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + access_url: str, + approved_origins: Sequence[str]): + pulumi.set(__self__, "access_url", access_url) + pulumi.set(__self__, "approved_origins", approved_origins) + + @property + @pulumi.getter(name="accessUrl") + def access_url(self) -> str: + return pulumi.get(self, "access_url") + + @property + @pulumi.getter(name="approvedOrigins") + def approved_origins(self) -> Sequence[str]: + return pulumi.get(self, "approved_origins") + + +@pulumi.output_type +class ApplicationSourceConfigProperties(dict): + """ + Application source config + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "externalUrlConfig": + suggest = "external_url_config" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ApplicationSourceConfigProperties. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ApplicationSourceConfigProperties.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ApplicationSourceConfigProperties.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + external_url_config: 'outputs.ApplicationExternalUrlConfig'): + """ + Application source config + """ + pulumi.set(__self__, "external_url_config", external_url_config) + + @property + @pulumi.getter(name="externalUrlConfig") + def external_url_config(self) -> 'outputs.ApplicationExternalUrlConfig': + return pulumi.get(self, "external_url_config") + + @pulumi.output_type class DataIntegrationFileConfiguration(dict): """ diff --git a/sdk/python/pulumi_aws_native/appsync/_enums.py b/sdk/python/pulumi_aws_native/appsync/_enums.py index 06ff79a6f7..bf660132cd 100644 --- a/sdk/python/pulumi_aws_native/appsync/_enums.py +++ b/sdk/python/pulumi_aws_native/appsync/_enums.py @@ -12,6 +12,9 @@ class ResolverMetricsConfig(str, Enum): + """ + Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value. + """ ENABLED = "ENABLED" DISABLED = "DISABLED" diff --git a/sdk/python/pulumi_aws_native/appsync/get_resolver.py b/sdk/python/pulumi_aws_native/appsync/get_resolver.py index 53a673cc5a..963a873d9a 100644 --- a/sdk/python/pulumi_aws_native/appsync/get_resolver.py +++ b/sdk/python/pulumi_aws_native/appsync/get_resolver.py @@ -103,6 +103,9 @@ def max_batch_size(self) -> Optional[int]: @property @pulumi.getter(name="metricsConfig") def metrics_config(self) -> Optional['ResolverMetricsConfig']: + """ + Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value. + """ return pulumi.get(self, "metrics_config") @property diff --git a/sdk/python/pulumi_aws_native/appsync/resolver.py b/sdk/python/pulumi_aws_native/appsync/resolver.py index 8e8fdcd69a..6f6a7931f3 100644 --- a/sdk/python/pulumi_aws_native/appsync/resolver.py +++ b/sdk/python/pulumi_aws_native/appsync/resolver.py @@ -47,6 +47,7 @@ def __init__(__self__, *, + *UNIT*: A UNIT resolver type. A UNIT resolver is the default resolver type. You can use a UNIT resolver to run a GraphQL query against a single data source. + *PIPELINE*: A PIPELINE resolver type. You can use a PIPELINE resolver to invoke a series of ``Function`` objects in a serial manner. You can use a pipeline resolver to run a GraphQL query against multiple data sources. :param pulumi.Input[int] max_batch_size: The maximum number of resolver request inputs that will be sent to a single LAMlong function in a ``BatchInvoke`` operation. + :param pulumi.Input['ResolverMetricsConfig'] metrics_config: Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value. :param pulumi.Input['ResolverPipelineConfigArgs'] pipeline_config: Functions linked with the pipeline resolver. :param pulumi.Input[str] request_mapping_template: The request mapping template. Request mapping templates are optional when using a Lambda data source. For all other data sources, a request mapping template is required. @@ -201,6 +202,9 @@ def max_batch_size(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="metricsConfig") def metrics_config(self) -> Optional[pulumi.Input['ResolverMetricsConfig']]: + """ + Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value. + """ return pulumi.get(self, "metrics_config") @metrics_config.setter @@ -357,6 +361,7 @@ def __init__(__self__, + *UNIT*: A UNIT resolver type. A UNIT resolver is the default resolver type. You can use a UNIT resolver to run a GraphQL query against a single data source. + *PIPELINE*: A PIPELINE resolver type. You can use a PIPELINE resolver to invoke a series of ``Function`` objects in a serial manner. You can use a pipeline resolver to run a GraphQL query against multiple data sources. :param pulumi.Input[int] max_batch_size: The maximum number of resolver request inputs that will be sent to a single LAMlong function in a ``BatchInvoke`` operation. + :param pulumi.Input['ResolverMetricsConfig'] metrics_config: Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value. :param pulumi.Input[pulumi.InputType['ResolverPipelineConfigArgs']] pipeline_config: Functions linked with the pipeline resolver. :param pulumi.Input[str] request_mapping_template: The request mapping template. Request mapping templates are optional when using a Lambda data source. For all other data sources, a request mapping template is required. @@ -580,6 +585,9 @@ def max_batch_size(self) -> pulumi.Output[Optional[int]]: @property @pulumi.getter(name="metricsConfig") def metrics_config(self) -> pulumi.Output[Optional['ResolverMetricsConfig']]: + """ + Enables or disables enhanced resolver metrics for specified resolvers. Note that ``MetricsConfig`` won't be used unless the ``resolverLevelMetricsBehavior`` value is set to ``PER_RESOLVER_METRICS``. If the ``resolverLevelMetricsBehavior`` is set to ``FULL_REQUEST_RESOLVER_METRICS`` instead, ``MetricsConfig`` will be ignored. However, you can still set its value. + """ return pulumi.get(self, "metrics_config") @property diff --git a/sdk/python/pulumi_aws_native/aps/__init__.py b/sdk/python/pulumi_aws_native/aps/__init__.py index 534e04a9f1..95067c0b76 100644 --- a/sdk/python/pulumi_aws_native/aps/__init__.py +++ b/sdk/python/pulumi_aws_native/aps/__init__.py @@ -6,8 +6,10 @@ import typing # Export this package's modules as members: from .get_rule_groups_namespace import * +from .get_scraper import * from .get_workspace import * from .rule_groups_namespace import * +from .scraper import * from .workspace import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws_native/aps/_inputs.py b/sdk/python/pulumi_aws_native/aps/_inputs.py index fed1390e06..5e17606fb6 100644 --- a/sdk/python/pulumi_aws_native/aps/_inputs.py +++ b/sdk/python/pulumi_aws_native/aps/_inputs.py @@ -10,9 +10,163 @@ from .. import _utilities __all__ = [ + 'ScraperDestinationAmpConfigurationPropertiesArgs', + 'ScraperDestinationArgs', + 'ScraperScrapeConfigurationArgs', + 'ScraperSourceEksConfigurationPropertiesArgs', + 'ScraperSourceArgs', 'WorkspaceLoggingConfigurationArgs', ] +@pulumi.input_type +class ScraperDestinationAmpConfigurationPropertiesArgs: + def __init__(__self__, *, + workspace_arn: pulumi.Input[str]): + """ + Configuration for Amazon Managed Prometheus metrics destination + :param pulumi.Input[str] workspace_arn: ARN of an Amazon Managed Prometheus workspace + """ + pulumi.set(__self__, "workspace_arn", workspace_arn) + + @property + @pulumi.getter(name="workspaceArn") + def workspace_arn(self) -> pulumi.Input[str]: + """ + ARN of an Amazon Managed Prometheus workspace + """ + return pulumi.get(self, "workspace_arn") + + @workspace_arn.setter + def workspace_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "workspace_arn", value) + + +@pulumi.input_type +class ScraperDestinationArgs: + def __init__(__self__, *, + amp_configuration: Optional[pulumi.Input['ScraperDestinationAmpConfigurationPropertiesArgs']] = None): + """ + Scraper metrics destination + :param pulumi.Input['ScraperDestinationAmpConfigurationPropertiesArgs'] amp_configuration: Configuration for Amazon Managed Prometheus metrics destination + """ + if amp_configuration is not None: + pulumi.set(__self__, "amp_configuration", amp_configuration) + + @property + @pulumi.getter(name="ampConfiguration") + def amp_configuration(self) -> Optional[pulumi.Input['ScraperDestinationAmpConfigurationPropertiesArgs']]: + """ + Configuration for Amazon Managed Prometheus metrics destination + """ + return pulumi.get(self, "amp_configuration") + + @amp_configuration.setter + def amp_configuration(self, value: Optional[pulumi.Input['ScraperDestinationAmpConfigurationPropertiesArgs']]): + pulumi.set(self, "amp_configuration", value) + + +@pulumi.input_type +class ScraperScrapeConfigurationArgs: + def __init__(__self__, *, + configuration_blob: Optional[pulumi.Input[str]] = None): + """ + Scraper configuration + :param pulumi.Input[str] configuration_blob: Prometheus compatible scrape configuration in base64 encoded blob format + """ + if configuration_blob is not None: + pulumi.set(__self__, "configuration_blob", configuration_blob) + + @property + @pulumi.getter(name="configurationBlob") + def configuration_blob(self) -> Optional[pulumi.Input[str]]: + """ + Prometheus compatible scrape configuration in base64 encoded blob format + """ + return pulumi.get(self, "configuration_blob") + + @configuration_blob.setter + def configuration_blob(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "configuration_blob", value) + + +@pulumi.input_type +class ScraperSourceEksConfigurationPropertiesArgs: + def __init__(__self__, *, + cluster_arn: pulumi.Input[str], + subnet_ids: pulumi.Input[Sequence[pulumi.Input[str]]], + security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + Configuration for EKS metrics source + :param pulumi.Input[str] cluster_arn: ARN of an EKS cluster + :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: List of subnet IDs + :param pulumi.Input[Sequence[pulumi.Input[str]]] security_group_ids: List of security group IDs + """ + pulumi.set(__self__, "cluster_arn", cluster_arn) + pulumi.set(__self__, "subnet_ids", subnet_ids) + if security_group_ids is not None: + pulumi.set(__self__, "security_group_ids", security_group_ids) + + @property + @pulumi.getter(name="clusterArn") + def cluster_arn(self) -> pulumi.Input[str]: + """ + ARN of an EKS cluster + """ + return pulumi.get(self, "cluster_arn") + + @cluster_arn.setter + def cluster_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "cluster_arn", value) + + @property + @pulumi.getter(name="subnetIds") + def subnet_ids(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + """ + List of subnet IDs + """ + return pulumi.get(self, "subnet_ids") + + @subnet_ids.setter + def subnet_ids(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(self, "subnet_ids", value) + + @property + @pulumi.getter(name="securityGroupIds") + def security_group_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of security group IDs + """ + return pulumi.get(self, "security_group_ids") + + @security_group_ids.setter + def security_group_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "security_group_ids", value) + + +@pulumi.input_type +class ScraperSourceArgs: + def __init__(__self__, *, + eks_configuration: Optional[pulumi.Input['ScraperSourceEksConfigurationPropertiesArgs']] = None): + """ + Scraper metrics source + :param pulumi.Input['ScraperSourceEksConfigurationPropertiesArgs'] eks_configuration: Configuration for EKS metrics source + """ + if eks_configuration is not None: + pulumi.set(__self__, "eks_configuration", eks_configuration) + + @property + @pulumi.getter(name="eksConfiguration") + def eks_configuration(self) -> Optional[pulumi.Input['ScraperSourceEksConfigurationPropertiesArgs']]: + """ + Configuration for EKS metrics source + """ + return pulumi.get(self, "eks_configuration") + + @eks_configuration.setter + def eks_configuration(self, value: Optional[pulumi.Input['ScraperSourceEksConfigurationPropertiesArgs']]): + pulumi.set(self, "eks_configuration", value) + + @pulumi.input_type class WorkspaceLoggingConfigurationArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws_native/aps/get_scraper.py b/sdk/python/pulumi_aws_native/aps/get_scraper.py new file mode 100644 index 0000000000..6dc0659a3a --- /dev/null +++ b/sdk/python/pulumi_aws_native/aps/get_scraper.py @@ -0,0 +1,110 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from .. import outputs as _root_outputs + +__all__ = [ + 'GetScraperResult', + 'AwaitableGetScraperResult', + 'get_scraper', + 'get_scraper_output', +] + +@pulumi.output_type +class GetScraperResult: + def __init__(__self__, arn=None, role_arn=None, scraper_id=None, tags=None): + if arn and not isinstance(arn, str): + raise TypeError("Expected argument 'arn' to be a str") + pulumi.set(__self__, "arn", arn) + if role_arn and not isinstance(role_arn, str): + raise TypeError("Expected argument 'role_arn' to be a str") + pulumi.set(__self__, "role_arn", role_arn) + if scraper_id and not isinstance(scraper_id, str): + raise TypeError("Expected argument 'scraper_id' to be a str") + pulumi.set(__self__, "scraper_id", scraper_id) + if tags and not isinstance(tags, list): + raise TypeError("Expected argument 'tags' to be a list") + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter + def arn(self) -> Optional[str]: + """ + Scraper ARN. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> Optional[str]: + """ + IAM role ARN for the scraper. + """ + return pulumi.get(self, "role_arn") + + @property + @pulumi.getter(name="scraperId") + def scraper_id(self) -> Optional[str]: + """ + Required to identify a specific scraper. + """ + return pulumi.get(self, "scraper_id") + + @property + @pulumi.getter + def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: + """ + An array of key-value pairs to apply to this resource. + """ + return pulumi.get(self, "tags") + + +class AwaitableGetScraperResult(GetScraperResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetScraperResult( + arn=self.arn, + role_arn=self.role_arn, + scraper_id=self.scraper_id, + tags=self.tags) + + +def get_scraper(arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetScraperResult: + """ + Resource Type definition for AWS::APS::Scraper + + + :param str arn: Scraper ARN. + """ + __args__ = dict() + __args__['arn'] = arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:aps:getScraper', __args__, opts=opts, typ=GetScraperResult).value + + return AwaitableGetScraperResult( + arn=pulumi.get(__ret__, 'arn'), + role_arn=pulumi.get(__ret__, 'role_arn'), + scraper_id=pulumi.get(__ret__, 'scraper_id'), + tags=pulumi.get(__ret__, 'tags')) + + +@_utilities.lift_output_func(get_scraper) +def get_scraper_output(arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetScraperResult]: + """ + Resource Type definition for AWS::APS::Scraper + + + :param str arn: Scraper ARN. + """ + ... diff --git a/sdk/python/pulumi_aws_native/aps/outputs.py b/sdk/python/pulumi_aws_native/aps/outputs.py index c29fabbc28..a01826d0b7 100644 --- a/sdk/python/pulumi_aws_native/aps/outputs.py +++ b/sdk/python/pulumi_aws_native/aps/outputs.py @@ -8,11 +8,242 @@ import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities +from . import outputs __all__ = [ + 'ScraperDestination', + 'ScraperDestinationAmpConfigurationProperties', + 'ScraperScrapeConfiguration', + 'ScraperSource', + 'ScraperSourceEksConfigurationProperties', 'WorkspaceLoggingConfiguration', ] +@pulumi.output_type +class ScraperDestination(dict): + """ + Scraper metrics destination + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "ampConfiguration": + suggest = "amp_configuration" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ScraperDestination. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ScraperDestination.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ScraperDestination.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + amp_configuration: Optional['outputs.ScraperDestinationAmpConfigurationProperties'] = None): + """ + Scraper metrics destination + :param 'ScraperDestinationAmpConfigurationProperties' amp_configuration: Configuration for Amazon Managed Prometheus metrics destination + """ + if amp_configuration is not None: + pulumi.set(__self__, "amp_configuration", amp_configuration) + + @property + @pulumi.getter(name="ampConfiguration") + def amp_configuration(self) -> Optional['outputs.ScraperDestinationAmpConfigurationProperties']: + """ + Configuration for Amazon Managed Prometheus metrics destination + """ + return pulumi.get(self, "amp_configuration") + + +@pulumi.output_type +class ScraperDestinationAmpConfigurationProperties(dict): + """ + Configuration for Amazon Managed Prometheus metrics destination + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "workspaceArn": + suggest = "workspace_arn" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ScraperDestinationAmpConfigurationProperties. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ScraperDestinationAmpConfigurationProperties.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ScraperDestinationAmpConfigurationProperties.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + workspace_arn: str): + """ + Configuration for Amazon Managed Prometheus metrics destination + :param str workspace_arn: ARN of an Amazon Managed Prometheus workspace + """ + pulumi.set(__self__, "workspace_arn", workspace_arn) + + @property + @pulumi.getter(name="workspaceArn") + def workspace_arn(self) -> str: + """ + ARN of an Amazon Managed Prometheus workspace + """ + return pulumi.get(self, "workspace_arn") + + +@pulumi.output_type +class ScraperScrapeConfiguration(dict): + """ + Scraper configuration + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "configurationBlob": + suggest = "configuration_blob" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ScraperScrapeConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ScraperScrapeConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ScraperScrapeConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + configuration_blob: Optional[str] = None): + """ + Scraper configuration + :param str configuration_blob: Prometheus compatible scrape configuration in base64 encoded blob format + """ + if configuration_blob is not None: + pulumi.set(__self__, "configuration_blob", configuration_blob) + + @property + @pulumi.getter(name="configurationBlob") + def configuration_blob(self) -> Optional[str]: + """ + Prometheus compatible scrape configuration in base64 encoded blob format + """ + return pulumi.get(self, "configuration_blob") + + +@pulumi.output_type +class ScraperSource(dict): + """ + Scraper metrics source + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "eksConfiguration": + suggest = "eks_configuration" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ScraperSource. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ScraperSource.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ScraperSource.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + eks_configuration: Optional['outputs.ScraperSourceEksConfigurationProperties'] = None): + """ + Scraper metrics source + :param 'ScraperSourceEksConfigurationProperties' eks_configuration: Configuration for EKS metrics source + """ + if eks_configuration is not None: + pulumi.set(__self__, "eks_configuration", eks_configuration) + + @property + @pulumi.getter(name="eksConfiguration") + def eks_configuration(self) -> Optional['outputs.ScraperSourceEksConfigurationProperties']: + """ + Configuration for EKS metrics source + """ + return pulumi.get(self, "eks_configuration") + + +@pulumi.output_type +class ScraperSourceEksConfigurationProperties(dict): + """ + Configuration for EKS metrics source + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "clusterArn": + suggest = "cluster_arn" + elif key == "subnetIds": + suggest = "subnet_ids" + elif key == "securityGroupIds": + suggest = "security_group_ids" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ScraperSourceEksConfigurationProperties. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ScraperSourceEksConfigurationProperties.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ScraperSourceEksConfigurationProperties.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + cluster_arn: str, + subnet_ids: Sequence[str], + security_group_ids: Optional[Sequence[str]] = None): + """ + Configuration for EKS metrics source + :param str cluster_arn: ARN of an EKS cluster + :param Sequence[str] subnet_ids: List of subnet IDs + :param Sequence[str] security_group_ids: List of security group IDs + """ + pulumi.set(__self__, "cluster_arn", cluster_arn) + pulumi.set(__self__, "subnet_ids", subnet_ids) + if security_group_ids is not None: + pulumi.set(__self__, "security_group_ids", security_group_ids) + + @property + @pulumi.getter(name="clusterArn") + def cluster_arn(self) -> str: + """ + ARN of an EKS cluster + """ + return pulumi.get(self, "cluster_arn") + + @property + @pulumi.getter(name="subnetIds") + def subnet_ids(self) -> Sequence[str]: + """ + List of subnet IDs + """ + return pulumi.get(self, "subnet_ids") + + @property + @pulumi.getter(name="securityGroupIds") + def security_group_ids(self) -> Optional[Sequence[str]]: + """ + List of security group IDs + """ + return pulumi.get(self, "security_group_ids") + + @pulumi.output_type class WorkspaceLoggingConfiguration(dict): """ diff --git a/sdk/python/pulumi_aws_native/aps/scraper.py b/sdk/python/pulumi_aws_native/aps/scraper.py new file mode 100644 index 0000000000..c4a9865514 --- /dev/null +++ b/sdk/python/pulumi_aws_native/aps/scraper.py @@ -0,0 +1,250 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from .. import _inputs as _root_inputs +from .. import outputs as _root_outputs +from ._inputs import * + +__all__ = ['ScraperArgs', 'Scraper'] + +@pulumi.input_type +class ScraperArgs: + def __init__(__self__, *, + destination: pulumi.Input['ScraperDestinationArgs'], + scrape_configuration: pulumi.Input['ScraperScrapeConfigurationArgs'], + source: pulumi.Input['ScraperSourceArgs'], + alias: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None): + """ + The set of arguments for constructing a Scraper resource. + :param pulumi.Input[str] alias: Scraper alias. + :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: An array of key-value pairs to apply to this resource. + """ + pulumi.set(__self__, "destination", destination) + pulumi.set(__self__, "scrape_configuration", scrape_configuration) + pulumi.set(__self__, "source", source) + if alias is not None: + pulumi.set(__self__, "alias", alias) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter + def destination(self) -> pulumi.Input['ScraperDestinationArgs']: + return pulumi.get(self, "destination") + + @destination.setter + def destination(self, value: pulumi.Input['ScraperDestinationArgs']): + pulumi.set(self, "destination", value) + + @property + @pulumi.getter(name="scrapeConfiguration") + def scrape_configuration(self) -> pulumi.Input['ScraperScrapeConfigurationArgs']: + return pulumi.get(self, "scrape_configuration") + + @scrape_configuration.setter + def scrape_configuration(self, value: pulumi.Input['ScraperScrapeConfigurationArgs']): + pulumi.set(self, "scrape_configuration", value) + + @property + @pulumi.getter + def source(self) -> pulumi.Input['ScraperSourceArgs']: + return pulumi.get(self, "source") + + @source.setter + def source(self, value: pulumi.Input['ScraperSourceArgs']): + pulumi.set(self, "source", value) + + @property + @pulumi.getter + def alias(self) -> Optional[pulumi.Input[str]]: + """ + Scraper alias. + """ + return pulumi.get(self, "alias") + + @alias.setter + def alias(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "alias", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]: + """ + An array of key-value pairs to apply to this resource. + """ + 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 Scraper(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + alias: Optional[pulumi.Input[str]] = None, + destination: Optional[pulumi.Input[pulumi.InputType['ScraperDestinationArgs']]] = None, + scrape_configuration: Optional[pulumi.Input[pulumi.InputType['ScraperScrapeConfigurationArgs']]] = None, + source: Optional[pulumi.Input[pulumi.InputType['ScraperSourceArgs']]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, + __props__=None): + """ + Resource Type definition for AWS::APS::Scraper + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] alias: Scraper alias. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]] tags: An array of key-value pairs to apply to this resource. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ScraperArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource Type definition for AWS::APS::Scraper + + :param str resource_name: The name of the resource. + :param ScraperArgs 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(ScraperArgs, 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, + alias: Optional[pulumi.Input[str]] = None, + destination: Optional[pulumi.Input[pulumi.InputType['ScraperDestinationArgs']]] = None, + scrape_configuration: Optional[pulumi.Input[pulumi.InputType['ScraperScrapeConfigurationArgs']]] = None, + source: Optional[pulumi.Input[pulumi.InputType['ScraperSourceArgs']]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = 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__ = ScraperArgs.__new__(ScraperArgs) + + __props__.__dict__["alias"] = alias + if destination is None and not opts.urn: + raise TypeError("Missing required property 'destination'") + __props__.__dict__["destination"] = destination + if scrape_configuration is None and not opts.urn: + raise TypeError("Missing required property 'scrape_configuration'") + __props__.__dict__["scrape_configuration"] = scrape_configuration + if source is None and not opts.urn: + raise TypeError("Missing required property 'source'") + __props__.__dict__["source"] = source + __props__.__dict__["tags"] = tags + __props__.__dict__["arn"] = None + __props__.__dict__["role_arn"] = None + __props__.__dict__["scraper_id"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["alias", "destination", "scrapeConfiguration", "source"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(Scraper, __self__).__init__( + 'aws-native:aps:Scraper', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'Scraper': + """ + Get an existing Scraper 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__ = ScraperArgs.__new__(ScraperArgs) + + __props__.__dict__["alias"] = None + __props__.__dict__["arn"] = None + __props__.__dict__["destination"] = None + __props__.__dict__["role_arn"] = None + __props__.__dict__["scrape_configuration"] = None + __props__.__dict__["scraper_id"] = None + __props__.__dict__["source"] = None + __props__.__dict__["tags"] = None + return Scraper(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def alias(self) -> pulumi.Output[Optional[str]]: + """ + Scraper alias. + """ + return pulumi.get(self, "alias") + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + Scraper ARN. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter + def destination(self) -> pulumi.Output['outputs.ScraperDestination']: + return pulumi.get(self, "destination") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> pulumi.Output[str]: + """ + IAM role ARN for the scraper. + """ + return pulumi.get(self, "role_arn") + + @property + @pulumi.getter(name="scrapeConfiguration") + def scrape_configuration(self) -> pulumi.Output['outputs.ScraperScrapeConfiguration']: + return pulumi.get(self, "scrape_configuration") + + @property + @pulumi.getter(name="scraperId") + def scraper_id(self) -> pulumi.Output[str]: + """ + Required to identify a specific scraper. + """ + return pulumi.get(self, "scraper_id") + + @property + @pulumi.getter + def source(self) -> pulumi.Output['outputs.ScraperSource']: + return pulumi.get(self, "source") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: + """ + An array of key-value pairs to apply to this resource. + """ + return pulumi.get(self, "tags") + diff --git a/sdk/python/pulumi_aws_native/bedrock/__init__.py b/sdk/python/pulumi_aws_native/bedrock/__init__.py new file mode 100644 index 0000000000..6f0f6d8e2d --- /dev/null +++ b/sdk/python/pulumi_aws_native/bedrock/__init__.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 .. import _utilities +import typing +# Export this package's modules as members: +from ._enums import * +from .agent import * +from .agent_alias import * +from .get_agent import * +from .get_agent_alias import * +from ._inputs import * +from . import outputs diff --git a/sdk/python/pulumi_aws_native/bedrock/_enums.py b/sdk/python/pulumi_aws_native/bedrock/_enums.py new file mode 100644 index 0000000000..df5c2abffc --- /dev/null +++ b/sdk/python/pulumi_aws_native/bedrock/_enums.py @@ -0,0 +1,90 @@ +# 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__ = [ + 'AgentActionGroupSignature', + 'AgentActionGroupState', + 'AgentAliasStatus', + 'AgentCreationMode', + 'AgentKnowledgeBaseState', + 'AgentPromptState', + 'AgentPromptType', + 'AgentStatus', +] + + +class AgentActionGroupSignature(str, Enum): + """ + Action Group Signature for a BuiltIn Action + """ + AMAZON_USER_INPUT = "AMAZON.UserInput" + + +class AgentActionGroupState(str, Enum): + """ + State of the action group + """ + ENABLED = "ENABLED" + DISABLED = "DISABLED" + + +class AgentAliasStatus(str, Enum): + """ + The statuses an Agent Alias can be in. + """ + CREATING = "CREATING" + PREPARED = "PREPARED" + FAILED = "FAILED" + UPDATING = "UPDATING" + DELETING = "DELETING" + + +class AgentCreationMode(str, Enum): + """ + Creation Mode for Prompt Configuration. + """ + DEFAULT = "DEFAULT" + OVERRIDDEN = "OVERRIDDEN" + + +class AgentKnowledgeBaseState(str, Enum): + """ + State of the knowledge base; whether it is enabled or disabled + """ + ENABLED = "ENABLED" + DISABLED = "DISABLED" + + +class AgentPromptState(str, Enum): + """ + Prompt State. + """ + ENABLED = "ENABLED" + DISABLED = "DISABLED" + + +class AgentPromptType(str, Enum): + """ + Prompt Type. + """ + PRE_PROCESSING = "PRE_PROCESSING" + ORCHESTRATION = "ORCHESTRATION" + POST_PROCESSING = "POST_PROCESSING" + KNOWLEDGE_BASE_RESPONSE_GENERATION = "KNOWLEDGE_BASE_RESPONSE_GENERATION" + + +class AgentStatus(str, Enum): + """ + Schema Type for Action APIs. + """ + CREATING = "CREATING" + PREPARING = "PREPARING" + PREPARED = "PREPARED" + NOT_PREPARED = "NOT_PREPARED" + DELETING = "DELETING" + FAILED = "FAILED" + VERSIONING = "VERSIONING" + UPDATING = "UPDATING" diff --git a/sdk/python/pulumi_aws_native/bedrock/_inputs.py b/sdk/python/pulumi_aws_native/bedrock/_inputs.py new file mode 100644 index 0000000000..4e67db9e40 --- /dev/null +++ b/sdk/python/pulumi_aws_native/bedrock/_inputs.py @@ -0,0 +1,516 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from ._enums import * + +__all__ = [ + 'AgentActionGroupExecutorArgs', + 'AgentActionGroupArgs', + 'AgentAliasRoutingConfigurationListItemArgs', + 'AgentApiSchema0PropertiesArgs', + 'AgentApiSchema1PropertiesArgs', + 'AgentInferenceConfigurationArgs', + 'AgentKnowledgeBaseArgs', + 'AgentPromptConfigurationArgs', + 'AgentPromptOverrideConfigurationArgs', + 'AgentS3IdentifierArgs', +] + +@pulumi.input_type +class AgentActionGroupExecutorArgs: + def __init__(__self__, *, + lambda_: pulumi.Input[str]): + """ + :param pulumi.Input[str] lambda_: ARN of a Lambda. + """ + pulumi.set(__self__, "lambda_", lambda_) + + @property + @pulumi.getter(name="lambda") + def lambda_(self) -> pulumi.Input[str]: + """ + ARN of a Lambda. + """ + return pulumi.get(self, "lambda_") + + @lambda_.setter + def lambda_(self, value: pulumi.Input[str]): + pulumi.set(self, "lambda_", value) + + +@pulumi.input_type +class AgentActionGroupArgs: + def __init__(__self__, *, + action_group_name: pulumi.Input[str], + action_group_executor: Optional[pulumi.Input['AgentActionGroupExecutorArgs']] = None, + action_group_state: Optional[pulumi.Input['AgentActionGroupState']] = None, + api_schema: Optional[pulumi.Input[Union['AgentApiSchema0PropertiesArgs', 'AgentApiSchema1PropertiesArgs']]] = None, + description: Optional[pulumi.Input[str]] = None, + parent_action_group_signature: Optional[pulumi.Input['AgentActionGroupSignature']] = None, + skip_resource_in_use_check_on_delete: Optional[pulumi.Input[bool]] = None): + """ + Contains the information of an Agent Action Group + :param pulumi.Input[str] action_group_name: Name of the action group + :param pulumi.Input[str] description: Description of action group + :param pulumi.Input[bool] skip_resource_in_use_check_on_delete: Specifies whether to allow deleting action group while it is in use. + """ + pulumi.set(__self__, "action_group_name", action_group_name) + if action_group_executor is not None: + pulumi.set(__self__, "action_group_executor", action_group_executor) + if action_group_state is not None: + pulumi.set(__self__, "action_group_state", action_group_state) + if api_schema is not None: + pulumi.set(__self__, "api_schema", api_schema) + if description is not None: + pulumi.set(__self__, "description", description) + if parent_action_group_signature is not None: + pulumi.set(__self__, "parent_action_group_signature", parent_action_group_signature) + if skip_resource_in_use_check_on_delete is not None: + pulumi.set(__self__, "skip_resource_in_use_check_on_delete", skip_resource_in_use_check_on_delete) + + @property + @pulumi.getter(name="actionGroupName") + def action_group_name(self) -> pulumi.Input[str]: + """ + Name of the action group + """ + return pulumi.get(self, "action_group_name") + + @action_group_name.setter + def action_group_name(self, value: pulumi.Input[str]): + pulumi.set(self, "action_group_name", value) + + @property + @pulumi.getter(name="actionGroupExecutor") + def action_group_executor(self) -> Optional[pulumi.Input['AgentActionGroupExecutorArgs']]: + return pulumi.get(self, "action_group_executor") + + @action_group_executor.setter + def action_group_executor(self, value: Optional[pulumi.Input['AgentActionGroupExecutorArgs']]): + pulumi.set(self, "action_group_executor", value) + + @property + @pulumi.getter(name="actionGroupState") + def action_group_state(self) -> Optional[pulumi.Input['AgentActionGroupState']]: + return pulumi.get(self, "action_group_state") + + @action_group_state.setter + def action_group_state(self, value: Optional[pulumi.Input['AgentActionGroupState']]): + pulumi.set(self, "action_group_state", value) + + @property + @pulumi.getter(name="apiSchema") + def api_schema(self) -> Optional[pulumi.Input[Union['AgentApiSchema0PropertiesArgs', 'AgentApiSchema1PropertiesArgs']]]: + return pulumi.get(self, "api_schema") + + @api_schema.setter + def api_schema(self, value: Optional[pulumi.Input[Union['AgentApiSchema0PropertiesArgs', 'AgentApiSchema1PropertiesArgs']]]): + pulumi.set(self, "api_schema", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of action group + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="parentActionGroupSignature") + def parent_action_group_signature(self) -> Optional[pulumi.Input['AgentActionGroupSignature']]: + return pulumi.get(self, "parent_action_group_signature") + + @parent_action_group_signature.setter + def parent_action_group_signature(self, value: Optional[pulumi.Input['AgentActionGroupSignature']]): + pulumi.set(self, "parent_action_group_signature", value) + + @property + @pulumi.getter(name="skipResourceInUseCheckOnDelete") + def skip_resource_in_use_check_on_delete(self) -> Optional[pulumi.Input[bool]]: + """ + Specifies whether to allow deleting action group while it is in use. + """ + return pulumi.get(self, "skip_resource_in_use_check_on_delete") + + @skip_resource_in_use_check_on_delete.setter + def skip_resource_in_use_check_on_delete(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "skip_resource_in_use_check_on_delete", value) + + +@pulumi.input_type +class AgentAliasRoutingConfigurationListItemArgs: + def __init__(__self__, *, + agent_version: pulumi.Input[str]): + """ + Details about the routing configuration for an Agent alias. + :param pulumi.Input[str] agent_version: Agent Version. + """ + pulumi.set(__self__, "agent_version", agent_version) + + @property + @pulumi.getter(name="agentVersion") + def agent_version(self) -> pulumi.Input[str]: + """ + Agent Version. + """ + return pulumi.get(self, "agent_version") + + @agent_version.setter + def agent_version(self, value: pulumi.Input[str]): + pulumi.set(self, "agent_version", value) + + +@pulumi.input_type +class AgentApiSchema0PropertiesArgs: + def __init__(__self__, *, + s3: pulumi.Input['AgentS3IdentifierArgs']): + """ + Contains information about the API Schema for the Action Group + """ + pulumi.set(__self__, "s3", s3) + + @property + @pulumi.getter + def s3(self) -> pulumi.Input['AgentS3IdentifierArgs']: + return pulumi.get(self, "s3") + + @s3.setter + def s3(self, value: pulumi.Input['AgentS3IdentifierArgs']): + pulumi.set(self, "s3", value) + + +@pulumi.input_type +class AgentApiSchema1PropertiesArgs: + def __init__(__self__, *, + payload: pulumi.Input[str]): + """ + Contains information about the API Schema for the Action Group + :param pulumi.Input[str] payload: String OpenAPI Payload + """ + pulumi.set(__self__, "payload", payload) + + @property + @pulumi.getter + def payload(self) -> pulumi.Input[str]: + """ + String OpenAPI Payload + """ + return pulumi.get(self, "payload") + + @payload.setter + def payload(self, value: pulumi.Input[str]): + pulumi.set(self, "payload", value) + + +@pulumi.input_type +class AgentInferenceConfigurationArgs: + def __init__(__self__, *, + maximum_length: Optional[pulumi.Input[float]] = None, + stop_sequences: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + temperature: Optional[pulumi.Input[float]] = None, + top_k: Optional[pulumi.Input[float]] = None, + top_p: Optional[pulumi.Input[float]] = None): + """ + Configuration for inference in prompt configuration + :param pulumi.Input[float] maximum_length: Maximum length of output + :param pulumi.Input[Sequence[pulumi.Input[str]]] stop_sequences: List of stop sequences + :param pulumi.Input[float] temperature: Controls randomness, higher values increase diversity + :param pulumi.Input[float] top_k: Sample from the k most likely next tokens + :param pulumi.Input[float] top_p: Cumulative probability cutoff for token selection + """ + if maximum_length is not None: + pulumi.set(__self__, "maximum_length", maximum_length) + if stop_sequences is not None: + pulumi.set(__self__, "stop_sequences", stop_sequences) + if temperature is not None: + pulumi.set(__self__, "temperature", temperature) + if top_k is not None: + pulumi.set(__self__, "top_k", top_k) + if top_p is not None: + pulumi.set(__self__, "top_p", top_p) + + @property + @pulumi.getter(name="maximumLength") + def maximum_length(self) -> Optional[pulumi.Input[float]]: + """ + Maximum length of output + """ + return pulumi.get(self, "maximum_length") + + @maximum_length.setter + def maximum_length(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "maximum_length", value) + + @property + @pulumi.getter(name="stopSequences") + def stop_sequences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of stop sequences + """ + return pulumi.get(self, "stop_sequences") + + @stop_sequences.setter + def stop_sequences(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "stop_sequences", value) + + @property + @pulumi.getter + def temperature(self) -> Optional[pulumi.Input[float]]: + """ + Controls randomness, higher values increase diversity + """ + return pulumi.get(self, "temperature") + + @temperature.setter + def temperature(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "temperature", value) + + @property + @pulumi.getter(name="topK") + def top_k(self) -> Optional[pulumi.Input[float]]: + """ + Sample from the k most likely next tokens + """ + return pulumi.get(self, "top_k") + + @top_k.setter + def top_k(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "top_k", value) + + @property + @pulumi.getter(name="topP") + def top_p(self) -> Optional[pulumi.Input[float]]: + """ + Cumulative probability cutoff for token selection + """ + return pulumi.get(self, "top_p") + + @top_p.setter + def top_p(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "top_p", value) + + +@pulumi.input_type +class AgentKnowledgeBaseArgs: + def __init__(__self__, *, + description: pulumi.Input[str], + knowledge_base_id: pulumi.Input[str], + knowledge_base_state: Optional[pulumi.Input['AgentKnowledgeBaseState']] = None): + """ + Agent Knowledge Base + :param pulumi.Input[str] description: Description of the Resource. + :param pulumi.Input[str] knowledge_base_id: Identifier for a resource. + """ + pulumi.set(__self__, "description", description) + pulumi.set(__self__, "knowledge_base_id", knowledge_base_id) + if knowledge_base_state is not None: + pulumi.set(__self__, "knowledge_base_state", knowledge_base_state) + + @property + @pulumi.getter + def description(self) -> pulumi.Input[str]: + """ + Description of the Resource. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: pulumi.Input[str]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="knowledgeBaseId") + def knowledge_base_id(self) -> pulumi.Input[str]: + """ + Identifier for a resource. + """ + return pulumi.get(self, "knowledge_base_id") + + @knowledge_base_id.setter + def knowledge_base_id(self, value: pulumi.Input[str]): + pulumi.set(self, "knowledge_base_id", value) + + @property + @pulumi.getter(name="knowledgeBaseState") + def knowledge_base_state(self) -> Optional[pulumi.Input['AgentKnowledgeBaseState']]: + return pulumi.get(self, "knowledge_base_state") + + @knowledge_base_state.setter + def knowledge_base_state(self, value: Optional[pulumi.Input['AgentKnowledgeBaseState']]): + pulumi.set(self, "knowledge_base_state", value) + + +@pulumi.input_type +class AgentPromptConfigurationArgs: + def __init__(__self__, *, + base_prompt_template: Optional[pulumi.Input[str]] = None, + inference_configuration: Optional[pulumi.Input['AgentInferenceConfigurationArgs']] = None, + parser_mode: Optional[pulumi.Input['AgentCreationMode']] = None, + prompt_creation_mode: Optional[pulumi.Input['AgentCreationMode']] = None, + prompt_state: Optional[pulumi.Input['AgentPromptState']] = None, + prompt_type: Optional[pulumi.Input['AgentPromptType']] = None): + """ + BasePromptConfiguration per Prompt Type. + :param pulumi.Input[str] base_prompt_template: Base Prompt Template. + """ + if base_prompt_template is not None: + pulumi.set(__self__, "base_prompt_template", base_prompt_template) + if inference_configuration is not None: + pulumi.set(__self__, "inference_configuration", inference_configuration) + if parser_mode is not None: + pulumi.set(__self__, "parser_mode", parser_mode) + if prompt_creation_mode is not None: + pulumi.set(__self__, "prompt_creation_mode", prompt_creation_mode) + if prompt_state is not None: + pulumi.set(__self__, "prompt_state", prompt_state) + if prompt_type is not None: + pulumi.set(__self__, "prompt_type", prompt_type) + + @property + @pulumi.getter(name="basePromptTemplate") + def base_prompt_template(self) -> Optional[pulumi.Input[str]]: + """ + Base Prompt Template. + """ + return pulumi.get(self, "base_prompt_template") + + @base_prompt_template.setter + def base_prompt_template(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "base_prompt_template", value) + + @property + @pulumi.getter(name="inferenceConfiguration") + def inference_configuration(self) -> Optional[pulumi.Input['AgentInferenceConfigurationArgs']]: + return pulumi.get(self, "inference_configuration") + + @inference_configuration.setter + def inference_configuration(self, value: Optional[pulumi.Input['AgentInferenceConfigurationArgs']]): + pulumi.set(self, "inference_configuration", value) + + @property + @pulumi.getter(name="parserMode") + def parser_mode(self) -> Optional[pulumi.Input['AgentCreationMode']]: + return pulumi.get(self, "parser_mode") + + @parser_mode.setter + def parser_mode(self, value: Optional[pulumi.Input['AgentCreationMode']]): + pulumi.set(self, "parser_mode", value) + + @property + @pulumi.getter(name="promptCreationMode") + def prompt_creation_mode(self) -> Optional[pulumi.Input['AgentCreationMode']]: + return pulumi.get(self, "prompt_creation_mode") + + @prompt_creation_mode.setter + def prompt_creation_mode(self, value: Optional[pulumi.Input['AgentCreationMode']]): + pulumi.set(self, "prompt_creation_mode", value) + + @property + @pulumi.getter(name="promptState") + def prompt_state(self) -> Optional[pulumi.Input['AgentPromptState']]: + return pulumi.get(self, "prompt_state") + + @prompt_state.setter + def prompt_state(self, value: Optional[pulumi.Input['AgentPromptState']]): + pulumi.set(self, "prompt_state", value) + + @property + @pulumi.getter(name="promptType") + def prompt_type(self) -> Optional[pulumi.Input['AgentPromptType']]: + return pulumi.get(self, "prompt_type") + + @prompt_type.setter + def prompt_type(self, value: Optional[pulumi.Input['AgentPromptType']]): + pulumi.set(self, "prompt_type", value) + + +@pulumi.input_type +class AgentPromptOverrideConfigurationArgs: + def __init__(__self__, *, + prompt_configurations: pulumi.Input[Sequence[pulumi.Input['AgentPromptConfigurationArgs']]], + override_lambda: Optional[pulumi.Input[str]] = None): + """ + Configuration for prompt override. + :param pulumi.Input[Sequence[pulumi.Input['AgentPromptConfigurationArgs']]] prompt_configurations: List of BasePromptConfiguration + :param pulumi.Input[str] override_lambda: ARN of a Lambda. + """ + pulumi.set(__self__, "prompt_configurations", prompt_configurations) + if override_lambda is not None: + pulumi.set(__self__, "override_lambda", override_lambda) + + @property + @pulumi.getter(name="promptConfigurations") + def prompt_configurations(self) -> pulumi.Input[Sequence[pulumi.Input['AgentPromptConfigurationArgs']]]: + """ + List of BasePromptConfiguration + """ + return pulumi.get(self, "prompt_configurations") + + @prompt_configurations.setter + def prompt_configurations(self, value: pulumi.Input[Sequence[pulumi.Input['AgentPromptConfigurationArgs']]]): + pulumi.set(self, "prompt_configurations", value) + + @property + @pulumi.getter(name="overrideLambda") + def override_lambda(self) -> Optional[pulumi.Input[str]]: + """ + ARN of a Lambda. + """ + return pulumi.get(self, "override_lambda") + + @override_lambda.setter + def override_lambda(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "override_lambda", value) + + +@pulumi.input_type +class AgentS3IdentifierArgs: + def __init__(__self__, *, + s3_bucket_name: Optional[pulumi.Input[str]] = None, + s3_object_key: Optional[pulumi.Input[str]] = None): + """ + The identifier for the S3 resource. + :param pulumi.Input[str] s3_bucket_name: A bucket in S3. + :param pulumi.Input[str] s3_object_key: A object key in S3. + """ + if s3_bucket_name is not None: + pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) + if s3_object_key is not None: + pulumi.set(__self__, "s3_object_key", s3_object_key) + + @property + @pulumi.getter(name="s3BucketName") + def s3_bucket_name(self) -> Optional[pulumi.Input[str]]: + """ + A bucket in S3. + """ + return pulumi.get(self, "s3_bucket_name") + + @s3_bucket_name.setter + def s3_bucket_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "s3_bucket_name", value) + + @property + @pulumi.getter(name="s3ObjectKey") + def s3_object_key(self) -> Optional[pulumi.Input[str]]: + """ + A object key in S3. + """ + return pulumi.get(self, "s3_object_key") + + @s3_object_key.setter + def s3_object_key(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "s3_object_key", value) + + diff --git a/sdk/python/pulumi_aws_native/bedrock/agent.py b/sdk/python/pulumi_aws_native/bedrock/agent.py new file mode 100644 index 0000000000..b43b2c331c --- /dev/null +++ b/sdk/python/pulumi_aws_native/bedrock/agent.py @@ -0,0 +1,541 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._enums import * +from ._inputs import * + +__all__ = ['AgentArgs', 'Agent'] + +@pulumi.input_type +class AgentArgs: + def __init__(__self__, *, + action_groups: Optional[pulumi.Input[Sequence[pulumi.Input['AgentActionGroupArgs']]]] = None, + agent_name: Optional[pulumi.Input[str]] = None, + agent_resource_role_arn: Optional[pulumi.Input[str]] = None, + auto_prepare: Optional[pulumi.Input[bool]] = None, + customer_encryption_key_arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + foundation_model: Optional[pulumi.Input[str]] = None, + idle_session_ttl_in_seconds: Optional[pulumi.Input[float]] = None, + instruction: Optional[pulumi.Input[str]] = None, + knowledge_bases: Optional[pulumi.Input[Sequence[pulumi.Input['AgentKnowledgeBaseArgs']]]] = None, + prompt_override_configuration: Optional[pulumi.Input['AgentPromptOverrideConfigurationArgs']] = None, + skip_resource_in_use_check_on_delete: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + """ + The set of arguments for constructing a Agent resource. + :param pulumi.Input[Sequence[pulumi.Input['AgentActionGroupArgs']]] action_groups: List of ActionGroups + :param pulumi.Input[str] agent_name: Name for a resource. + :param pulumi.Input[str] agent_resource_role_arn: ARN of a IAM role. + :param pulumi.Input[bool] auto_prepare: Specifies whether to automatically prepare after creating or updating the agent. + :param pulumi.Input[str] customer_encryption_key_arn: A KMS key ARN + :param pulumi.Input[str] description: Description of the Resource. + :param pulumi.Input[str] foundation_model: ARN or name of a Bedrock model. + :param pulumi.Input[float] idle_session_ttl_in_seconds: Max Session Time. + :param pulumi.Input[str] instruction: Instruction for the agent. + :param pulumi.Input[Sequence[pulumi.Input['AgentKnowledgeBaseArgs']]] knowledge_bases: List of Agent Knowledge Bases + :param pulumi.Input[bool] skip_resource_in_use_check_on_delete: Specifies whether to allow deleting agent while it is in use. + """ + if action_groups is not None: + pulumi.set(__self__, "action_groups", action_groups) + if agent_name is not None: + pulumi.set(__self__, "agent_name", agent_name) + if agent_resource_role_arn is not None: + pulumi.set(__self__, "agent_resource_role_arn", agent_resource_role_arn) + if auto_prepare is not None: + pulumi.set(__self__, "auto_prepare", auto_prepare) + if customer_encryption_key_arn is not None: + pulumi.set(__self__, "customer_encryption_key_arn", customer_encryption_key_arn) + if description is not None: + pulumi.set(__self__, "description", description) + if foundation_model is not None: + pulumi.set(__self__, "foundation_model", foundation_model) + if idle_session_ttl_in_seconds is not None: + pulumi.set(__self__, "idle_session_ttl_in_seconds", idle_session_ttl_in_seconds) + if instruction is not None: + pulumi.set(__self__, "instruction", instruction) + if knowledge_bases is not None: + pulumi.set(__self__, "knowledge_bases", knowledge_bases) + if prompt_override_configuration is not None: + pulumi.set(__self__, "prompt_override_configuration", prompt_override_configuration) + if skip_resource_in_use_check_on_delete is not None: + pulumi.set(__self__, "skip_resource_in_use_check_on_delete", skip_resource_in_use_check_on_delete) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="actionGroups") + def action_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AgentActionGroupArgs']]]]: + """ + List of ActionGroups + """ + return pulumi.get(self, "action_groups") + + @action_groups.setter + def action_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AgentActionGroupArgs']]]]): + pulumi.set(self, "action_groups", value) + + @property + @pulumi.getter(name="agentName") + def agent_name(self) -> Optional[pulumi.Input[str]]: + """ + Name for a resource. + """ + return pulumi.get(self, "agent_name") + + @agent_name.setter + def agent_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "agent_name", value) + + @property + @pulumi.getter(name="agentResourceRoleArn") + def agent_resource_role_arn(self) -> Optional[pulumi.Input[str]]: + """ + ARN of a IAM role. + """ + return pulumi.get(self, "agent_resource_role_arn") + + @agent_resource_role_arn.setter + def agent_resource_role_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "agent_resource_role_arn", value) + + @property + @pulumi.getter(name="autoPrepare") + def auto_prepare(self) -> Optional[pulumi.Input[bool]]: + """ + Specifies whether to automatically prepare after creating or updating the agent. + """ + return pulumi.get(self, "auto_prepare") + + @auto_prepare.setter + def auto_prepare(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "auto_prepare", value) + + @property + @pulumi.getter(name="customerEncryptionKeyArn") + def customer_encryption_key_arn(self) -> Optional[pulumi.Input[str]]: + """ + A KMS key ARN + """ + return pulumi.get(self, "customer_encryption_key_arn") + + @customer_encryption_key_arn.setter + def customer_encryption_key_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "customer_encryption_key_arn", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of the Resource. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="foundationModel") + def foundation_model(self) -> Optional[pulumi.Input[str]]: + """ + ARN or name of a Bedrock model. + """ + return pulumi.get(self, "foundation_model") + + @foundation_model.setter + def foundation_model(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "foundation_model", value) + + @property + @pulumi.getter(name="idleSessionTtlInSeconds") + def idle_session_ttl_in_seconds(self) -> Optional[pulumi.Input[float]]: + """ + Max Session Time. + """ + return pulumi.get(self, "idle_session_ttl_in_seconds") + + @idle_session_ttl_in_seconds.setter + def idle_session_ttl_in_seconds(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "idle_session_ttl_in_seconds", value) + + @property + @pulumi.getter + def instruction(self) -> Optional[pulumi.Input[str]]: + """ + Instruction for the agent. + """ + return pulumi.get(self, "instruction") + + @instruction.setter + def instruction(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "instruction", value) + + @property + @pulumi.getter(name="knowledgeBases") + def knowledge_bases(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AgentKnowledgeBaseArgs']]]]: + """ + List of Agent Knowledge Bases + """ + return pulumi.get(self, "knowledge_bases") + + @knowledge_bases.setter + def knowledge_bases(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AgentKnowledgeBaseArgs']]]]): + pulumi.set(self, "knowledge_bases", value) + + @property + @pulumi.getter(name="promptOverrideConfiguration") + def prompt_override_configuration(self) -> Optional[pulumi.Input['AgentPromptOverrideConfigurationArgs']]: + return pulumi.get(self, "prompt_override_configuration") + + @prompt_override_configuration.setter + def prompt_override_configuration(self, value: Optional[pulumi.Input['AgentPromptOverrideConfigurationArgs']]): + pulumi.set(self, "prompt_override_configuration", value) + + @property + @pulumi.getter(name="skipResourceInUseCheckOnDelete") + def skip_resource_in_use_check_on_delete(self) -> Optional[pulumi.Input[bool]]: + """ + Specifies whether to allow deleting agent while it is in use. + """ + return pulumi.get(self, "skip_resource_in_use_check_on_delete") + + @skip_resource_in_use_check_on_delete.setter + def skip_resource_in_use_check_on_delete(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "skip_resource_in_use_check_on_delete", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + +class Agent(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + action_groups: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['AgentActionGroupArgs']]]]] = None, + agent_name: Optional[pulumi.Input[str]] = None, + agent_resource_role_arn: Optional[pulumi.Input[str]] = None, + auto_prepare: Optional[pulumi.Input[bool]] = None, + customer_encryption_key_arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + foundation_model: Optional[pulumi.Input[str]] = None, + idle_session_ttl_in_seconds: Optional[pulumi.Input[float]] = None, + instruction: Optional[pulumi.Input[str]] = None, + knowledge_bases: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['AgentKnowledgeBaseArgs']]]]] = None, + prompt_override_configuration: Optional[pulumi.Input[pulumi.InputType['AgentPromptOverrideConfigurationArgs']]] = None, + skip_resource_in_use_check_on_delete: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + __props__=None): + """ + Definition of AWS::Bedrock::Agent Resource Type + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['AgentActionGroupArgs']]]] action_groups: List of ActionGroups + :param pulumi.Input[str] agent_name: Name for a resource. + :param pulumi.Input[str] agent_resource_role_arn: ARN of a IAM role. + :param pulumi.Input[bool] auto_prepare: Specifies whether to automatically prepare after creating or updating the agent. + :param pulumi.Input[str] customer_encryption_key_arn: A KMS key ARN + :param pulumi.Input[str] description: Description of the Resource. + :param pulumi.Input[str] foundation_model: ARN or name of a Bedrock model. + :param pulumi.Input[float] idle_session_ttl_in_seconds: Max Session Time. + :param pulumi.Input[str] instruction: Instruction for the agent. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['AgentKnowledgeBaseArgs']]]] knowledge_bases: List of Agent Knowledge Bases + :param pulumi.Input[bool] skip_resource_in_use_check_on_delete: Specifies whether to allow deleting agent while it is in use. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[AgentArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Definition of AWS::Bedrock::Agent Resource Type + + :param str resource_name: The name of the resource. + :param AgentArgs 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(AgentArgs, 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_groups: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['AgentActionGroupArgs']]]]] = None, + agent_name: Optional[pulumi.Input[str]] = None, + agent_resource_role_arn: Optional[pulumi.Input[str]] = None, + auto_prepare: Optional[pulumi.Input[bool]] = None, + customer_encryption_key_arn: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + foundation_model: Optional[pulumi.Input[str]] = None, + idle_session_ttl_in_seconds: Optional[pulumi.Input[float]] = None, + instruction: Optional[pulumi.Input[str]] = None, + knowledge_bases: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['AgentKnowledgeBaseArgs']]]]] = None, + prompt_override_configuration: Optional[pulumi.Input[pulumi.InputType['AgentPromptOverrideConfigurationArgs']]] = None, + skip_resource_in_use_check_on_delete: Optional[pulumi.Input[bool]] = None, + tags: Optional[pulumi.Input[Mapping[str, 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__ = AgentArgs.__new__(AgentArgs) + + __props__.__dict__["action_groups"] = action_groups + __props__.__dict__["agent_name"] = agent_name + __props__.__dict__["agent_resource_role_arn"] = agent_resource_role_arn + __props__.__dict__["auto_prepare"] = auto_prepare + __props__.__dict__["customer_encryption_key_arn"] = customer_encryption_key_arn + __props__.__dict__["description"] = description + __props__.__dict__["foundation_model"] = foundation_model + __props__.__dict__["idle_session_ttl_in_seconds"] = idle_session_ttl_in_seconds + __props__.__dict__["instruction"] = instruction + __props__.__dict__["knowledge_bases"] = knowledge_bases + __props__.__dict__["prompt_override_configuration"] = prompt_override_configuration + __props__.__dict__["skip_resource_in_use_check_on_delete"] = skip_resource_in_use_check_on_delete + __props__.__dict__["tags"] = tags + __props__.__dict__["agent_arn"] = None + __props__.__dict__["agent_id"] = None + __props__.__dict__["agent_status"] = None + __props__.__dict__["agent_version"] = None + __props__.__dict__["created_at"] = None + __props__.__dict__["failure_reasons"] = None + __props__.__dict__["prepared_at"] = None + __props__.__dict__["recommended_actions"] = None + __props__.__dict__["updated_at"] = None + super(Agent, __self__).__init__( + 'aws-native:bedrock:Agent', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'Agent': + """ + Get an existing Agent 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__ = AgentArgs.__new__(AgentArgs) + + __props__.__dict__["action_groups"] = None + __props__.__dict__["agent_arn"] = None + __props__.__dict__["agent_id"] = None + __props__.__dict__["agent_name"] = None + __props__.__dict__["agent_resource_role_arn"] = None + __props__.__dict__["agent_status"] = None + __props__.__dict__["agent_version"] = None + __props__.__dict__["auto_prepare"] = None + __props__.__dict__["created_at"] = None + __props__.__dict__["customer_encryption_key_arn"] = None + __props__.__dict__["description"] = None + __props__.__dict__["failure_reasons"] = None + __props__.__dict__["foundation_model"] = None + __props__.__dict__["idle_session_ttl_in_seconds"] = None + __props__.__dict__["instruction"] = None + __props__.__dict__["knowledge_bases"] = None + __props__.__dict__["prepared_at"] = None + __props__.__dict__["prompt_override_configuration"] = None + __props__.__dict__["recommended_actions"] = None + __props__.__dict__["skip_resource_in_use_check_on_delete"] = None + __props__.__dict__["tags"] = None + __props__.__dict__["updated_at"] = None + return Agent(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="actionGroups") + def action_groups(self) -> pulumi.Output[Optional[Sequence['outputs.AgentActionGroup']]]: + """ + List of ActionGroups + """ + return pulumi.get(self, "action_groups") + + @property + @pulumi.getter(name="agentArn") + def agent_arn(self) -> pulumi.Output[str]: + """ + Arn representation of the Agent. + """ + return pulumi.get(self, "agent_arn") + + @property + @pulumi.getter(name="agentId") + def agent_id(self) -> pulumi.Output[str]: + """ + Identifier for a resource. + """ + return pulumi.get(self, "agent_id") + + @property + @pulumi.getter(name="agentName") + def agent_name(self) -> pulumi.Output[str]: + """ + Name for a resource. + """ + return pulumi.get(self, "agent_name") + + @property + @pulumi.getter(name="agentResourceRoleArn") + def agent_resource_role_arn(self) -> pulumi.Output[Optional[str]]: + """ + ARN of a IAM role. + """ + return pulumi.get(self, "agent_resource_role_arn") + + @property + @pulumi.getter(name="agentStatus") + def agent_status(self) -> pulumi.Output['AgentStatus']: + return pulumi.get(self, "agent_status") + + @property + @pulumi.getter(name="agentVersion") + def agent_version(self) -> pulumi.Output[str]: + """ + Draft Agent Version. + """ + return pulumi.get(self, "agent_version") + + @property + @pulumi.getter(name="autoPrepare") + def auto_prepare(self) -> pulumi.Output[Optional[bool]]: + """ + Specifies whether to automatically prepare after creating or updating the agent. + """ + return pulumi.get(self, "auto_prepare") + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> pulumi.Output[str]: + """ + Time Stamp. + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter(name="customerEncryptionKeyArn") + def customer_encryption_key_arn(self) -> pulumi.Output[Optional[str]]: + """ + A KMS key ARN + """ + return pulumi.get(self, "customer_encryption_key_arn") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + """ + Description of the Resource. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="failureReasons") + def failure_reasons(self) -> pulumi.Output[Sequence[str]]: + """ + Failure Reasons for Error. + """ + return pulumi.get(self, "failure_reasons") + + @property + @pulumi.getter(name="foundationModel") + def foundation_model(self) -> pulumi.Output[Optional[str]]: + """ + ARN or name of a Bedrock model. + """ + return pulumi.get(self, "foundation_model") + + @property + @pulumi.getter(name="idleSessionTtlInSeconds") + def idle_session_ttl_in_seconds(self) -> pulumi.Output[Optional[float]]: + """ + Max Session Time. + """ + return pulumi.get(self, "idle_session_ttl_in_seconds") + + @property + @pulumi.getter + def instruction(self) -> pulumi.Output[Optional[str]]: + """ + Instruction for the agent. + """ + return pulumi.get(self, "instruction") + + @property + @pulumi.getter(name="knowledgeBases") + def knowledge_bases(self) -> pulumi.Output[Optional[Sequence['outputs.AgentKnowledgeBase']]]: + """ + List of Agent Knowledge Bases + """ + return pulumi.get(self, "knowledge_bases") + + @property + @pulumi.getter(name="preparedAt") + def prepared_at(self) -> pulumi.Output[str]: + """ + Time Stamp. + """ + return pulumi.get(self, "prepared_at") + + @property + @pulumi.getter(name="promptOverrideConfiguration") + def prompt_override_configuration(self) -> pulumi.Output[Optional['outputs.AgentPromptOverrideConfiguration']]: + return pulumi.get(self, "prompt_override_configuration") + + @property + @pulumi.getter(name="recommendedActions") + def recommended_actions(self) -> pulumi.Output[Sequence[str]]: + """ + The recommended actions users can take to resolve an error in failureReasons. + """ + return pulumi.get(self, "recommended_actions") + + @property + @pulumi.getter(name="skipResourceInUseCheckOnDelete") + def skip_resource_in_use_check_on_delete(self) -> pulumi.Output[Optional[bool]]: + """ + Specifies whether to allow deleting agent while it is in use. + """ + return pulumi.get(self, "skip_resource_in_use_check_on_delete") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> pulumi.Output[str]: + """ + Time Stamp. + """ + return pulumi.get(self, "updated_at") + diff --git a/sdk/python/pulumi_aws_native/bedrock/agent_alias.py b/sdk/python/pulumi_aws_native/bedrock/agent_alias.py new file mode 100644 index 0000000000..50d7d0e382 --- /dev/null +++ b/sdk/python/pulumi_aws_native/bedrock/agent_alias.py @@ -0,0 +1,290 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._enums import * +from ._inputs import * + +__all__ = ['AgentAliasArgs', 'AgentAlias'] + +@pulumi.input_type +class AgentAliasArgs: + def __init__(__self__, *, + agent_id: pulumi.Input[str], + agent_alias_name: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + routing_configuration: Optional[pulumi.Input[Sequence[pulumi.Input['AgentAliasRoutingConfigurationListItemArgs']]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + """ + The set of arguments for constructing a AgentAlias resource. + :param pulumi.Input[str] agent_id: Identifier for a resource. + :param pulumi.Input[str] agent_alias_name: Name for a resource. + :param pulumi.Input[str] description: Description of the Resource. + :param pulumi.Input[Sequence[pulumi.Input['AgentAliasRoutingConfigurationListItemArgs']]] routing_configuration: Routing configuration for an Agent alias. + """ + pulumi.set(__self__, "agent_id", agent_id) + if agent_alias_name is not None: + pulumi.set(__self__, "agent_alias_name", agent_alias_name) + if description is not None: + pulumi.set(__self__, "description", description) + if routing_configuration is not None: + pulumi.set(__self__, "routing_configuration", routing_configuration) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="agentId") + def agent_id(self) -> pulumi.Input[str]: + """ + Identifier for a resource. + """ + return pulumi.get(self, "agent_id") + + @agent_id.setter + def agent_id(self, value: pulumi.Input[str]): + pulumi.set(self, "agent_id", value) + + @property + @pulumi.getter(name="agentAliasName") + def agent_alias_name(self) -> Optional[pulumi.Input[str]]: + """ + Name for a resource. + """ + return pulumi.get(self, "agent_alias_name") + + @agent_alias_name.setter + def agent_alias_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "agent_alias_name", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of the Resource. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="routingConfiguration") + def routing_configuration(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AgentAliasRoutingConfigurationListItemArgs']]]]: + """ + Routing configuration for an Agent alias. + """ + return pulumi.get(self, "routing_configuration") + + @routing_configuration.setter + def routing_configuration(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AgentAliasRoutingConfigurationListItemArgs']]]]): + pulumi.set(self, "routing_configuration", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + +class AgentAlias(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + agent_alias_name: Optional[pulumi.Input[str]] = None, + agent_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + routing_configuration: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['AgentAliasRoutingConfigurationListItemArgs']]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + __props__=None): + """ + Definition of AWS::Bedrock::AgentAlias Resource Type + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] agent_alias_name: Name for a resource. + :param pulumi.Input[str] agent_id: Identifier for a resource. + :param pulumi.Input[str] description: Description of the Resource. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['AgentAliasRoutingConfigurationListItemArgs']]]] routing_configuration: Routing configuration for an Agent alias. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: AgentAliasArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Definition of AWS::Bedrock::AgentAlias Resource Type + + :param str resource_name: The name of the resource. + :param AgentAliasArgs 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(AgentAliasArgs, 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, + agent_alias_name: Optional[pulumi.Input[str]] = None, + agent_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + routing_configuration: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['AgentAliasRoutingConfigurationListItemArgs']]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, 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__ = AgentAliasArgs.__new__(AgentAliasArgs) + + __props__.__dict__["agent_alias_name"] = agent_alias_name + if agent_id is None and not opts.urn: + raise TypeError("Missing required property 'agent_id'") + __props__.__dict__["agent_id"] = agent_id + __props__.__dict__["description"] = description + __props__.__dict__["routing_configuration"] = routing_configuration + __props__.__dict__["tags"] = tags + __props__.__dict__["agent_alias_arn"] = None + __props__.__dict__["agent_alias_history_events"] = None + __props__.__dict__["agent_alias_id"] = None + __props__.__dict__["agent_alias_status"] = None + __props__.__dict__["created_at"] = None + __props__.__dict__["updated_at"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["agentId"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(AgentAlias, __self__).__init__( + 'aws-native:bedrock:AgentAlias', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'AgentAlias': + """ + Get an existing AgentAlias 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__ = AgentAliasArgs.__new__(AgentAliasArgs) + + __props__.__dict__["agent_alias_arn"] = None + __props__.__dict__["agent_alias_history_events"] = None + __props__.__dict__["agent_alias_id"] = None + __props__.__dict__["agent_alias_name"] = None + __props__.__dict__["agent_alias_status"] = None + __props__.__dict__["agent_id"] = None + __props__.__dict__["created_at"] = None + __props__.__dict__["description"] = None + __props__.__dict__["routing_configuration"] = None + __props__.__dict__["tags"] = None + __props__.__dict__["updated_at"] = None + return AgentAlias(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="agentAliasArn") + def agent_alias_arn(self) -> pulumi.Output[str]: + """ + Arn representation of the Agent Alias. + """ + return pulumi.get(self, "agent_alias_arn") + + @property + @pulumi.getter(name="agentAliasHistoryEvents") + def agent_alias_history_events(self) -> pulumi.Output[Sequence['outputs.AgentAliasHistoryEvent']]: + """ + The list of history events for an alias for an Agent. + """ + return pulumi.get(self, "agent_alias_history_events") + + @property + @pulumi.getter(name="agentAliasId") + def agent_alias_id(self) -> pulumi.Output[str]: + """ + Id for an Agent Alias generated at the server side. + """ + return pulumi.get(self, "agent_alias_id") + + @property + @pulumi.getter(name="agentAliasName") + def agent_alias_name(self) -> pulumi.Output[str]: + """ + Name for a resource. + """ + return pulumi.get(self, "agent_alias_name") + + @property + @pulumi.getter(name="agentAliasStatus") + def agent_alias_status(self) -> pulumi.Output['AgentAliasStatus']: + return pulumi.get(self, "agent_alias_status") + + @property + @pulumi.getter(name="agentId") + def agent_id(self) -> pulumi.Output[str]: + """ + Identifier for a resource. + """ + return pulumi.get(self, "agent_id") + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> pulumi.Output[str]: + """ + Time Stamp. + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + """ + Description of the Resource. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="routingConfiguration") + def routing_configuration(self) -> pulumi.Output[Optional[Sequence['outputs.AgentAliasRoutingConfigurationListItem']]]: + """ + Routing configuration for an Agent alias. + """ + return pulumi.get(self, "routing_configuration") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> pulumi.Output[str]: + """ + Time Stamp. + """ + return pulumi.get(self, "updated_at") + diff --git a/sdk/python/pulumi_aws_native/bedrock/get_agent.py b/sdk/python/pulumi_aws_native/bedrock/get_agent.py new file mode 100644 index 0000000000..93d0e52bee --- /dev/null +++ b/sdk/python/pulumi_aws_native/bedrock/get_agent.py @@ -0,0 +1,310 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._enums import * + +__all__ = [ + 'GetAgentResult', + 'AwaitableGetAgentResult', + 'get_agent', + 'get_agent_output', +] + +@pulumi.output_type +class GetAgentResult: + def __init__(__self__, action_groups=None, agent_arn=None, agent_id=None, agent_name=None, agent_resource_role_arn=None, agent_status=None, agent_version=None, created_at=None, customer_encryption_key_arn=None, description=None, failure_reasons=None, foundation_model=None, idle_session_ttl_in_seconds=None, instruction=None, knowledge_bases=None, prepared_at=None, prompt_override_configuration=None, recommended_actions=None, tags=None, updated_at=None): + if action_groups and not isinstance(action_groups, list): + raise TypeError("Expected argument 'action_groups' to be a list") + pulumi.set(__self__, "action_groups", action_groups) + if agent_arn and not isinstance(agent_arn, str): + raise TypeError("Expected argument 'agent_arn' to be a str") + pulumi.set(__self__, "agent_arn", agent_arn) + if agent_id and not isinstance(agent_id, str): + raise TypeError("Expected argument 'agent_id' to be a str") + pulumi.set(__self__, "agent_id", agent_id) + if agent_name and not isinstance(agent_name, str): + raise TypeError("Expected argument 'agent_name' to be a str") + pulumi.set(__self__, "agent_name", agent_name) + if agent_resource_role_arn and not isinstance(agent_resource_role_arn, str): + raise TypeError("Expected argument 'agent_resource_role_arn' to be a str") + pulumi.set(__self__, "agent_resource_role_arn", agent_resource_role_arn) + if agent_status and not isinstance(agent_status, str): + raise TypeError("Expected argument 'agent_status' to be a str") + pulumi.set(__self__, "agent_status", agent_status) + if agent_version and not isinstance(agent_version, str): + raise TypeError("Expected argument 'agent_version' to be a str") + pulumi.set(__self__, "agent_version", agent_version) + if created_at and not isinstance(created_at, str): + raise TypeError("Expected argument 'created_at' to be a str") + pulumi.set(__self__, "created_at", created_at) + if customer_encryption_key_arn and not isinstance(customer_encryption_key_arn, str): + raise TypeError("Expected argument 'customer_encryption_key_arn' to be a str") + pulumi.set(__self__, "customer_encryption_key_arn", customer_encryption_key_arn) + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if failure_reasons and not isinstance(failure_reasons, list): + raise TypeError("Expected argument 'failure_reasons' to be a list") + pulumi.set(__self__, "failure_reasons", failure_reasons) + if foundation_model and not isinstance(foundation_model, str): + raise TypeError("Expected argument 'foundation_model' to be a str") + pulumi.set(__self__, "foundation_model", foundation_model) + if idle_session_ttl_in_seconds and not isinstance(idle_session_ttl_in_seconds, float): + raise TypeError("Expected argument 'idle_session_ttl_in_seconds' to be a float") + pulumi.set(__self__, "idle_session_ttl_in_seconds", idle_session_ttl_in_seconds) + if instruction and not isinstance(instruction, str): + raise TypeError("Expected argument 'instruction' to be a str") + pulumi.set(__self__, "instruction", instruction) + if knowledge_bases and not isinstance(knowledge_bases, list): + raise TypeError("Expected argument 'knowledge_bases' to be a list") + pulumi.set(__self__, "knowledge_bases", knowledge_bases) + if prepared_at and not isinstance(prepared_at, str): + raise TypeError("Expected argument 'prepared_at' to be a str") + pulumi.set(__self__, "prepared_at", prepared_at) + if prompt_override_configuration and not isinstance(prompt_override_configuration, dict): + raise TypeError("Expected argument 'prompt_override_configuration' to be a dict") + pulumi.set(__self__, "prompt_override_configuration", prompt_override_configuration) + if recommended_actions and not isinstance(recommended_actions, list): + raise TypeError("Expected argument 'recommended_actions' to be a list") + pulumi.set(__self__, "recommended_actions", recommended_actions) + if tags and not isinstance(tags, dict): + raise TypeError("Expected argument 'tags' to be a dict") + pulumi.set(__self__, "tags", tags) + if updated_at and not isinstance(updated_at, str): + raise TypeError("Expected argument 'updated_at' to be a str") + pulumi.set(__self__, "updated_at", updated_at) + + @property + @pulumi.getter(name="actionGroups") + def action_groups(self) -> Optional[Sequence['outputs.AgentActionGroup']]: + """ + List of ActionGroups + """ + return pulumi.get(self, "action_groups") + + @property + @pulumi.getter(name="agentArn") + def agent_arn(self) -> Optional[str]: + """ + Arn representation of the Agent. + """ + return pulumi.get(self, "agent_arn") + + @property + @pulumi.getter(name="agentId") + def agent_id(self) -> Optional[str]: + """ + Identifier for a resource. + """ + return pulumi.get(self, "agent_id") + + @property + @pulumi.getter(name="agentName") + def agent_name(self) -> Optional[str]: + """ + Name for a resource. + """ + return pulumi.get(self, "agent_name") + + @property + @pulumi.getter(name="agentResourceRoleArn") + def agent_resource_role_arn(self) -> Optional[str]: + """ + ARN of a IAM role. + """ + return pulumi.get(self, "agent_resource_role_arn") + + @property + @pulumi.getter(name="agentStatus") + def agent_status(self) -> Optional['AgentStatus']: + return pulumi.get(self, "agent_status") + + @property + @pulumi.getter(name="agentVersion") + def agent_version(self) -> Optional[str]: + """ + Draft Agent Version. + """ + return pulumi.get(self, "agent_version") + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> Optional[str]: + """ + Time Stamp. + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter(name="customerEncryptionKeyArn") + def customer_encryption_key_arn(self) -> Optional[str]: + """ + A KMS key ARN + """ + return pulumi.get(self, "customer_encryption_key_arn") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + """ + Description of the Resource. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="failureReasons") + def failure_reasons(self) -> Optional[Sequence[str]]: + """ + Failure Reasons for Error. + """ + return pulumi.get(self, "failure_reasons") + + @property + @pulumi.getter(name="foundationModel") + def foundation_model(self) -> Optional[str]: + """ + ARN or name of a Bedrock model. + """ + return pulumi.get(self, "foundation_model") + + @property + @pulumi.getter(name="idleSessionTtlInSeconds") + def idle_session_ttl_in_seconds(self) -> Optional[float]: + """ + Max Session Time. + """ + return pulumi.get(self, "idle_session_ttl_in_seconds") + + @property + @pulumi.getter + def instruction(self) -> Optional[str]: + """ + Instruction for the agent. + """ + return pulumi.get(self, "instruction") + + @property + @pulumi.getter(name="knowledgeBases") + def knowledge_bases(self) -> Optional[Sequence['outputs.AgentKnowledgeBase']]: + """ + List of Agent Knowledge Bases + """ + return pulumi.get(self, "knowledge_bases") + + @property + @pulumi.getter(name="preparedAt") + def prepared_at(self) -> Optional[str]: + """ + Time Stamp. + """ + return pulumi.get(self, "prepared_at") + + @property + @pulumi.getter(name="promptOverrideConfiguration") + def prompt_override_configuration(self) -> Optional['outputs.AgentPromptOverrideConfiguration']: + return pulumi.get(self, "prompt_override_configuration") + + @property + @pulumi.getter(name="recommendedActions") + def recommended_actions(self) -> Optional[Sequence[str]]: + """ + The recommended actions users can take to resolve an error in failureReasons. + """ + return pulumi.get(self, "recommended_actions") + + @property + @pulumi.getter + def tags(self) -> Optional[Mapping[str, str]]: + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> Optional[str]: + """ + Time Stamp. + """ + return pulumi.get(self, "updated_at") + + +class AwaitableGetAgentResult(GetAgentResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetAgentResult( + action_groups=self.action_groups, + agent_arn=self.agent_arn, + agent_id=self.agent_id, + agent_name=self.agent_name, + agent_resource_role_arn=self.agent_resource_role_arn, + agent_status=self.agent_status, + agent_version=self.agent_version, + created_at=self.created_at, + customer_encryption_key_arn=self.customer_encryption_key_arn, + description=self.description, + failure_reasons=self.failure_reasons, + foundation_model=self.foundation_model, + idle_session_ttl_in_seconds=self.idle_session_ttl_in_seconds, + instruction=self.instruction, + knowledge_bases=self.knowledge_bases, + prepared_at=self.prepared_at, + prompt_override_configuration=self.prompt_override_configuration, + recommended_actions=self.recommended_actions, + tags=self.tags, + updated_at=self.updated_at) + + +def get_agent(agent_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetAgentResult: + """ + Definition of AWS::Bedrock::Agent Resource Type + + + :param str agent_id: Identifier for a resource. + """ + __args__ = dict() + __args__['agentId'] = agent_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:bedrock:getAgent', __args__, opts=opts, typ=GetAgentResult).value + + return AwaitableGetAgentResult( + action_groups=pulumi.get(__ret__, 'action_groups'), + agent_arn=pulumi.get(__ret__, 'agent_arn'), + agent_id=pulumi.get(__ret__, 'agent_id'), + agent_name=pulumi.get(__ret__, 'agent_name'), + agent_resource_role_arn=pulumi.get(__ret__, 'agent_resource_role_arn'), + agent_status=pulumi.get(__ret__, 'agent_status'), + agent_version=pulumi.get(__ret__, 'agent_version'), + created_at=pulumi.get(__ret__, 'created_at'), + customer_encryption_key_arn=pulumi.get(__ret__, 'customer_encryption_key_arn'), + description=pulumi.get(__ret__, 'description'), + failure_reasons=pulumi.get(__ret__, 'failure_reasons'), + foundation_model=pulumi.get(__ret__, 'foundation_model'), + idle_session_ttl_in_seconds=pulumi.get(__ret__, 'idle_session_ttl_in_seconds'), + instruction=pulumi.get(__ret__, 'instruction'), + knowledge_bases=pulumi.get(__ret__, 'knowledge_bases'), + prepared_at=pulumi.get(__ret__, 'prepared_at'), + prompt_override_configuration=pulumi.get(__ret__, 'prompt_override_configuration'), + recommended_actions=pulumi.get(__ret__, 'recommended_actions'), + tags=pulumi.get(__ret__, 'tags'), + updated_at=pulumi.get(__ret__, 'updated_at')) + + +@_utilities.lift_output_func(get_agent) +def get_agent_output(agent_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetAgentResult]: + """ + Definition of AWS::Bedrock::Agent Resource Type + + + :param str agent_id: Identifier for a resource. + """ + ... diff --git a/sdk/python/pulumi_aws_native/bedrock/get_agent_alias.py b/sdk/python/pulumi_aws_native/bedrock/get_agent_alias.py new file mode 100644 index 0000000000..62d36139d0 --- /dev/null +++ b/sdk/python/pulumi_aws_native/bedrock/get_agent_alias.py @@ -0,0 +1,188 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._enums import * + +__all__ = [ + 'GetAgentAliasResult', + 'AwaitableGetAgentAliasResult', + 'get_agent_alias', + 'get_agent_alias_output', +] + +@pulumi.output_type +class GetAgentAliasResult: + def __init__(__self__, agent_alias_arn=None, agent_alias_history_events=None, agent_alias_id=None, agent_alias_name=None, agent_alias_status=None, created_at=None, description=None, routing_configuration=None, tags=None, updated_at=None): + if agent_alias_arn and not isinstance(agent_alias_arn, str): + raise TypeError("Expected argument 'agent_alias_arn' to be a str") + pulumi.set(__self__, "agent_alias_arn", agent_alias_arn) + if agent_alias_history_events and not isinstance(agent_alias_history_events, list): + raise TypeError("Expected argument 'agent_alias_history_events' to be a list") + pulumi.set(__self__, "agent_alias_history_events", agent_alias_history_events) + if agent_alias_id and not isinstance(agent_alias_id, str): + raise TypeError("Expected argument 'agent_alias_id' to be a str") + pulumi.set(__self__, "agent_alias_id", agent_alias_id) + if agent_alias_name and not isinstance(agent_alias_name, str): + raise TypeError("Expected argument 'agent_alias_name' to be a str") + pulumi.set(__self__, "agent_alias_name", agent_alias_name) + if agent_alias_status and not isinstance(agent_alias_status, str): + raise TypeError("Expected argument 'agent_alias_status' to be a str") + pulumi.set(__self__, "agent_alias_status", agent_alias_status) + if created_at and not isinstance(created_at, str): + raise TypeError("Expected argument 'created_at' to be a str") + pulumi.set(__self__, "created_at", created_at) + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if routing_configuration and not isinstance(routing_configuration, list): + raise TypeError("Expected argument 'routing_configuration' to be a list") + pulumi.set(__self__, "routing_configuration", routing_configuration) + if tags and not isinstance(tags, dict): + raise TypeError("Expected argument 'tags' to be a dict") + pulumi.set(__self__, "tags", tags) + if updated_at and not isinstance(updated_at, str): + raise TypeError("Expected argument 'updated_at' to be a str") + pulumi.set(__self__, "updated_at", updated_at) + + @property + @pulumi.getter(name="agentAliasArn") + def agent_alias_arn(self) -> Optional[str]: + """ + Arn representation of the Agent Alias. + """ + return pulumi.get(self, "agent_alias_arn") + + @property + @pulumi.getter(name="agentAliasHistoryEvents") + def agent_alias_history_events(self) -> Optional[Sequence['outputs.AgentAliasHistoryEvent']]: + """ + The list of history events for an alias for an Agent. + """ + return pulumi.get(self, "agent_alias_history_events") + + @property + @pulumi.getter(name="agentAliasId") + def agent_alias_id(self) -> Optional[str]: + """ + Id for an Agent Alias generated at the server side. + """ + return pulumi.get(self, "agent_alias_id") + + @property + @pulumi.getter(name="agentAliasName") + def agent_alias_name(self) -> Optional[str]: + """ + Name for a resource. + """ + return pulumi.get(self, "agent_alias_name") + + @property + @pulumi.getter(name="agentAliasStatus") + def agent_alias_status(self) -> Optional['AgentAliasStatus']: + return pulumi.get(self, "agent_alias_status") + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> Optional[str]: + """ + Time Stamp. + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + """ + Description of the Resource. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="routingConfiguration") + def routing_configuration(self) -> Optional[Sequence['outputs.AgentAliasRoutingConfigurationListItem']]: + """ + Routing configuration for an Agent alias. + """ + return pulumi.get(self, "routing_configuration") + + @property + @pulumi.getter + def tags(self) -> Optional[Mapping[str, str]]: + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> Optional[str]: + """ + Time Stamp. + """ + return pulumi.get(self, "updated_at") + + +class AwaitableGetAgentAliasResult(GetAgentAliasResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetAgentAliasResult( + agent_alias_arn=self.agent_alias_arn, + agent_alias_history_events=self.agent_alias_history_events, + agent_alias_id=self.agent_alias_id, + agent_alias_name=self.agent_alias_name, + agent_alias_status=self.agent_alias_status, + created_at=self.created_at, + description=self.description, + routing_configuration=self.routing_configuration, + tags=self.tags, + updated_at=self.updated_at) + + +def get_agent_alias(agent_alias_id: Optional[str] = None, + agent_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetAgentAliasResult: + """ + Definition of AWS::Bedrock::AgentAlias Resource Type + + + :param str agent_alias_id: Id for an Agent Alias generated at the server side. + :param str agent_id: Identifier for a resource. + """ + __args__ = dict() + __args__['agentAliasId'] = agent_alias_id + __args__['agentId'] = agent_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:bedrock:getAgentAlias', __args__, opts=opts, typ=GetAgentAliasResult).value + + return AwaitableGetAgentAliasResult( + agent_alias_arn=pulumi.get(__ret__, 'agent_alias_arn'), + agent_alias_history_events=pulumi.get(__ret__, 'agent_alias_history_events'), + agent_alias_id=pulumi.get(__ret__, 'agent_alias_id'), + agent_alias_name=pulumi.get(__ret__, 'agent_alias_name'), + agent_alias_status=pulumi.get(__ret__, 'agent_alias_status'), + created_at=pulumi.get(__ret__, 'created_at'), + description=pulumi.get(__ret__, 'description'), + routing_configuration=pulumi.get(__ret__, 'routing_configuration'), + tags=pulumi.get(__ret__, 'tags'), + updated_at=pulumi.get(__ret__, 'updated_at')) + + +@_utilities.lift_output_func(get_agent_alias) +def get_agent_alias_output(agent_alias_id: Optional[pulumi.Input[str]] = None, + agent_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetAgentAliasResult]: + """ + Definition of AWS::Bedrock::AgentAlias Resource Type + + + :param str agent_alias_id: Id for an Agent Alias generated at the server side. + :param str agent_id: Identifier for a resource. + """ + ... diff --git a/sdk/python/pulumi_aws_native/bedrock/outputs.py b/sdk/python/pulumi_aws_native/bedrock/outputs.py new file mode 100644 index 0000000000..2a12eafbb5 --- /dev/null +++ b/sdk/python/pulumi_aws_native/bedrock/outputs.py @@ -0,0 +1,665 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._enums import * + +__all__ = [ + 'AgentActionGroup', + 'AgentActionGroupExecutor', + 'AgentAliasHistoryEvent', + 'AgentAliasRoutingConfigurationListItem', + 'AgentApiSchema0Properties', + 'AgentApiSchema1Properties', + 'AgentInferenceConfiguration', + 'AgentKnowledgeBase', + 'AgentPromptConfiguration', + 'AgentPromptOverrideConfiguration', + 'AgentS3Identifier', +] + +@pulumi.output_type +class AgentActionGroup(dict): + """ + Contains the information of an Agent Action Group + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "actionGroupName": + suggest = "action_group_name" + elif key == "actionGroupExecutor": + suggest = "action_group_executor" + elif key == "actionGroupState": + suggest = "action_group_state" + elif key == "apiSchema": + suggest = "api_schema" + elif key == "parentActionGroupSignature": + suggest = "parent_action_group_signature" + elif key == "skipResourceInUseCheckOnDelete": + suggest = "skip_resource_in_use_check_on_delete" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AgentActionGroup. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AgentActionGroup.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AgentActionGroup.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + action_group_name: str, + action_group_executor: Optional['outputs.AgentActionGroupExecutor'] = None, + action_group_state: Optional['AgentActionGroupState'] = None, + api_schema: Optional[Any] = None, + description: Optional[str] = None, + parent_action_group_signature: Optional['AgentActionGroupSignature'] = None, + skip_resource_in_use_check_on_delete: Optional[bool] = None): + """ + Contains the information of an Agent Action Group + :param str action_group_name: Name of the action group + :param str description: Description of action group + :param bool skip_resource_in_use_check_on_delete: Specifies whether to allow deleting action group while it is in use. + """ + pulumi.set(__self__, "action_group_name", action_group_name) + if action_group_executor is not None: + pulumi.set(__self__, "action_group_executor", action_group_executor) + if action_group_state is not None: + pulumi.set(__self__, "action_group_state", action_group_state) + if api_schema is not None: + pulumi.set(__self__, "api_schema", api_schema) + if description is not None: + pulumi.set(__self__, "description", description) + if parent_action_group_signature is not None: + pulumi.set(__self__, "parent_action_group_signature", parent_action_group_signature) + if skip_resource_in_use_check_on_delete is not None: + pulumi.set(__self__, "skip_resource_in_use_check_on_delete", skip_resource_in_use_check_on_delete) + + @property + @pulumi.getter(name="actionGroupName") + def action_group_name(self) -> str: + """ + Name of the action group + """ + return pulumi.get(self, "action_group_name") + + @property + @pulumi.getter(name="actionGroupExecutor") + def action_group_executor(self) -> Optional['outputs.AgentActionGroupExecutor']: + return pulumi.get(self, "action_group_executor") + + @property + @pulumi.getter(name="actionGroupState") + def action_group_state(self) -> Optional['AgentActionGroupState']: + return pulumi.get(self, "action_group_state") + + @property + @pulumi.getter(name="apiSchema") + def api_schema(self) -> Optional[Any]: + return pulumi.get(self, "api_schema") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + """ + Description of action group + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="parentActionGroupSignature") + def parent_action_group_signature(self) -> Optional['AgentActionGroupSignature']: + return pulumi.get(self, "parent_action_group_signature") + + @property + @pulumi.getter(name="skipResourceInUseCheckOnDelete") + def skip_resource_in_use_check_on_delete(self) -> Optional[bool]: + """ + Specifies whether to allow deleting action group while it is in use. + """ + return pulumi.get(self, "skip_resource_in_use_check_on_delete") + + +@pulumi.output_type +class AgentActionGroupExecutor(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "lambda": + suggest = "lambda_" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AgentActionGroupExecutor. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AgentActionGroupExecutor.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AgentActionGroupExecutor.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + lambda_: str): + """ + :param str lambda_: ARN of a Lambda. + """ + pulumi.set(__self__, "lambda_", lambda_) + + @property + @pulumi.getter(name="lambda") + def lambda_(self) -> str: + """ + ARN of a Lambda. + """ + return pulumi.get(self, "lambda_") + + +@pulumi.output_type +class AgentAliasHistoryEvent(dict): + """ + History event for an alias for an Agent. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "endDate": + suggest = "end_date" + elif key == "routingConfiguration": + suggest = "routing_configuration" + elif key == "startDate": + suggest = "start_date" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AgentAliasHistoryEvent. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AgentAliasHistoryEvent.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AgentAliasHistoryEvent.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + end_date: Optional[str] = None, + routing_configuration: Optional[Sequence['outputs.AgentAliasRoutingConfigurationListItem']] = None, + start_date: Optional[str] = None): + """ + History event for an alias for an Agent. + :param str end_date: Time Stamp. + :param Sequence['AgentAliasRoutingConfigurationListItem'] routing_configuration: Routing configuration for an Agent alias. + :param str start_date: Time Stamp. + """ + if end_date is not None: + pulumi.set(__self__, "end_date", end_date) + if routing_configuration is not None: + pulumi.set(__self__, "routing_configuration", routing_configuration) + if start_date is not None: + pulumi.set(__self__, "start_date", start_date) + + @property + @pulumi.getter(name="endDate") + def end_date(self) -> Optional[str]: + """ + Time Stamp. + """ + return pulumi.get(self, "end_date") + + @property + @pulumi.getter(name="routingConfiguration") + def routing_configuration(self) -> Optional[Sequence['outputs.AgentAliasRoutingConfigurationListItem']]: + """ + Routing configuration for an Agent alias. + """ + return pulumi.get(self, "routing_configuration") + + @property + @pulumi.getter(name="startDate") + def start_date(self) -> Optional[str]: + """ + Time Stamp. + """ + return pulumi.get(self, "start_date") + + +@pulumi.output_type +class AgentAliasRoutingConfigurationListItem(dict): + """ + Details about the routing configuration for an Agent alias. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "agentVersion": + suggest = "agent_version" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AgentAliasRoutingConfigurationListItem. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AgentAliasRoutingConfigurationListItem.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AgentAliasRoutingConfigurationListItem.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + agent_version: str): + """ + Details about the routing configuration for an Agent alias. + :param str agent_version: Agent Version. + """ + pulumi.set(__self__, "agent_version", agent_version) + + @property + @pulumi.getter(name="agentVersion") + def agent_version(self) -> str: + """ + Agent Version. + """ + return pulumi.get(self, "agent_version") + + +@pulumi.output_type +class AgentApiSchema0Properties(dict): + """ + Contains information about the API Schema for the Action Group + """ + def __init__(__self__, *, + s3: 'outputs.AgentS3Identifier'): + """ + Contains information about the API Schema for the Action Group + """ + pulumi.set(__self__, "s3", s3) + + @property + @pulumi.getter + def s3(self) -> 'outputs.AgentS3Identifier': + return pulumi.get(self, "s3") + + +@pulumi.output_type +class AgentApiSchema1Properties(dict): + """ + Contains information about the API Schema for the Action Group + """ + def __init__(__self__, *, + payload: str): + """ + Contains information about the API Schema for the Action Group + :param str payload: String OpenAPI Payload + """ + pulumi.set(__self__, "payload", payload) + + @property + @pulumi.getter + def payload(self) -> str: + """ + String OpenAPI Payload + """ + return pulumi.get(self, "payload") + + +@pulumi.output_type +class AgentInferenceConfiguration(dict): + """ + Configuration for inference in prompt configuration + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "maximumLength": + suggest = "maximum_length" + elif key == "stopSequences": + suggest = "stop_sequences" + elif key == "topK": + suggest = "top_k" + elif key == "topP": + suggest = "top_p" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AgentInferenceConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AgentInferenceConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AgentInferenceConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + maximum_length: Optional[float] = None, + stop_sequences: Optional[Sequence[str]] = None, + temperature: Optional[float] = None, + top_k: Optional[float] = None, + top_p: Optional[float] = None): + """ + Configuration for inference in prompt configuration + :param float maximum_length: Maximum length of output + :param Sequence[str] stop_sequences: List of stop sequences + :param float temperature: Controls randomness, higher values increase diversity + :param float top_k: Sample from the k most likely next tokens + :param float top_p: Cumulative probability cutoff for token selection + """ + if maximum_length is not None: + pulumi.set(__self__, "maximum_length", maximum_length) + if stop_sequences is not None: + pulumi.set(__self__, "stop_sequences", stop_sequences) + if temperature is not None: + pulumi.set(__self__, "temperature", temperature) + if top_k is not None: + pulumi.set(__self__, "top_k", top_k) + if top_p is not None: + pulumi.set(__self__, "top_p", top_p) + + @property + @pulumi.getter(name="maximumLength") + def maximum_length(self) -> Optional[float]: + """ + Maximum length of output + """ + return pulumi.get(self, "maximum_length") + + @property + @pulumi.getter(name="stopSequences") + def stop_sequences(self) -> Optional[Sequence[str]]: + """ + List of stop sequences + """ + return pulumi.get(self, "stop_sequences") + + @property + @pulumi.getter + def temperature(self) -> Optional[float]: + """ + Controls randomness, higher values increase diversity + """ + return pulumi.get(self, "temperature") + + @property + @pulumi.getter(name="topK") + def top_k(self) -> Optional[float]: + """ + Sample from the k most likely next tokens + """ + return pulumi.get(self, "top_k") + + @property + @pulumi.getter(name="topP") + def top_p(self) -> Optional[float]: + """ + Cumulative probability cutoff for token selection + """ + return pulumi.get(self, "top_p") + + +@pulumi.output_type +class AgentKnowledgeBase(dict): + """ + Agent Knowledge Base + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "knowledgeBaseId": + suggest = "knowledge_base_id" + elif key == "knowledgeBaseState": + suggest = "knowledge_base_state" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AgentKnowledgeBase. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AgentKnowledgeBase.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AgentKnowledgeBase.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + description: str, + knowledge_base_id: str, + knowledge_base_state: Optional['AgentKnowledgeBaseState'] = None): + """ + Agent Knowledge Base + :param str description: Description of the Resource. + :param str knowledge_base_id: Identifier for a resource. + """ + pulumi.set(__self__, "description", description) + pulumi.set(__self__, "knowledge_base_id", knowledge_base_id) + if knowledge_base_state is not None: + pulumi.set(__self__, "knowledge_base_state", knowledge_base_state) + + @property + @pulumi.getter + def description(self) -> str: + """ + Description of the Resource. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="knowledgeBaseId") + def knowledge_base_id(self) -> str: + """ + Identifier for a resource. + """ + return pulumi.get(self, "knowledge_base_id") + + @property + @pulumi.getter(name="knowledgeBaseState") + def knowledge_base_state(self) -> Optional['AgentKnowledgeBaseState']: + return pulumi.get(self, "knowledge_base_state") + + +@pulumi.output_type +class AgentPromptConfiguration(dict): + """ + BasePromptConfiguration per Prompt Type. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "basePromptTemplate": + suggest = "base_prompt_template" + elif key == "inferenceConfiguration": + suggest = "inference_configuration" + elif key == "parserMode": + suggest = "parser_mode" + elif key == "promptCreationMode": + suggest = "prompt_creation_mode" + elif key == "promptState": + suggest = "prompt_state" + elif key == "promptType": + suggest = "prompt_type" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AgentPromptConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AgentPromptConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AgentPromptConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + base_prompt_template: Optional[str] = None, + inference_configuration: Optional['outputs.AgentInferenceConfiguration'] = None, + parser_mode: Optional['AgentCreationMode'] = None, + prompt_creation_mode: Optional['AgentCreationMode'] = None, + prompt_state: Optional['AgentPromptState'] = None, + prompt_type: Optional['AgentPromptType'] = None): + """ + BasePromptConfiguration per Prompt Type. + :param str base_prompt_template: Base Prompt Template. + """ + if base_prompt_template is not None: + pulumi.set(__self__, "base_prompt_template", base_prompt_template) + if inference_configuration is not None: + pulumi.set(__self__, "inference_configuration", inference_configuration) + if parser_mode is not None: + pulumi.set(__self__, "parser_mode", parser_mode) + if prompt_creation_mode is not None: + pulumi.set(__self__, "prompt_creation_mode", prompt_creation_mode) + if prompt_state is not None: + pulumi.set(__self__, "prompt_state", prompt_state) + if prompt_type is not None: + pulumi.set(__self__, "prompt_type", prompt_type) + + @property + @pulumi.getter(name="basePromptTemplate") + def base_prompt_template(self) -> Optional[str]: + """ + Base Prompt Template. + """ + return pulumi.get(self, "base_prompt_template") + + @property + @pulumi.getter(name="inferenceConfiguration") + def inference_configuration(self) -> Optional['outputs.AgentInferenceConfiguration']: + return pulumi.get(self, "inference_configuration") + + @property + @pulumi.getter(name="parserMode") + def parser_mode(self) -> Optional['AgentCreationMode']: + return pulumi.get(self, "parser_mode") + + @property + @pulumi.getter(name="promptCreationMode") + def prompt_creation_mode(self) -> Optional['AgentCreationMode']: + return pulumi.get(self, "prompt_creation_mode") + + @property + @pulumi.getter(name="promptState") + def prompt_state(self) -> Optional['AgentPromptState']: + return pulumi.get(self, "prompt_state") + + @property + @pulumi.getter(name="promptType") + def prompt_type(self) -> Optional['AgentPromptType']: + return pulumi.get(self, "prompt_type") + + +@pulumi.output_type +class AgentPromptOverrideConfiguration(dict): + """ + Configuration for prompt override. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "promptConfigurations": + suggest = "prompt_configurations" + elif key == "overrideLambda": + suggest = "override_lambda" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AgentPromptOverrideConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AgentPromptOverrideConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AgentPromptOverrideConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + prompt_configurations: Sequence['outputs.AgentPromptConfiguration'], + override_lambda: Optional[str] = None): + """ + Configuration for prompt override. + :param Sequence['AgentPromptConfiguration'] prompt_configurations: List of BasePromptConfiguration + :param str override_lambda: ARN of a Lambda. + """ + pulumi.set(__self__, "prompt_configurations", prompt_configurations) + if override_lambda is not None: + pulumi.set(__self__, "override_lambda", override_lambda) + + @property + @pulumi.getter(name="promptConfigurations") + def prompt_configurations(self) -> Sequence['outputs.AgentPromptConfiguration']: + """ + List of BasePromptConfiguration + """ + return pulumi.get(self, "prompt_configurations") + + @property + @pulumi.getter(name="overrideLambda") + def override_lambda(self) -> Optional[str]: + """ + ARN of a Lambda. + """ + return pulumi.get(self, "override_lambda") + + +@pulumi.output_type +class AgentS3Identifier(dict): + """ + The identifier for the S3 resource. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "s3BucketName": + suggest = "s3_bucket_name" + elif key == "s3ObjectKey": + suggest = "s3_object_key" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AgentS3Identifier. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AgentS3Identifier.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AgentS3Identifier.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + s3_bucket_name: Optional[str] = None, + s3_object_key: Optional[str] = None): + """ + The identifier for the S3 resource. + :param str s3_bucket_name: A bucket in S3. + :param str s3_object_key: A object key in S3. + """ + if s3_bucket_name is not None: + pulumi.set(__self__, "s3_bucket_name", s3_bucket_name) + if s3_object_key is not None: + pulumi.set(__self__, "s3_object_key", s3_object_key) + + @property + @pulumi.getter(name="s3BucketName") + def s3_bucket_name(self) -> Optional[str]: + """ + A bucket in S3. + """ + return pulumi.get(self, "s3_bucket_name") + + @property + @pulumi.getter(name="s3ObjectKey") + def s3_object_key(self) -> Optional[str]: + """ + A object key in S3. + """ + return pulumi.get(self, "s3_object_key") + + diff --git a/sdk/python/pulumi_aws_native/cleanrooms/_enums.py b/sdk/python/pulumi_aws_native/cleanrooms/_enums.py index a427cb8b56..e18b0d16e7 100644 --- a/sdk/python/pulumi_aws_native/cleanrooms/_enums.py +++ b/sdk/python/pulumi_aws_native/cleanrooms/_enums.py @@ -98,6 +98,17 @@ class ConfiguredTableScalarFunctions(str, Enum): RTRIM = "RTRIM" UPPER = "UPPER" COALESCE = "COALESCE" + CONVERT = "CONVERT" + CURRENT_DATE = "CURRENT_DATE" + DATEADD = "DATEADD" + EXTRACT = "EXTRACT" + GETDATE = "GETDATE" + SUBSTRING = "SUBSTRING" + TO_CHAR = "TO_CHAR" + TO_DATE = "TO_DATE" + TO_NUMBER = "TO_NUMBER" + TO_TIMESTAMP = "TO_TIMESTAMP" + TRIM = "TRIM" class MembershipQueryLogStatus(str, Enum): diff --git a/sdk/python/pulumi_aws_native/cleanrooms/_inputs.py b/sdk/python/pulumi_aws_native/cleanrooms/_inputs.py index 11ac9d2678..0eb982f335 100644 --- a/sdk/python/pulumi_aws_native/cleanrooms/_inputs.py +++ b/sdk/python/pulumi_aws_native/cleanrooms/_inputs.py @@ -27,6 +27,8 @@ 'ConfiguredTableAnalysisRulePolicyV12PropertiesArgs', 'ConfiguredTableAnalysisRulePolicyArgs', 'ConfiguredTableAnalysisRuleArgs', + 'ConfiguredTableDifferentialPrivacyColumnArgs', + 'ConfiguredTableDifferentialPrivacyArgs', 'ConfiguredTableGlueTableReferenceArgs', 'ConfiguredTableTableReferenceArgs', 'MembershipPaymentConfigurationArgs', @@ -375,10 +377,13 @@ def join_required(self, value: Optional[pulumi.Input['ConfiguredTableJoinRequire class ConfiguredTableAnalysisRuleCustomArgs: def __init__(__self__, *, allowed_analyses: pulumi.Input[Sequence[pulumi.Input[str]]], - allowed_analysis_providers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + allowed_analysis_providers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + differential_privacy: Optional[pulumi.Input['ConfiguredTableDifferentialPrivacyArgs']] = None): pulumi.set(__self__, "allowed_analyses", allowed_analyses) if allowed_analysis_providers is not None: pulumi.set(__self__, "allowed_analysis_providers", allowed_analysis_providers) + if differential_privacy is not None: + pulumi.set(__self__, "differential_privacy", differential_privacy) @property @pulumi.getter(name="allowedAnalyses") @@ -398,6 +403,15 @@ def allowed_analysis_providers(self) -> Optional[pulumi.Input[Sequence[pulumi.In def allowed_analysis_providers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "allowed_analysis_providers", value) + @property + @pulumi.getter(name="differentialPrivacy") + def differential_privacy(self) -> Optional[pulumi.Input['ConfiguredTableDifferentialPrivacyArgs']]: + return pulumi.get(self, "differential_privacy") + + @differential_privacy.setter + def differential_privacy(self, value: Optional[pulumi.Input['ConfiguredTableDifferentialPrivacyArgs']]): + pulumi.set(self, "differential_privacy", value) + @pulumi.input_type class ConfiguredTableAnalysisRuleListArgs: @@ -529,6 +543,38 @@ def type(self, value: pulumi.Input['ConfiguredTableAnalysisRuleType']): pulumi.set(self, "type", value) +@pulumi.input_type +class ConfiguredTableDifferentialPrivacyColumnArgs: + def __init__(__self__, *, + name: pulumi.Input[str]): + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter + def name(self) -> pulumi.Input[str]: + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[str]): + pulumi.set(self, "name", value) + + +@pulumi.input_type +class ConfiguredTableDifferentialPrivacyArgs: + def __init__(__self__, *, + columns: pulumi.Input[Sequence[pulumi.Input['ConfiguredTableDifferentialPrivacyColumnArgs']]]): + pulumi.set(__self__, "columns", columns) + + @property + @pulumi.getter + def columns(self) -> pulumi.Input[Sequence[pulumi.Input['ConfiguredTableDifferentialPrivacyColumnArgs']]]: + return pulumi.get(self, "columns") + + @columns.setter + def columns(self, value: pulumi.Input[Sequence[pulumi.Input['ConfiguredTableDifferentialPrivacyColumnArgs']]]): + pulumi.set(self, "columns", value) + + @pulumi.input_type class ConfiguredTableGlueTableReferenceArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws_native/cleanrooms/outputs.py b/sdk/python/pulumi_aws_native/cleanrooms/outputs.py index fb95b25d47..cf1f18fbb0 100644 --- a/sdk/python/pulumi_aws_native/cleanrooms/outputs.py +++ b/sdk/python/pulumi_aws_native/cleanrooms/outputs.py @@ -29,6 +29,8 @@ 'ConfiguredTableAnalysisRulePolicyV10Properties', 'ConfiguredTableAnalysisRulePolicyV11Properties', 'ConfiguredTableAnalysisRulePolicyV12Properties', + 'ConfiguredTableDifferentialPrivacy', + 'ConfiguredTableDifferentialPrivacyColumn', 'ConfiguredTableGlueTableReference', 'ConfiguredTableTableReference', 'MembershipPaymentConfiguration', @@ -486,6 +488,8 @@ def __key_warning(key: str): suggest = "allowed_analyses" elif key == "allowedAnalysisProviders": suggest = "allowed_analysis_providers" + elif key == "differentialPrivacy": + suggest = "differential_privacy" if suggest: pulumi.log.warn(f"Key '{key}' not found in ConfiguredTableAnalysisRuleCustom. Access the value via the '{suggest}' property getter instead.") @@ -500,10 +504,13 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, allowed_analyses: Sequence[str], - allowed_analysis_providers: Optional[Sequence[str]] = None): + allowed_analysis_providers: Optional[Sequence[str]] = None, + differential_privacy: Optional['outputs.ConfiguredTableDifferentialPrivacy'] = None): pulumi.set(__self__, "allowed_analyses", allowed_analyses) if allowed_analysis_providers is not None: pulumi.set(__self__, "allowed_analysis_providers", allowed_analysis_providers) + if differential_privacy is not None: + pulumi.set(__self__, "differential_privacy", differential_privacy) @property @pulumi.getter(name="allowedAnalyses") @@ -515,6 +522,11 @@ def allowed_analyses(self) -> Sequence[str]: def allowed_analysis_providers(self) -> Optional[Sequence[str]]: return pulumi.get(self, "allowed_analysis_providers") + @property + @pulumi.getter(name="differentialPrivacy") + def differential_privacy(self) -> Optional['outputs.ConfiguredTableDifferentialPrivacy']: + return pulumi.get(self, "differential_privacy") + @pulumi.output_type class ConfiguredTableAnalysisRuleList(dict): @@ -612,6 +624,30 @@ def custom(self) -> 'outputs.ConfiguredTableAnalysisRuleCustom': return pulumi.get(self, "custom") +@pulumi.output_type +class ConfiguredTableDifferentialPrivacy(dict): + def __init__(__self__, *, + columns: Sequence['outputs.ConfiguredTableDifferentialPrivacyColumn']): + pulumi.set(__self__, "columns", columns) + + @property + @pulumi.getter + def columns(self) -> Sequence['outputs.ConfiguredTableDifferentialPrivacyColumn']: + return pulumi.get(self, "columns") + + +@pulumi.output_type +class ConfiguredTableDifferentialPrivacyColumn(dict): + def __init__(__self__, *, + name: str): + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter + def name(self) -> str: + return pulumi.get(self, "name") + + @pulumi.output_type class ConfiguredTableGlueTableReference(dict): @staticmethod diff --git a/sdk/python/pulumi_aws_native/cloudfront/_inputs.py b/sdk/python/pulumi_aws_native/cloudfront/_inputs.py index b0281b86a0..f2629ace51 100644 --- a/sdk/python/pulumi_aws_native/cloudfront/_inputs.py +++ b/sdk/python/pulumi_aws_native/cloudfront/_inputs.py @@ -597,7 +597,9 @@ def __init__(__self__, *, You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to serve objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin is never used. For the current quota (formerly known as limit) on the number of cache behaviors that you can add to a distribution, see [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) in the *Amazon CloudFront Developer Guide*. If you don't want to specify any cache behaviors, include only an empty ``CacheBehaviors`` element. Don't include an empty ``CacheBehavior`` element because this is invalid. - To delete all cache behaviors in an exist + To delete all cache behaviors in an existing distribution, update the distribution configuration and include only an empty ``CacheBehaviors`` element. + To add, change, or remove one or more cache behaviors, update the distribution configuration and specify all of the cache behaviors that you want to include in the updated distribution. + For more information about cache behaviors, see [Cache Behavior Settings](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesCacheBehavior) in the *Amazon CloudFront Developer Guide*. :param pulumi.Input[str] path_pattern: The pattern (for example, ``images/*.jpg``) that specifies which requests to apply the behavior to. When CloudFront receives a viewer request, the requested path is compared with path patterns in the order in which cache behaviors are listed in the distribution. You can optionally include a slash (``/``) at the beginning of the path pattern. For example, ``/images/*.jpg``. CloudFront behavior is the same with or without the leading ``/``. The path pattern for the default cache behavior is ``*`` and cannot be changed. If the request for an object does not match the path pattern for any cache behaviors, CloudFront applies the behavior in the default cache behavior. @@ -609,7 +611,7 @@ def __init__(__self__, *, + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. - The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol + The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_methods: A complex type that controls which HTTP methods CloudFront processes and forwards to your Amazon S3 bucket or your custom origin. There are three choices: + CloudFront forwards only ``GET`` and ``HEAD`` requests. + CloudFront forwards only ``GET``, ``HEAD``, and ``OPTIONS`` requests. @@ -625,18 +627,20 @@ def __init__(__self__, *, If you pick the second choice for your Amazon S3 Origin, you may need to forward Access-Control-Request-Method, Access-Control-Request-Headers, and Origin headers for the responses to be cached correctly. :param pulumi.Input[bool] compress: Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify true; if not, specify false. For more information, see [Serving Compressed Files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html) in the *Amazon CloudFront Developer Guide*. :param pulumi.Input[float] default_ttl: This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide + The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. :param pulumi.Input[str] field_level_encryption_id: The value of ``ID`` for the field-level encryption configuration that you want CloudFront to use for encrypting specific fields of data for this cache behavior. :param pulumi.Input['DistributionForwardedValuesArgs'] forwarded_values: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r + If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. + A ``CacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. + A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. :param pulumi.Input[Sequence[pulumi.Input['DistributionFunctionAssociationArgs']]] function_associations: A list of CloudFront functions that are associated with this cache behavior. CloudFront functions must be published to the ``LIVE`` stage to associate them with a cache behavior. :param pulumi.Input[Sequence[pulumi.Input['DistributionLambdaFunctionAssociationArgs']]] lambda_function_associations: A complex type that contains zero or more Lambda@Edge function associations for a cache behavior. :param pulumi.Input[float] max_ttl: This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. + The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. :param pulumi.Input[float] min_ttl: This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. - You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He + You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). :param pulumi.Input[str] origin_request_policy_id: The unique identifier of the origin request policy that is attached to this cache behavior. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. :param pulumi.Input[str] realtime_log_config_arn: The Amazon Resource Name (ARN) of the real-time log configuration that is attached to this cache behavior. For more information, see [Real-time logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html) in the *Amazon CloudFront Developer Guide*. :param pulumi.Input[str] response_headers_policy_id: The identifier for a response headers policy. @@ -722,7 +726,7 @@ def viewer_protocol_policy(self) -> pulumi.Input[str]: + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. - The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol + The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. """ return pulumi.get(self, "viewer_protocol_policy") @@ -793,7 +797,7 @@ def compress(self, value: Optional[pulumi.Input[bool]]): def default_ttl(self) -> Optional[pulumi.Input[float]]: """ This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide + The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. """ return pulumi.get(self, "default_ttl") @@ -819,7 +823,9 @@ def forwarded_values(self) -> Optional[pulumi.Input['DistributionForwardedValues """ This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r + If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. + A ``CacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. + A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. """ return pulumi.get(self, "forwarded_values") @@ -856,7 +862,7 @@ def lambda_function_associations(self, value: Optional[pulumi.Input[Sequence[pul def max_ttl(self) -> Optional[pulumi.Input[float]]: """ This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. + The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. """ return pulumi.get(self, "max_ttl") @@ -870,7 +876,7 @@ def min_ttl(self) -> Optional[pulumi.Input[float]]: """ This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. - You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He + You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). """ return pulumi.get(self, "min_ttl") @@ -996,12 +1002,18 @@ def __init__(__self__, *, If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element. To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element. To replace the default root object, update the distribution configuration and specify the new object. - For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/D + For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*. :param pulumi.Input[str] http_version: (Optional) Specify the maximum HTTP version(s) that you want viewers to use to communicate with CF. The default value for new distributions is ``http1.1``. For viewers and CF to use HTTP/2, viewers must support TLSv1.2 or later, and must support Server Name Indication (SNI). For viewers and CF to use HTTP/3, viewers must support TLSv1.3 and Server Name Indication (SNI). CF supports HTTP/3 connection migration to allow the viewer to switch networks without losing connection. For more information about connection migration, see [Connection Migration](https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc9000.html#name-connection-migration) at RFC 9000. For more information about supported TLSv1.3 ciphers, see [Supported protocols and ciphers between viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html). :param pulumi.Input[bool] ipv6_enabled: If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify ``true``. If you specify ``false``, CloudFront responds to IPv6 DNS requests with the DNS response code ``NOERROR`` and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution. - In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/Devel + In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html) in the *Amazon CloudFront Developer Guide*. + If you're using an R53AWSIntlong alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true: + + You enable IPv6 for the distribution + + You're using alternate domain names in the URLs for your objects + + For more information, see [Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html) in the *Developer Guide*. + If you created a CNAME resource record set, either with R53AWSIntlong or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request. :param pulumi.Input['DistributionLoggingArgs'] logging: A complex type that controls whether access logs are written for the distribution. For more information about logging, see [Access Logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html) in the *Amazon CloudFront Developer Guide*. :param pulumi.Input['DistributionOriginGroupsArgs'] origin_groups: A complex type that contains information about origin groups for this distribution. @@ -1013,7 +1025,7 @@ def __init__(__self__, *, :param pulumi.Input[bool] staging: A Boolean that indicates whether this is a staging distribution. When this value is ``true``, this is a staging distribution. When this value is ``false``, this is not a staging distribution. :param pulumi.Input['DistributionViewerCertificateArgs'] viewer_certificate: A complex type that determines the distribution's SSL/TLS configuration for communicating with viewers. :param pulumi.Input[str] web_acl_id: A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example ``arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a``. To specify a web ACL created using WAF Classic, use the ACL ID, for example ``473e64fd-f30b-4765-81a0-62ad96dd167a``. - WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest + WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html). """ pulumi.set(__self__, "default_cache_behavior", default_cache_behavior) pulumi.set(__self__, "enabled", enabled) @@ -1171,7 +1183,7 @@ def default_root_object(self) -> Optional[pulumi.Input[str]]: If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element. To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element. To replace the default root object, update the distribution configuration and specify the new object. - For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/D + For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*. """ return pulumi.get(self, "default_root_object") @@ -1198,7 +1210,13 @@ def http_version(self, value: Optional[pulumi.Input[str]]): def ipv6_enabled(self) -> Optional[pulumi.Input[bool]]: """ If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify ``true``. If you specify ``false``, CloudFront responds to IPv6 DNS requests with the DNS response code ``NOERROR`` and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution. - In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/Devel + In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html) in the *Amazon CloudFront Developer Guide*. + If you're using an R53AWSIntlong alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true: + + You enable IPv6 for the distribution + + You're using alternate domain names in the URLs for your objects + + For more information, see [Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html) in the *Developer Guide*. + If you created a CNAME resource record set, either with R53AWSIntlong or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request. """ return pulumi.get(self, "ipv6_enabled") @@ -1307,7 +1325,7 @@ def viewer_certificate(self, value: Optional[pulumi.Input['DistributionViewerCer def web_acl_id(self) -> Optional[pulumi.Input[str]]: """ A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example ``arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a``. To specify a web ACL created using WAF Classic, use the ACL ID, for example ``473e64fd-f30b-4765-81a0-62ad96dd167a``. - WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest + WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html). """ return pulumi.get(self, "web_acl_id") @@ -1325,16 +1343,18 @@ def __init__(__self__, *, This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C + A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*. :param pulumi.Input[str] forward: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the ``WhitelistedNames`` complex type. - Amazon S3 doesn't process cookies. When the cache behavior is forw + Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify none for the ``Forward`` element. :param pulumi.Input[Sequence[pulumi.Input[str]]] whitelisted_names: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward se + Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward selected cookies, the names of those cookies. + If you specify ``all`` or ``none`` for the value of ``Forward``, omit ``WhitelistedNames``. If you change the value of ``Forward`` from ``whitelist`` to ``all`` or ``none`` and you don't delete the ``WhitelistedNames`` element and its child elements, CloudFront deletes them automatically. + For the current limit on the number of cookie names that you can whitelist for each cache behavior, see [CloudFront Limits](https://docs.aws.amazon.com/general/latest/gr/xrefaws_service_limits.html#limits_cloudfront) in the *General Reference*. """ pulumi.set(__self__, "forward", forward) if whitelisted_names is not None: @@ -1348,7 +1368,7 @@ def forward(self) -> pulumi.Input[str]: If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the ``WhitelistedNames`` complex type. - Amazon S3 doesn't process cookies. When the cache behavior is forw + Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify none for the ``Forward`` element. """ return pulumi.get(self, "forward") @@ -1363,7 +1383,9 @@ def whitelisted_names(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]] This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward se + Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward selected cookies, the names of those cookies. + If you specify ``all`` or ``none`` for the value of ``Forward``, omit ``WhitelistedNames``. If you change the value of ``Forward`` from ``whitelist`` to ``all`` or ``none`` and you don't delete the ``WhitelistedNames`` element and its child elements, CloudFront deletes them automatically. + For the current limit on the number of cookie names that you can whitelist for each cache behavior, see [CloudFront Limits](https://docs.aws.amazon.com/general/latest/gr/xrefaws_service_limits.html#limits_cloudfront) in the *General Reference*. """ return pulumi.get(self, "whitelisted_names") @@ -1399,7 +1421,7 @@ def __init__(__self__, *, + The value of ``TargetOriginId`` specifies the value of the ``ID`` element for the origin that contains your custom error pages. If you specify a value for ``ResponsePagePath``, you must also specify a value for ``ResponseCode``. - We recommend + We recommend that you store custom error pages in an Amazon S3 bucket. If you store custom error pages on an HTTP server and the server starts to return 5xx errors, CloudFront can't get the files that you want to return to viewers because the origin server is unavailable. """ pulumi.set(__self__, "error_code", error_code) if error_caching_min_ttl is not None: @@ -1460,7 +1482,7 @@ def response_page_path(self) -> Optional[pulumi.Input[str]]: + The value of ``TargetOriginId`` specifies the value of the ``ID`` element for the origin that contains your custom error pages. If you specify a value for ``ResponsePagePath``, you must also specify a value for ``ResponseCode``. - We recommend + We recommend that you store custom error pages in an Amazon S3 bucket. If you store custom error pages on an HTTP server and the server starts to return 5xx errors, CloudFront can't get the files that you want to return to viewers because the origin server is unavailable. """ return pulumi.get(self, "response_page_path") @@ -1615,7 +1637,7 @@ def __init__(__self__, *, + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. - The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol + The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_methods: A complex type that controls which HTTP methods CloudFront processes and forwards to your Amazon S3 bucket or your custom origin. There are three choices: + CloudFront forwards only ``GET`` and ``HEAD`` requests. + CloudFront forwards only ``GET``, ``HEAD``, and ``OPTIONS`` requests. @@ -1631,18 +1653,20 @@ def __init__(__self__, *, If you pick the second choice for your Amazon S3 Origin, you may need to forward Access-Control-Request-Method, Access-Control-Request-Headers, and Origin headers for the responses to be cached correctly. :param pulumi.Input[bool] compress: Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify ``true``; if not, specify ``false``. For more information, see [Serving Compressed Files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html) in the *Amazon CloudFront Developer Guide*. :param pulumi.Input[float] default_ttl: This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide + The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. :param pulumi.Input[str] field_level_encryption_id: The value of ``ID`` for the field-level encryption configuration that you want CloudFront to use for encrypting specific fields of data for the default cache behavior. :param pulumi.Input['DistributionForwardedValuesArgs'] forwarded_values: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r + If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. + A ``DefaultCacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. + A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. :param pulumi.Input[Sequence[pulumi.Input['DistributionFunctionAssociationArgs']]] function_associations: A list of CloudFront functions that are associated with this cache behavior. CloudFront functions must be published to the ``LIVE`` stage to associate them with a cache behavior. :param pulumi.Input[Sequence[pulumi.Input['DistributionLambdaFunctionAssociationArgs']]] lambda_function_associations: A complex type that contains zero or more Lambda@Edge function associations for a cache behavior. :param pulumi.Input[float] max_ttl: This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. + The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. :param pulumi.Input[float] min_ttl: This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. - You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He + You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). :param pulumi.Input[str] origin_request_policy_id: The unique identifier of the origin request policy that is attached to the default cache behavior. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. :param pulumi.Input[str] realtime_log_config_arn: The Amazon Resource Name (ARN) of the real-time log configuration that is attached to this cache behavior. For more information, see [Real-time logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html) in the *Amazon CloudFront Developer Guide*. :param pulumi.Input[str] response_headers_policy_id: The identifier for a response headers policy. @@ -1712,7 +1736,7 @@ def viewer_protocol_policy(self) -> pulumi.Input[str]: + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. - The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol + The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. """ return pulumi.get(self, "viewer_protocol_policy") @@ -1783,7 +1807,7 @@ def compress(self, value: Optional[pulumi.Input[bool]]): def default_ttl(self) -> Optional[pulumi.Input[float]]: """ This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide + The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. """ return pulumi.get(self, "default_ttl") @@ -1809,7 +1833,9 @@ def forwarded_values(self) -> Optional[pulumi.Input['DistributionForwardedValues """ This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r + If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. + A ``DefaultCacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. + A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. """ return pulumi.get(self, "forwarded_values") @@ -1846,7 +1872,7 @@ def lambda_function_associations(self, value: Optional[pulumi.Input[Sequence[pul def max_ttl(self) -> Optional[pulumi.Input[float]]: """ This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. + The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. """ return pulumi.get(self, "max_ttl") @@ -1860,7 +1886,7 @@ def min_ttl(self) -> Optional[pulumi.Input[float]]: """ This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. - You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He + You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). """ return pulumi.get(self, "min_ttl") @@ -1959,15 +1985,20 @@ def __init__(__self__, *, :param pulumi.Input[bool] query_string: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of + Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of ``QueryString`` and on the values that you specify for ``QueryStringCacheKeys``, if any: + If you specify true for ``QueryString`` and you don't specify any values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin and caches based on all query string parameters. Depending on how many query string parameters and values you have, this can adversely affect performance because CloudFront must forward more requests to the origin. + If you specify true for ``QueryString`` and you specify one or more values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin, but it only caches based on the query string parameters that you specify. + If you specify false for ``QueryString``, CloudFront doesn't forward any query string parameters to the origin, and doesn't cache based on query string parameters. + For more information, see [Configuring CloudFront to Cache Based on Query String Parameters](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html) in the *Amazon CloudFront Developer Guide*. :param pulumi.Input['DistributionCookiesArgs'] cookies: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C + A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*. :param pulumi.Input[Sequence[pulumi.Input[str]]] headers: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include headers in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versio + A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versions of a specified object that is based on the header values in viewer requests. + For more information, see [Caching Content Based on Request Headers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html) in the *Amazon CloudFront Developer Guide*. :param pulumi.Input[Sequence[pulumi.Input[str]]] query_string_cache_keys: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. @@ -1988,7 +2019,11 @@ def query_string(self) -> pulumi.Input[bool]: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of + Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of ``QueryString`` and on the values that you specify for ``QueryStringCacheKeys``, if any: + If you specify true for ``QueryString`` and you don't specify any values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin and caches based on all query string parameters. Depending on how many query string parameters and values you have, this can adversely affect performance because CloudFront must forward more requests to the origin. + If you specify true for ``QueryString`` and you specify one or more values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin, but it only caches based on the query string parameters that you specify. + If you specify false for ``QueryString``, CloudFront doesn't forward any query string parameters to the origin, and doesn't cache based on query string parameters. + For more information, see [Configuring CloudFront to Cache Based on Query String Parameters](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html) in the *Amazon CloudFront Developer Guide*. """ return pulumi.get(self, "query_string") @@ -2003,7 +2038,7 @@ def cookies(self) -> Optional[pulumi.Input['DistributionCookiesArgs']]: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C + A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*. """ return pulumi.get(self, "cookies") @@ -2018,7 +2053,8 @@ def headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include headers in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versio + A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versions of a specified object that is based on the header values in viewer requests. + For more information, see [Caching Content Based on Request Headers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html) in the *Amazon CloudFront Developer Guide*. """ return pulumi.get(self, "headers") @@ -2833,7 +2869,7 @@ def __init__(__self__, *, If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element. To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element. To replace the origin access identity, update the distribution configuration and specify the new origin access identity. - For more information about the origin access identity, see [Serving Private Content through CloudFront](https://d + For more information about the origin access identity, see [Serving Private Content through CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*. """ if origin_access_identity is not None: pulumi.set(__self__, "origin_access_identity", origin_access_identity) @@ -2848,7 +2884,7 @@ def origin_access_identity(self) -> Optional[pulumi.Input[str]]: If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element. To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element. To replace the origin access identity, update the distribution configuration and specify the new origin access identity. - For more information about the origin access identity, see [Serving Private Content through CloudFront](https://d + For more information about the origin access identity, see [Serving Private Content through CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*. """ return pulumi.get(self, "origin_access_identity") @@ -2908,7 +2944,17 @@ def __init__(__self__, *, If the distribution doesn't use ``Aliases`` (also known as alternate domain names or CNAMEs)—that is, if the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``—set ``CloudFrontDefaultCertificate`` to ``true`` and leave all other fields empty. If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), use the fields in this type to specify the following settings: + Which viewers the distribution accepts HTTPS connections from: only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication) (recommended), or all viewers including those that don't support SNI. - + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field n + + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + + To accept HTTPS connections from all viewers, including those that don't support SNI, set ``SSLSupportMethod`` to ``vip``. This is not recommended, and results in additional monthly charges from CloudFront. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + + + The minimum SSL/TLS protocol version that the distribution can use to communicate with viewers. To specify a minimum version, choose a value for ``MinimumProtocolVersion``. For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) in the *Amazon CloudFront Developer Guide*. + + The location of the SSL/TLS certificate, [(ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) (recommended) or [(IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html). You specify the location by setting a value in one of the following fields (not both): + + ``ACMCertificateArn`` (In CloudFormation, this field name is ``AcmCertificateArn``. Note the different capitalization.) + + ``IAMCertificateId`` (In CloudFormation, this field name is ``IamCertificateId``. Note the different capitalization.) + + + All distributions support HTTPS connections from viewers. To require viewers to use HTTPS only, or to redirect them from HTTP to HTTPS, use ``ViewerProtocolPolicy`` in the ``CacheBehavior`` or ``DefaultCacheBehavior``. To specify how CloudFront should use SSL/TLS to communicate with your custom origin, use ``CustomOriginConfig``. + For more information, see [Using HTTPS with CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html) and [Using Alternate Domain Names and HTTPS](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-alternate-domain-names.html) in the *Amazon CloudFront Developer Guide*. :param pulumi.Input[str] acm_certificate_arn: In CloudFormation, this field name is ``AcmCertificateArn``. Note the different capitalization. If the distribution uses ``Aliases`` (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in [(ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html), provide the Amazon Resource Name (ARN) of the ACM certificate. CloudFront only supports ACM certificates in the US East (N. Virginia) Region (``us-east-1``). If you specify an ACM certificate ARN, you must also specify values for ``MinimumProtocolVersion`` and ``SSLSupportMethod``. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) @@ -2926,12 +2972,15 @@ def __init__(__self__, *, For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*. On the CloudFront console, this setting is called *Security Policy*. - When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-onl + When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-only``), you must specify ``TLSv1`` or higher. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` (you set ``CloudFrontDefaultCertificate`` to ``true``), CloudFront automatically sets the security policy to ``TLSv1`` regardless of the value that you set here. :param pulumi.Input[str] ssl_support_method: In CloudFormation, this field name is ``SslSupportMethod``. Note the different capitalization. If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from. + ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication). This is recommended. Most browsers and clients support SNI. + ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront. + ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [Center](https://docs.aws.amazon.com/support/home). + + If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``, don't set a value for this field. """ if acm_certificate_arn is not None: pulumi.set(__self__, "acm_certificate_arn", acm_certificate_arn) @@ -2998,7 +3047,8 @@ def minimum_protocol_version(self) -> Optional[pulumi.Input[str]]: For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*. On the CloudFront console, this setting is called *Security Policy*. - When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-onl + When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-only``), you must specify ``TLSv1`` or higher. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` (you set ``CloudFrontDefaultCertificate`` to ``true``), CloudFront automatically sets the security policy to ``TLSv1`` regardless of the value that you set here. """ return pulumi.get(self, "minimum_protocol_version") @@ -3015,6 +3065,8 @@ def ssl_support_method(self) -> Optional[pulumi.Input[str]]: + ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication). This is recommended. Most browsers and clients support SNI. + ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront. + ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [Center](https://docs.aws.amazon.com/support/home). + + If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``, don't set a value for this field. """ return pulumi.get(self, "ssl_support_method") diff --git a/sdk/python/pulumi_aws_native/cloudfront/outputs.py b/sdk/python/pulumi_aws_native/cloudfront/outputs.py index 0b00e3081c..559504bc30 100644 --- a/sdk/python/pulumi_aws_native/cloudfront/outputs.py +++ b/sdk/python/pulumi_aws_native/cloudfront/outputs.py @@ -625,7 +625,9 @@ class DistributionCacheBehavior(dict): You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to serve objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin is never used. For the current quota (formerly known as limit) on the number of cache behaviors that you can add to a distribution, see [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) in the *Amazon CloudFront Developer Guide*. If you don't want to specify any cache behaviors, include only an empty ``CacheBehaviors`` element. Don't include an empty ``CacheBehavior`` element because this is invalid. - To delete all cache behaviors in an exist + To delete all cache behaviors in an existing distribution, update the distribution configuration and include only an empty ``CacheBehaviors`` element. + To add, change, or remove one or more cache behaviors, update the distribution configuration and specify all of the cache behaviors that you want to include in the updated distribution. + For more information about cache behaviors, see [Cache Behavior Settings](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesCacheBehavior) in the *Amazon CloudFront Developer Guide*. """ @staticmethod def __key_warning(key: str): @@ -706,7 +708,9 @@ def __init__(__self__, *, You must create at least as many cache behaviors (including the default cache behavior) as you have origins if you want CloudFront to serve objects from all of the origins. Each cache behavior specifies the one origin from which you want CloudFront to get objects. If you have two origins and only the default cache behavior, the default cache behavior will cause CloudFront to get objects from one of the origins, but the other origin is never used. For the current quota (formerly known as limit) on the number of cache behaviors that you can add to a distribution, see [Quotas](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html) in the *Amazon CloudFront Developer Guide*. If you don't want to specify any cache behaviors, include only an empty ``CacheBehaviors`` element. Don't include an empty ``CacheBehavior`` element because this is invalid. - To delete all cache behaviors in an exist + To delete all cache behaviors in an existing distribution, update the distribution configuration and include only an empty ``CacheBehaviors`` element. + To add, change, or remove one or more cache behaviors, update the distribution configuration and specify all of the cache behaviors that you want to include in the updated distribution. + For more information about cache behaviors, see [Cache Behavior Settings](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesCacheBehavior) in the *Amazon CloudFront Developer Guide*. :param str path_pattern: The pattern (for example, ``images/*.jpg``) that specifies which requests to apply the behavior to. When CloudFront receives a viewer request, the requested path is compared with path patterns in the order in which cache behaviors are listed in the distribution. You can optionally include a slash (``/``) at the beginning of the path pattern. For example, ``/images/*.jpg``. CloudFront behavior is the same with or without the leading ``/``. The path pattern for the default cache behavior is ``*`` and cannot be changed. If the request for an object does not match the path pattern for any cache behaviors, CloudFront applies the behavior in the default cache behavior. @@ -718,7 +722,7 @@ def __init__(__self__, *, + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. - The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol + The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. :param Sequence[str] allowed_methods: A complex type that controls which HTTP methods CloudFront processes and forwards to your Amazon S3 bucket or your custom origin. There are three choices: + CloudFront forwards only ``GET`` and ``HEAD`` requests. + CloudFront forwards only ``GET``, ``HEAD``, and ``OPTIONS`` requests. @@ -734,18 +738,20 @@ def __init__(__self__, *, If you pick the second choice for your Amazon S3 Origin, you may need to forward Access-Control-Request-Method, Access-Control-Request-Headers, and Origin headers for the responses to be cached correctly. :param bool compress: Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify true; if not, specify false. For more information, see [Serving Compressed Files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html) in the *Amazon CloudFront Developer Guide*. :param float default_ttl: This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide + The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. :param str field_level_encryption_id: The value of ``ID`` for the field-level encryption configuration that you want CloudFront to use for encrypting specific fields of data for this cache behavior. :param 'DistributionForwardedValues' forwarded_values: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r + If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. + A ``CacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. + A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. :param Sequence['DistributionFunctionAssociation'] function_associations: A list of CloudFront functions that are associated with this cache behavior. CloudFront functions must be published to the ``LIVE`` stage to associate them with a cache behavior. :param Sequence['DistributionLambdaFunctionAssociation'] lambda_function_associations: A complex type that contains zero or more Lambda@Edge function associations for a cache behavior. :param float max_ttl: This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. + The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. :param float min_ttl: This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. - You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He + You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). :param str origin_request_policy_id: The unique identifier of the origin request policy that is attached to this cache behavior. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. :param str realtime_log_config_arn: The Amazon Resource Name (ARN) of the real-time log configuration that is attached to this cache behavior. For more information, see [Real-time logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html) in the *Amazon CloudFront Developer Guide*. :param str response_headers_policy_id: The identifier for a response headers policy. @@ -823,7 +829,7 @@ def viewer_protocol_policy(self) -> str: + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. - The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol + The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. """ return pulumi.get(self, "viewer_protocol_policy") @@ -874,7 +880,7 @@ def compress(self) -> Optional[bool]: def default_ttl(self) -> Optional[float]: """ This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide + The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. """ return pulumi.get(self, "default_ttl") @@ -892,7 +898,9 @@ def forwarded_values(self) -> Optional['outputs.DistributionForwardedValues']: """ This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r + If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. + A ``CacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. + A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. """ return pulumi.get(self, "forwarded_values") @@ -917,7 +925,7 @@ def lambda_function_associations(self) -> Optional[Sequence['outputs.Distributio def max_ttl(self) -> Optional[float]: """ This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. + The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. """ return pulumi.get(self, "max_ttl") @@ -927,7 +935,7 @@ def min_ttl(self) -> Optional[float]: """ This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. - You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He + You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). """ return pulumi.get(self, "min_ttl") @@ -1069,12 +1077,18 @@ def __init__(__self__, *, If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element. To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element. To replace the default root object, update the distribution configuration and specify the new object. - For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/D + For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*. :param str http_version: (Optional) Specify the maximum HTTP version(s) that you want viewers to use to communicate with CF. The default value for new distributions is ``http1.1``. For viewers and CF to use HTTP/2, viewers must support TLSv1.2 or later, and must support Server Name Indication (SNI). For viewers and CF to use HTTP/3, viewers must support TLSv1.3 and Server Name Indication (SNI). CF supports HTTP/3 connection migration to allow the viewer to switch networks without losing connection. For more information about connection migration, see [Connection Migration](https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc9000.html#name-connection-migration) at RFC 9000. For more information about supported TLSv1.3 ciphers, see [Supported protocols and ciphers between viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html). :param bool ipv6_enabled: If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify ``true``. If you specify ``false``, CloudFront responds to IPv6 DNS requests with the DNS response code ``NOERROR`` and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution. - In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/Devel + In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html) in the *Amazon CloudFront Developer Guide*. + If you're using an R53AWSIntlong alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true: + + You enable IPv6 for the distribution + + You're using alternate domain names in the URLs for your objects + + For more information, see [Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html) in the *Developer Guide*. + If you created a CNAME resource record set, either with R53AWSIntlong or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request. :param 'DistributionLogging' logging: A complex type that controls whether access logs are written for the distribution. For more information about logging, see [Access Logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html) in the *Amazon CloudFront Developer Guide*. :param 'DistributionOriginGroups' origin_groups: A complex type that contains information about origin groups for this distribution. @@ -1086,7 +1100,7 @@ def __init__(__self__, *, :param bool staging: A Boolean that indicates whether this is a staging distribution. When this value is ``true``, this is a staging distribution. When this value is ``false``, this is not a staging distribution. :param 'DistributionViewerCertificate' viewer_certificate: A complex type that determines the distribution's SSL/TLS configuration for communicating with viewers. :param str web_acl_id: A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example ``arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a``. To specify a web ACL created using WAF Classic, use the ACL ID, for example ``473e64fd-f30b-4765-81a0-62ad96dd167a``. - WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest + WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html). """ pulumi.set(__self__, "default_cache_behavior", default_cache_behavior) pulumi.set(__self__, "enabled", enabled) @@ -1208,7 +1222,7 @@ def default_root_object(self) -> Optional[str]: If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element. To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element. To replace the default root object, update the distribution configuration and specify the new object. - For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/D + For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html) in the *Amazon CloudFront Developer Guide*. """ return pulumi.get(self, "default_root_object") @@ -1227,7 +1241,13 @@ def http_version(self) -> Optional[str]: def ipv6_enabled(self) -> Optional[bool]: """ If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify ``true``. If you specify ``false``, CloudFront responds to IPv6 DNS requests with the DNS response code ``NOERROR`` and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution. - In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/Devel + In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-creating-signed-url-custom-policy.html) in the *Amazon CloudFront Developer Guide*. + If you're using an R53AWSIntlong alias resource record set to route traffic to your CloudFront distribution, you need to create a second alias resource record set when both of the following are true: + + You enable IPv6 for the distribution + + You're using alternate domain names in the URLs for your objects + + For more information, see [Routing Traffic to an Amazon CloudFront Web Distribution by Using Your Domain Name](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-cloudfront-distribution.html) in the *Developer Guide*. + If you created a CNAME resource record set, either with R53AWSIntlong or with another DNS service, you don't need to make any changes. A CNAME record will route traffic to your distribution regardless of the IP address format of the viewer request. """ return pulumi.get(self, "ipv6_enabled") @@ -1300,7 +1320,7 @@ def viewer_certificate(self) -> Optional['outputs.DistributionViewerCertificate' def web_acl_id(self) -> Optional[str]: """ A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example ``arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a``. To specify a web ACL created using WAF Classic, use the ACL ID, for example ``473e64fd-f30b-4765-81a0-62ad96dd167a``. - WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest + WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html). """ return pulumi.get(self, "web_acl_id") @@ -1311,7 +1331,7 @@ class DistributionCookies(dict): This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C + A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*. """ @staticmethod def __key_warning(key: str): @@ -1337,16 +1357,18 @@ def __init__(__self__, *, This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C + A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*. :param str forward: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the ``WhitelistedNames`` complex type. - Amazon S3 doesn't process cookies. When the cache behavior is forw + Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify none for the ``Forward`` element. :param Sequence[str] whitelisted_names: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward se + Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward selected cookies, the names of those cookies. + If you specify ``all`` or ``none`` for the value of ``Forward``, omit ``WhitelistedNames``. If you change the value of ``Forward`` from ``whitelist`` to ``all`` or ``none`` and you don't delete the ``WhitelistedNames`` element and its child elements, CloudFront deletes them automatically. + For the current limit on the number of cookie names that you can whitelist for each cache behavior, see [CloudFront Limits](https://docs.aws.amazon.com/general/latest/gr/xrefaws_service_limits.html#limits_cloudfront) in the *General Reference*. """ pulumi.set(__self__, "forward", forward) if whitelisted_names is not None: @@ -1360,7 +1382,7 @@ def forward(self) -> str: If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the ``WhitelistedNames`` complex type. - Amazon S3 doesn't process cookies. When the cache behavior is forw + Amazon S3 doesn't process cookies. When the cache behavior is forwarding requests to an Amazon S3 origin, specify none for the ``Forward`` element. """ return pulumi.get(self, "forward") @@ -1371,7 +1393,9 @@ def whitelisted_names(self) -> Optional[Sequence[str]]: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward se + Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward selected cookies, the names of those cookies. + If you specify ``all`` or ``none`` for the value of ``Forward``, omit ``WhitelistedNames``. If you change the value of ``Forward`` from ``whitelist`` to ``all`` or ``none`` and you don't delete the ``WhitelistedNames`` element and its child elements, CloudFront deletes them automatically. + For the current limit on the number of cookie names that you can whitelist for each cache behavior, see [CloudFront Limits](https://docs.aws.amazon.com/general/latest/gr/xrefaws_service_limits.html#limits_cloudfront) in the *General Reference*. """ return pulumi.get(self, "whitelisted_names") @@ -1433,7 +1457,7 @@ def __init__(__self__, *, + The value of ``TargetOriginId`` specifies the value of the ``ID`` element for the origin that contains your custom error pages. If you specify a value for ``ResponsePagePath``, you must also specify a value for ``ResponseCode``. - We recommend + We recommend that you store custom error pages in an Amazon S3 bucket. If you store custom error pages on an HTTP server and the server starts to return 5xx errors, CloudFront can't get the files that you want to return to viewers because the origin server is unavailable. """ pulumi.set(__self__, "error_code", error_code) if error_caching_min_ttl is not None: @@ -1482,7 +1506,7 @@ def response_page_path(self) -> Optional[str]: + The value of ``TargetOriginId`` specifies the value of the ``ID`` element for the origin that contains your custom error pages. If you specify a value for ``ResponsePagePath``, you must also specify a value for ``ResponseCode``. - We recommend + We recommend that you store custom error pages in an Amazon S3 bucket. If you store custom error pages on an HTTP server and the server starts to return 5xx errors, CloudFront can't get the files that you want to return to viewers because the origin server is unavailable. """ return pulumi.get(self, "response_page_path") @@ -1693,7 +1717,7 @@ def __init__(__self__, *, + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. - The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol + The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. :param Sequence[str] allowed_methods: A complex type that controls which HTTP methods CloudFront processes and forwards to your Amazon S3 bucket or your custom origin. There are three choices: + CloudFront forwards only ``GET`` and ``HEAD`` requests. + CloudFront forwards only ``GET``, ``HEAD``, and ``OPTIONS`` requests. @@ -1709,18 +1733,20 @@ def __init__(__self__, *, If you pick the second choice for your Amazon S3 Origin, you may need to forward Access-Control-Request-Method, Access-Control-Request-Headers, and Origin headers for the responses to be cached correctly. :param bool compress: Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify ``true``; if not, specify ``false``. For more information, see [Serving Compressed Files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html) in the *Amazon CloudFront Developer Guide*. :param float default_ttl: This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide + The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. :param str field_level_encryption_id: The value of ``ID`` for the field-level encryption configuration that you want CloudFront to use for encrypting specific fields of data for the default cache behavior. :param 'DistributionForwardedValues' forwarded_values: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r + If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. + A ``DefaultCacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. + A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. :param Sequence['DistributionFunctionAssociation'] function_associations: A list of CloudFront functions that are associated with this cache behavior. CloudFront functions must be published to the ``LIVE`` stage to associate them with a cache behavior. :param Sequence['DistributionLambdaFunctionAssociation'] lambda_function_associations: A complex type that contains zero or more Lambda@Edge function associations for a cache behavior. :param float max_ttl: This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. + The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. :param float min_ttl: This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. - You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He + You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). :param str origin_request_policy_id: The unique identifier of the origin request policy that is attached to the default cache behavior. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. :param str realtime_log_config_arn: The Amazon Resource Name (ARN) of the real-time log configuration that is attached to this cache behavior. For more information, see [Real-time logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html) in the *Amazon CloudFront Developer Guide*. :param str response_headers_policy_id: The identifier for a response headers policy. @@ -1786,7 +1812,7 @@ def viewer_protocol_policy(self) -> str: + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. - The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol + The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol to fetch the object. If you have recently changed from HTTP to HTTPS, we recommend that you clear your objects' cache because cached objects are protocol agnostic. That means that an edge location will return an object from the cache regardless of whether the current request protocol matches the protocol used previously. For more information, see [Managing Cache Expiration](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. """ return pulumi.get(self, "viewer_protocol_policy") @@ -1837,7 +1863,7 @@ def compress(self) -> Optional[bool]: def default_ttl(self) -> Optional[float]: """ This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide + The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. """ return pulumi.get(self, "default_ttl") @@ -1855,7 +1881,9 @@ def forwarded_values(self) -> Optional['outputs.DistributionForwardedValues']: """ This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r + If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. + A ``DefaultCacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. + A complex type that specifies how CloudFront handles query strings, cookies, and HTTP headers. """ return pulumi.get(self, "forwarded_values") @@ -1880,7 +1908,7 @@ def lambda_function_associations(self) -> Optional[Sequence['outputs.Distributio def max_ttl(self) -> Optional[float]: """ This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. - The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. + The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. """ return pulumi.get(self, "max_ttl") @@ -1890,7 +1918,7 @@ def min_ttl(self) -> Optional[float]: """ This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. - You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He + You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``Headers``, if you specify ``1`` for ``Quantity`` and ``*`` for ``Name``). """ return pulumi.get(self, "min_ttl") @@ -1986,15 +2014,20 @@ def __init__(__self__, *, :param bool query_string: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of + Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of ``QueryString`` and on the values that you specify for ``QueryStringCacheKeys``, if any: + If you specify true for ``QueryString`` and you don't specify any values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin and caches based on all query string parameters. Depending on how many query string parameters and values you have, this can adversely affect performance because CloudFront must forward more requests to the origin. + If you specify true for ``QueryString`` and you specify one or more values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin, but it only caches based on the query string parameters that you specify. + If you specify false for ``QueryString``, CloudFront doesn't forward any query string parameters to the origin, and doesn't cache based on query string parameters. + For more information, see [Configuring CloudFront to Cache Based on Query String Parameters](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html) in the *Amazon CloudFront Developer Guide*. :param 'DistributionCookies' cookies: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C + A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*. :param Sequence[str] headers: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include headers in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versio + A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versions of a specified object that is based on the header values in viewer requests. + For more information, see [Caching Content Based on Request Headers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html) in the *Amazon CloudFront Developer Guide*. :param Sequence[str] query_string_cache_keys: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. @@ -2015,7 +2048,11 @@ def query_string(self) -> bool: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of + Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of ``QueryString`` and on the values that you specify for ``QueryStringCacheKeys``, if any: + If you specify true for ``QueryString`` and you don't specify any values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin and caches based on all query string parameters. Depending on how many query string parameters and values you have, this can adversely affect performance because CloudFront must forward more requests to the origin. + If you specify true for ``QueryString`` and you specify one or more values for ``QueryStringCacheKeys``, CloudFront forwards all query string parameters to the origin, but it only caches based on the query string parameters that you specify. + If you specify false for ``QueryString``, CloudFront doesn't forward any query string parameters to the origin, and doesn't cache based on query string parameters. + For more information, see [Configuring CloudFront to Cache Based on Query String Parameters](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html) in the *Amazon CloudFront Developer Guide*. """ return pulumi.get(self, "query_string") @@ -2026,7 +2063,7 @@ def cookies(self) -> Optional['outputs.DistributionCookies']: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C + A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs Cookies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) in the *Amazon CloudFront Developer Guide*. """ return pulumi.get(self, "cookies") @@ -2037,7 +2074,8 @@ def headers(self) -> Optional[Sequence[str]]: This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. If you want to include headers in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. - A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versio + A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versions of a specified object that is based on the header values in viewer requests. + For more information, see [Caching Content Based on Request Headers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html) in the *Amazon CloudFront Developer Guide*. """ return pulumi.get(self, "headers") @@ -3006,7 +3044,7 @@ def __init__(__self__, *, If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element. To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element. To replace the origin access identity, update the distribution configuration and specify the new origin access identity. - For more information about the origin access identity, see [Serving Private Content through CloudFront](https://d + For more information about the origin access identity, see [Serving Private Content through CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*. """ if origin_access_identity is not None: pulumi.set(__self__, "origin_access_identity", origin_access_identity) @@ -3021,7 +3059,7 @@ def origin_access_identity(self) -> Optional[str]: If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element. To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element. To replace the origin access identity, update the distribution configuration and specify the new origin access identity. - For more information about the origin access identity, see [Serving Private Content through CloudFront](https://d + For more information about the origin access identity, see [Serving Private Content through CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*. """ return pulumi.get(self, "origin_access_identity") @@ -3066,7 +3104,17 @@ class DistributionViewerCertificate(dict): If the distribution doesn't use ``Aliases`` (also known as alternate domain names or CNAMEs)—that is, if the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``—set ``CloudFrontDefaultCertificate`` to ``true`` and leave all other fields empty. If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), use the fields in this type to specify the following settings: + Which viewers the distribution accepts HTTPS connections from: only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication) (recommended), or all viewers including those that don't support SNI. - + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field n + + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + + To accept HTTPS connections from all viewers, including those that don't support SNI, set ``SSLSupportMethod`` to ``vip``. This is not recommended, and results in additional monthly charges from CloudFront. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + + + The minimum SSL/TLS protocol version that the distribution can use to communicate with viewers. To specify a minimum version, choose a value for ``MinimumProtocolVersion``. For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) in the *Amazon CloudFront Developer Guide*. + + The location of the SSL/TLS certificate, [(ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) (recommended) or [(IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html). You specify the location by setting a value in one of the following fields (not both): + + ``ACMCertificateArn`` (In CloudFormation, this field name is ``AcmCertificateArn``. Note the different capitalization.) + + ``IAMCertificateId`` (In CloudFormation, this field name is ``IamCertificateId``. Note the different capitalization.) + + + All distributions support HTTPS connections from viewers. To require viewers to use HTTPS only, or to redirect them from HTTP to HTTPS, use ``ViewerProtocolPolicy`` in the ``CacheBehavior`` or ``DefaultCacheBehavior``. To specify how CloudFront should use SSL/TLS to communicate with your custom origin, use ``CustomOriginConfig``. + For more information, see [Using HTTPS with CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html) and [Using Alternate Domain Names and HTTPS](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-alternate-domain-names.html) in the *Amazon CloudFront Developer Guide*. """ @staticmethod def __key_warning(key: str): @@ -3104,7 +3152,17 @@ def __init__(__self__, *, If the distribution doesn't use ``Aliases`` (also known as alternate domain names or CNAMEs)—that is, if the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``—set ``CloudFrontDefaultCertificate`` to ``true`` and leave all other fields empty. If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), use the fields in this type to specify the following settings: + Which viewers the distribution accepts HTTPS connections from: only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication) (recommended), or all viewers including those that don't support SNI. - + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field n + + To accept HTTPS connections from only viewers that support SNI, set ``SSLSupportMethod`` to ``sni-only``. This is recommended. Most browsers and clients support SNI. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + + To accept HTTPS connections from all viewers, including those that don't support SNI, set ``SSLSupportMethod`` to ``vip``. This is not recommended, and results in additional monthly charges from CloudFront. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + + + The minimum SSL/TLS protocol version that the distribution can use to communicate with viewers. To specify a minimum version, choose a value for ``MinimumProtocolVersion``. For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) in the *Amazon CloudFront Developer Guide*. + + The location of the SSL/TLS certificate, [(ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) (recommended) or [(IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html). You specify the location by setting a value in one of the following fields (not both): + + ``ACMCertificateArn`` (In CloudFormation, this field name is ``AcmCertificateArn``. Note the different capitalization.) + + ``IAMCertificateId`` (In CloudFormation, this field name is ``IamCertificateId``. Note the different capitalization.) + + + All distributions support HTTPS connections from viewers. To require viewers to use HTTPS only, or to redirect them from HTTP to HTTPS, use ``ViewerProtocolPolicy`` in the ``CacheBehavior`` or ``DefaultCacheBehavior``. To specify how CloudFront should use SSL/TLS to communicate with your custom origin, use ``CustomOriginConfig``. + For more information, see [Using HTTPS with CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html) and [Using Alternate Domain Names and HTTPS](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-alternate-domain-names.html) in the *Amazon CloudFront Developer Guide*. :param str acm_certificate_arn: In CloudFormation, this field name is ``AcmCertificateArn``. Note the different capitalization. If the distribution uses ``Aliases`` (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in [(ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html), provide the Amazon Resource Name (ARN) of the ACM certificate. CloudFront only supports ACM certificates in the US East (N. Virginia) Region (``us-east-1``). If you specify an ACM certificate ARN, you must also specify values for ``MinimumProtocolVersion`` and ``SSLSupportMethod``. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) @@ -3122,12 +3180,15 @@ def __init__(__self__, *, For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*. On the CloudFront console, this setting is called *Security Policy*. - When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-onl + When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-only``), you must specify ``TLSv1`` or higher. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` (you set ``CloudFrontDefaultCertificate`` to ``true``), CloudFront automatically sets the security policy to ``TLSv1`` regardless of the value that you set here. :param str ssl_support_method: In CloudFormation, this field name is ``SslSupportMethod``. Note the different capitalization. If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from. + ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication). This is recommended. Most browsers and clients support SNI. + ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront. + ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [Center](https://docs.aws.amazon.com/support/home). + + If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``, don't set a value for this field. """ if acm_certificate_arn is not None: pulumi.set(__self__, "acm_certificate_arn", acm_certificate_arn) @@ -3182,7 +3243,8 @@ def minimum_protocol_version(self) -> Optional[str]: For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*. On the CloudFront console, this setting is called *Security Policy*. - When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-onl + When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-only``), you must specify ``TLSv1`` or higher. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) + If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net`` (you set ``CloudFrontDefaultCertificate`` to ``true``), CloudFront automatically sets the security policy to ``TLSv1`` regardless of the value that you set here. """ return pulumi.get(self, "minimum_protocol_version") @@ -3195,6 +3257,8 @@ def ssl_support_method(self) -> Optional[str]: + ``sni-only`` – The distribution accepts HTTPS connections from only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication). This is recommended. Most browsers and clients support SNI. + ``vip`` – The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront. + ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [Center](https://docs.aws.amazon.com/support/home). + + If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``, don't set a value for this field. """ return pulumi.get(self, "ssl_support_method") diff --git a/sdk/python/pulumi_aws_native/codeartifact/__init__.py b/sdk/python/pulumi_aws_native/codeartifact/__init__.py index e8c59d25f9..25e4e6127f 100644 --- a/sdk/python/pulumi_aws_native/codeartifact/__init__.py +++ b/sdk/python/pulumi_aws_native/codeartifact/__init__.py @@ -5,7 +5,12 @@ from .. import _utilities import typing # Export this package's modules as members: +from ._enums import * from .domain import * from .get_domain import * +from .get_package_group import * from .get_repository import * +from .package_group import * from .repository import * +from ._inputs import * +from . import outputs diff --git a/sdk/python/pulumi_aws_native/codeartifact/_enums.py b/sdk/python/pulumi_aws_native/codeartifact/_enums.py new file mode 100644 index 0000000000..6c9b293043 --- /dev/null +++ b/sdk/python/pulumi_aws_native/codeartifact/_enums.py @@ -0,0 +1,16 @@ +# 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__ = [ + 'PackageGroupRestrictionTypeRestrictionMode', +] + + +class PackageGroupRestrictionTypeRestrictionMode(str, Enum): + ALLOW = "ALLOW" + BLOCK = "BLOCK" + ALLOW_SPECIFIC_REPOSITORIES = "ALLOW_SPECIFIC_REPOSITORIES" + INHERIT = "INHERIT" diff --git a/sdk/python/pulumi_aws_native/codeartifact/_inputs.py b/sdk/python/pulumi_aws_native/codeartifact/_inputs.py new file mode 100644 index 0000000000..e6025254fd --- /dev/null +++ b/sdk/python/pulumi_aws_native/codeartifact/_inputs.py @@ -0,0 +1,123 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from ._enums import * + +__all__ = [ + 'PackageGroupOriginConfigurationArgs', + 'PackageGroupRestrictionTypeArgs', + 'PackageGroupRestrictionsArgs', +] + +@pulumi.input_type +class PackageGroupOriginConfigurationArgs: + def __init__(__self__, *, + restrictions: pulumi.Input['PackageGroupRestrictionsArgs']): + """ + :param pulumi.Input['PackageGroupRestrictionsArgs'] restrictions: The origin configuration that is applied to the package group. + """ + pulumi.set(__self__, "restrictions", restrictions) + + @property + @pulumi.getter + def restrictions(self) -> pulumi.Input['PackageGroupRestrictionsArgs']: + """ + The origin configuration that is applied to the package group. + """ + return pulumi.get(self, "restrictions") + + @restrictions.setter + def restrictions(self, value: pulumi.Input['PackageGroupRestrictionsArgs']): + pulumi.set(self, "restrictions", value) + + +@pulumi.input_type +class PackageGroupRestrictionTypeArgs: + def __init__(__self__, *, + restriction_mode: pulumi.Input['PackageGroupRestrictionTypeRestrictionMode'], + repositories: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + pulumi.set(__self__, "restriction_mode", restriction_mode) + if repositories is not None: + pulumi.set(__self__, "repositories", repositories) + + @property + @pulumi.getter(name="restrictionMode") + def restriction_mode(self) -> pulumi.Input['PackageGroupRestrictionTypeRestrictionMode']: + return pulumi.get(self, "restriction_mode") + + @restriction_mode.setter + def restriction_mode(self, value: pulumi.Input['PackageGroupRestrictionTypeRestrictionMode']): + pulumi.set(self, "restriction_mode", value) + + @property + @pulumi.getter + def repositories(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + return pulumi.get(self, "repositories") + + @repositories.setter + def repositories(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "repositories", value) + + +@pulumi.input_type +class PackageGroupRestrictionsArgs: + def __init__(__self__, *, + external_upstream: Optional[pulumi.Input['PackageGroupRestrictionTypeArgs']] = None, + internal_upstream: Optional[pulumi.Input['PackageGroupRestrictionTypeArgs']] = None, + publish: Optional[pulumi.Input['PackageGroupRestrictionTypeArgs']] = None): + """ + :param pulumi.Input['PackageGroupRestrictionTypeArgs'] external_upstream: The external upstream restriction determines if new package versions can be ingested or retained from external connections. + :param pulumi.Input['PackageGroupRestrictionTypeArgs'] internal_upstream: The internal upstream restriction determines if new package versions can be ingested or retained from upstream repositories. + :param pulumi.Input['PackageGroupRestrictionTypeArgs'] publish: The publish restriction determines if new package versions can be published. + """ + if external_upstream is not None: + pulumi.set(__self__, "external_upstream", external_upstream) + if internal_upstream is not None: + pulumi.set(__self__, "internal_upstream", internal_upstream) + if publish is not None: + pulumi.set(__self__, "publish", publish) + + @property + @pulumi.getter(name="externalUpstream") + def external_upstream(self) -> Optional[pulumi.Input['PackageGroupRestrictionTypeArgs']]: + """ + The external upstream restriction determines if new package versions can be ingested or retained from external connections. + """ + return pulumi.get(self, "external_upstream") + + @external_upstream.setter + def external_upstream(self, value: Optional[pulumi.Input['PackageGroupRestrictionTypeArgs']]): + pulumi.set(self, "external_upstream", value) + + @property + @pulumi.getter(name="internalUpstream") + def internal_upstream(self) -> Optional[pulumi.Input['PackageGroupRestrictionTypeArgs']]: + """ + The internal upstream restriction determines if new package versions can be ingested or retained from upstream repositories. + """ + return pulumi.get(self, "internal_upstream") + + @internal_upstream.setter + def internal_upstream(self, value: Optional[pulumi.Input['PackageGroupRestrictionTypeArgs']]): + pulumi.set(self, "internal_upstream", value) + + @property + @pulumi.getter + def publish(self) -> Optional[pulumi.Input['PackageGroupRestrictionTypeArgs']]: + """ + The publish restriction determines if new package versions can be published. + """ + return pulumi.get(self, "publish") + + @publish.setter + def publish(self, value: Optional[pulumi.Input['PackageGroupRestrictionTypeArgs']]): + pulumi.set(self, "publish", value) + + diff --git a/sdk/python/pulumi_aws_native/codeartifact/get_package_group.py b/sdk/python/pulumi_aws_native/codeartifact/get_package_group.py new file mode 100644 index 0000000000..c619b3bc71 --- /dev/null +++ b/sdk/python/pulumi_aws_native/codeartifact/get_package_group.py @@ -0,0 +1,138 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from .. import outputs as _root_outputs +from ._enums import * + +__all__ = [ + 'GetPackageGroupResult', + 'AwaitableGetPackageGroupResult', + 'get_package_group', + 'get_package_group_output', +] + +@pulumi.output_type +class GetPackageGroupResult: + def __init__(__self__, arn=None, contact_info=None, description=None, domain_owner=None, origin_configuration=None, tags=None): + if arn and not isinstance(arn, str): + raise TypeError("Expected argument 'arn' to be a str") + pulumi.set(__self__, "arn", arn) + if contact_info and not isinstance(contact_info, str): + raise TypeError("Expected argument 'contact_info' to be a str") + pulumi.set(__self__, "contact_info", contact_info) + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if domain_owner and not isinstance(domain_owner, str): + raise TypeError("Expected argument 'domain_owner' to be a str") + pulumi.set(__self__, "domain_owner", domain_owner) + if origin_configuration and not isinstance(origin_configuration, dict): + raise TypeError("Expected argument 'origin_configuration' to be a dict") + pulumi.set(__self__, "origin_configuration", origin_configuration) + 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 arn(self) -> Optional[str]: + """ + The ARN of the package group. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="contactInfo") + def contact_info(self) -> Optional[str]: + """ + The contact info of the package group. + """ + return pulumi.get(self, "contact_info") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + """ + The text description of the package group. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="domainOwner") + def domain_owner(self) -> Optional[str]: + """ + The 12-digit account ID of the AWS account that owns the domain. + """ + return pulumi.get(self, "domain_owner") + + @property + @pulumi.getter(name="originConfiguration") + def origin_configuration(self) -> Optional['outputs.PackageGroupOriginConfiguration']: + """ + The package origin configuration of the package group. + """ + return pulumi.get(self, "origin_configuration") + + @property + @pulumi.getter + def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: + """ + An array of key-value pairs to apply to the package group. + """ + return pulumi.get(self, "tags") + + +class AwaitableGetPackageGroupResult(GetPackageGroupResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetPackageGroupResult( + arn=self.arn, + contact_info=self.contact_info, + description=self.description, + domain_owner=self.domain_owner, + origin_configuration=self.origin_configuration, + tags=self.tags) + + +def get_package_group(arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetPackageGroupResult: + """ + The resource schema to create a CodeArtifact package group. + + + :param str arn: The ARN of the package group. + """ + __args__ = dict() + __args__['arn'] = arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:codeartifact:getPackageGroup', __args__, opts=opts, typ=GetPackageGroupResult).value + + return AwaitableGetPackageGroupResult( + arn=pulumi.get(__ret__, 'arn'), + contact_info=pulumi.get(__ret__, 'contact_info'), + description=pulumi.get(__ret__, 'description'), + domain_owner=pulumi.get(__ret__, 'domain_owner'), + origin_configuration=pulumi.get(__ret__, 'origin_configuration'), + tags=pulumi.get(__ret__, 'tags')) + + +@_utilities.lift_output_func(get_package_group) +def get_package_group_output(arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetPackageGroupResult]: + """ + The resource schema to create a CodeArtifact package group. + + + :param str arn: The ARN of the package group. + """ + ... diff --git a/sdk/python/pulumi_aws_native/codeartifact/outputs.py b/sdk/python/pulumi_aws_native/codeartifact/outputs.py new file mode 100644 index 0000000000..2c9590cf78 --- /dev/null +++ b/sdk/python/pulumi_aws_native/codeartifact/outputs.py @@ -0,0 +1,136 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._enums import * + +__all__ = [ + 'PackageGroupOriginConfiguration', + 'PackageGroupRestrictionType', + 'PackageGroupRestrictions', +] + +@pulumi.output_type +class PackageGroupOriginConfiguration(dict): + def __init__(__self__, *, + restrictions: 'outputs.PackageGroupRestrictions'): + """ + :param 'PackageGroupRestrictions' restrictions: The origin configuration that is applied to the package group. + """ + pulumi.set(__self__, "restrictions", restrictions) + + @property + @pulumi.getter + def restrictions(self) -> 'outputs.PackageGroupRestrictions': + """ + The origin configuration that is applied to the package group. + """ + return pulumi.get(self, "restrictions") + + +@pulumi.output_type +class PackageGroupRestrictionType(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "restrictionMode": + suggest = "restriction_mode" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in PackageGroupRestrictionType. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + PackageGroupRestrictionType.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + PackageGroupRestrictionType.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + restriction_mode: 'PackageGroupRestrictionTypeRestrictionMode', + repositories: Optional[Sequence[str]] = None): + pulumi.set(__self__, "restriction_mode", restriction_mode) + if repositories is not None: + pulumi.set(__self__, "repositories", repositories) + + @property + @pulumi.getter(name="restrictionMode") + def restriction_mode(self) -> 'PackageGroupRestrictionTypeRestrictionMode': + return pulumi.get(self, "restriction_mode") + + @property + @pulumi.getter + def repositories(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "repositories") + + +@pulumi.output_type +class PackageGroupRestrictions(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "externalUpstream": + suggest = "external_upstream" + elif key == "internalUpstream": + suggest = "internal_upstream" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in PackageGroupRestrictions. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + PackageGroupRestrictions.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + PackageGroupRestrictions.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + external_upstream: Optional['outputs.PackageGroupRestrictionType'] = None, + internal_upstream: Optional['outputs.PackageGroupRestrictionType'] = None, + publish: Optional['outputs.PackageGroupRestrictionType'] = None): + """ + :param 'PackageGroupRestrictionType' external_upstream: The external upstream restriction determines if new package versions can be ingested or retained from external connections. + :param 'PackageGroupRestrictionType' internal_upstream: The internal upstream restriction determines if new package versions can be ingested or retained from upstream repositories. + :param 'PackageGroupRestrictionType' publish: The publish restriction determines if new package versions can be published. + """ + if external_upstream is not None: + pulumi.set(__self__, "external_upstream", external_upstream) + if internal_upstream is not None: + pulumi.set(__self__, "internal_upstream", internal_upstream) + if publish is not None: + pulumi.set(__self__, "publish", publish) + + @property + @pulumi.getter(name="externalUpstream") + def external_upstream(self) -> Optional['outputs.PackageGroupRestrictionType']: + """ + The external upstream restriction determines if new package versions can be ingested or retained from external connections. + """ + return pulumi.get(self, "external_upstream") + + @property + @pulumi.getter(name="internalUpstream") + def internal_upstream(self) -> Optional['outputs.PackageGroupRestrictionType']: + """ + The internal upstream restriction determines if new package versions can be ingested or retained from upstream repositories. + """ + return pulumi.get(self, "internal_upstream") + + @property + @pulumi.getter + def publish(self) -> Optional['outputs.PackageGroupRestrictionType']: + """ + The publish restriction determines if new package versions can be published. + """ + return pulumi.get(self, "publish") + + diff --git a/sdk/python/pulumi_aws_native/codeartifact/package_group.py b/sdk/python/pulumi_aws_native/codeartifact/package_group.py new file mode 100644 index 0000000000..64ca9c6088 --- /dev/null +++ b/sdk/python/pulumi_aws_native/codeartifact/package_group.py @@ -0,0 +1,312 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +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__ = ['PackageGroupArgs', 'PackageGroup'] + +@pulumi.input_type +class PackageGroupArgs: + def __init__(__self__, *, + domain_name: pulumi.Input[str], + pattern: pulumi.Input[str], + contact_info: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + domain_owner: Optional[pulumi.Input[str]] = None, + origin_configuration: Optional[pulumi.Input['PackageGroupOriginConfigurationArgs']] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None): + """ + The set of arguments for constructing a PackageGroup resource. + :param pulumi.Input[str] domain_name: The name of the domain that contains the package group. + :param pulumi.Input[str] pattern: The package group pattern that is used to gather packages. + :param pulumi.Input[str] contact_info: The contact info of the package group. + :param pulumi.Input[str] description: The text description of the package group. + :param pulumi.Input[str] domain_owner: The 12-digit account ID of the AWS account that owns the domain. + :param pulumi.Input['PackageGroupOriginConfigurationArgs'] origin_configuration: The package origin configuration of the package group. + :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: An array of key-value pairs to apply to the package group. + """ + pulumi.set(__self__, "domain_name", domain_name) + pulumi.set(__self__, "pattern", pattern) + if contact_info is not None: + pulumi.set(__self__, "contact_info", contact_info) + if description is not None: + pulumi.set(__self__, "description", description) + if domain_owner is not None: + pulumi.set(__self__, "domain_owner", domain_owner) + if origin_configuration is not None: + pulumi.set(__self__, "origin_configuration", origin_configuration) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="domainName") + def domain_name(self) -> pulumi.Input[str]: + """ + The name of the domain that contains the package group. + """ + return pulumi.get(self, "domain_name") + + @domain_name.setter + def domain_name(self, value: pulumi.Input[str]): + pulumi.set(self, "domain_name", value) + + @property + @pulumi.getter + def pattern(self) -> pulumi.Input[str]: + """ + The package group pattern that is used to gather packages. + """ + return pulumi.get(self, "pattern") + + @pattern.setter + def pattern(self, value: pulumi.Input[str]): + pulumi.set(self, "pattern", value) + + @property + @pulumi.getter(name="contactInfo") + def contact_info(self) -> Optional[pulumi.Input[str]]: + """ + The contact info of the package group. + """ + return pulumi.get(self, "contact_info") + + @contact_info.setter + def contact_info(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "contact_info", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + The text description of the package group. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="domainOwner") + def domain_owner(self) -> Optional[pulumi.Input[str]]: + """ + The 12-digit account ID of the AWS account that owns the domain. + """ + return pulumi.get(self, "domain_owner") + + @domain_owner.setter + def domain_owner(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "domain_owner", value) + + @property + @pulumi.getter(name="originConfiguration") + def origin_configuration(self) -> Optional[pulumi.Input['PackageGroupOriginConfigurationArgs']]: + """ + The package origin configuration of the package group. + """ + return pulumi.get(self, "origin_configuration") + + @origin_configuration.setter + def origin_configuration(self, value: Optional[pulumi.Input['PackageGroupOriginConfigurationArgs']]): + pulumi.set(self, "origin_configuration", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]: + """ + An array of key-value pairs to apply to the package group. + """ + 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 PackageGroup(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + contact_info: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + domain_owner: Optional[pulumi.Input[str]] = None, + origin_configuration: Optional[pulumi.Input[pulumi.InputType['PackageGroupOriginConfigurationArgs']]] = None, + pattern: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, + __props__=None): + """ + The resource schema to create a CodeArtifact package group. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] contact_info: The contact info of the package group. + :param pulumi.Input[str] description: The text description of the package group. + :param pulumi.Input[str] domain_name: The name of the domain that contains the package group. + :param pulumi.Input[str] domain_owner: The 12-digit account ID of the AWS account that owns the domain. + :param pulumi.Input[pulumi.InputType['PackageGroupOriginConfigurationArgs']] origin_configuration: The package origin configuration of the package group. + :param pulumi.Input[str] pattern: The package group pattern that is used to gather packages. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]] tags: An array of key-value pairs to apply to the package group. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: PackageGroupArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + The resource schema to create a CodeArtifact package group. + + :param str resource_name: The name of the resource. + :param PackageGroupArgs 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(PackageGroupArgs, 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, + contact_info: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + domain_owner: Optional[pulumi.Input[str]] = None, + origin_configuration: Optional[pulumi.Input[pulumi.InputType['PackageGroupOriginConfigurationArgs']]] = None, + pattern: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = 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__ = PackageGroupArgs.__new__(PackageGroupArgs) + + __props__.__dict__["contact_info"] = contact_info + __props__.__dict__["description"] = description + if domain_name is None and not opts.urn: + raise TypeError("Missing required property 'domain_name'") + __props__.__dict__["domain_name"] = domain_name + __props__.__dict__["domain_owner"] = domain_owner + __props__.__dict__["origin_configuration"] = origin_configuration + if pattern is None and not opts.urn: + raise TypeError("Missing required property 'pattern'") + __props__.__dict__["pattern"] = pattern + __props__.__dict__["tags"] = tags + __props__.__dict__["arn"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["domainName", "pattern"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(PackageGroup, __self__).__init__( + 'aws-native:codeartifact:PackageGroup', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'PackageGroup': + """ + Get an existing PackageGroup 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__ = PackageGroupArgs.__new__(PackageGroupArgs) + + __props__.__dict__["arn"] = None + __props__.__dict__["contact_info"] = None + __props__.__dict__["description"] = None + __props__.__dict__["domain_name"] = None + __props__.__dict__["domain_owner"] = None + __props__.__dict__["origin_configuration"] = None + __props__.__dict__["pattern"] = None + __props__.__dict__["tags"] = None + return PackageGroup(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + The ARN of the package group. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="contactInfo") + def contact_info(self) -> pulumi.Output[Optional[str]]: + """ + The contact info of the package group. + """ + return pulumi.get(self, "contact_info") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + """ + The text description of the package group. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="domainName") + def domain_name(self) -> pulumi.Output[str]: + """ + The name of the domain that contains the package group. + """ + return pulumi.get(self, "domain_name") + + @property + @pulumi.getter(name="domainOwner") + def domain_owner(self) -> pulumi.Output[Optional[str]]: + """ + The 12-digit account ID of the AWS account that owns the domain. + """ + return pulumi.get(self, "domain_owner") + + @property + @pulumi.getter(name="originConfiguration") + def origin_configuration(self) -> pulumi.Output[Optional['outputs.PackageGroupOriginConfiguration']]: + """ + The package origin configuration of the package group. + """ + return pulumi.get(self, "origin_configuration") + + @property + @pulumi.getter + def pattern(self) -> pulumi.Output[str]: + """ + The package group pattern that is used to gather packages. + """ + return pulumi.get(self, "pattern") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: + """ + An array of key-value pairs to apply to the package group. + """ + return pulumi.get(self, "tags") + diff --git a/sdk/python/pulumi_aws_native/codeconnections/__init__.py b/sdk/python/pulumi_aws_native/codeconnections/__init__.py new file mode 100644 index 0000000000..19f0778f1c --- /dev/null +++ b/sdk/python/pulumi_aws_native/codeconnections/__init__.py @@ -0,0 +1,9 @@ +# 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 .. import _utilities +import typing +# Export this package's modules as members: +from .connection import * +from .get_connection import * diff --git a/sdk/python/pulumi_aws_native/codeconnections/connection.py b/sdk/python/pulumi_aws_native/codeconnections/connection.py new file mode 100644 index 0000000000..b65ad2474b --- /dev/null +++ b/sdk/python/pulumi_aws_native/codeconnections/connection.py @@ -0,0 +1,240 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from .. import _inputs as _root_inputs +from .. import outputs as _root_outputs + +__all__ = ['ConnectionArgs', 'Connection'] + +@pulumi.input_type +class ConnectionArgs: + def __init__(__self__, *, + connection_name: Optional[pulumi.Input[str]] = None, + host_arn: Optional[pulumi.Input[str]] = None, + provider_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None): + """ + The set of arguments for constructing a Connection resource. + :param pulumi.Input[str] connection_name: The name of the connection. Connection names must be unique in an AWS user account. + :param pulumi.Input[str] host_arn: The host arn configured to represent the infrastructure where your third-party provider is installed. You must specify either a ProviderType or a HostArn. + :param pulumi.Input[str] provider_type: The name of the external provider where your third-party code repository is configured. You must specify either a ProviderType or a HostArn. + :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: Specifies the tags applied to a connection. + """ + if connection_name is not None: + pulumi.set(__self__, "connection_name", connection_name) + if host_arn is not None: + pulumi.set(__self__, "host_arn", host_arn) + if provider_type is not None: + pulumi.set(__self__, "provider_type", provider_type) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="connectionName") + def connection_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the connection. Connection names must be unique in an AWS user account. + """ + return pulumi.get(self, "connection_name") + + @connection_name.setter + def connection_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "connection_name", value) + + @property + @pulumi.getter(name="hostArn") + def host_arn(self) -> Optional[pulumi.Input[str]]: + """ + The host arn configured to represent the infrastructure where your third-party provider is installed. You must specify either a ProviderType or a HostArn. + """ + return pulumi.get(self, "host_arn") + + @host_arn.setter + def host_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "host_arn", value) + + @property + @pulumi.getter(name="providerType") + def provider_type(self) -> Optional[pulumi.Input[str]]: + """ + The name of the external provider where your third-party code repository is configured. You must specify either a ProviderType or a HostArn. + """ + return pulumi.get(self, "provider_type") + + @provider_type.setter + def provider_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "provider_type", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]: + """ + Specifies the tags applied to a connection. + """ + 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 Connection(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + connection_name: Optional[pulumi.Input[str]] = None, + host_arn: Optional[pulumi.Input[str]] = None, + provider_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, + __props__=None): + """ + Schema for AWS::CodeConnections::Connection resource which can be used to connect external source providers with other AWS services (i.e. AWS CodePipeline) + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] connection_name: The name of the connection. Connection names must be unique in an AWS user account. + :param pulumi.Input[str] host_arn: The host arn configured to represent the infrastructure where your third-party provider is installed. You must specify either a ProviderType or a HostArn. + :param pulumi.Input[str] provider_type: The name of the external provider where your third-party code repository is configured. You must specify either a ProviderType or a HostArn. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]] tags: Specifies the tags applied to a connection. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[ConnectionArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Schema for AWS::CodeConnections::Connection resource which can be used to connect external source providers with other AWS services (i.e. AWS CodePipeline) + + :param str resource_name: The name of the resource. + :param ConnectionArgs 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(ConnectionArgs, 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, + connection_name: Optional[pulumi.Input[str]] = None, + host_arn: Optional[pulumi.Input[str]] = None, + provider_type: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = 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__ = ConnectionArgs.__new__(ConnectionArgs) + + __props__.__dict__["connection_name"] = connection_name + __props__.__dict__["host_arn"] = host_arn + __props__.__dict__["provider_type"] = provider_type + __props__.__dict__["tags"] = tags + __props__.__dict__["connection_arn"] = None + __props__.__dict__["connection_status"] = None + __props__.__dict__["owner_account_id"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["connectionName", "hostArn", "providerType"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(Connection, __self__).__init__( + 'aws-native:codeconnections:Connection', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'Connection': + """ + Get an existing Connection 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__ = ConnectionArgs.__new__(ConnectionArgs) + + __props__.__dict__["connection_arn"] = None + __props__.__dict__["connection_name"] = None + __props__.__dict__["connection_status"] = None + __props__.__dict__["host_arn"] = None + __props__.__dict__["owner_account_id"] = None + __props__.__dict__["provider_type"] = None + __props__.__dict__["tags"] = None + return Connection(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="connectionArn") + def connection_arn(self) -> pulumi.Output[str]: + """ + The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services. + """ + return pulumi.get(self, "connection_arn") + + @property + @pulumi.getter(name="connectionName") + def connection_name(self) -> pulumi.Output[str]: + """ + The name of the connection. Connection names must be unique in an AWS user account. + """ + return pulumi.get(self, "connection_name") + + @property + @pulumi.getter(name="connectionStatus") + def connection_status(self) -> pulumi.Output[str]: + """ + The current status of the connection. + """ + return pulumi.get(self, "connection_status") + + @property + @pulumi.getter(name="hostArn") + def host_arn(self) -> pulumi.Output[Optional[str]]: + """ + The host arn configured to represent the infrastructure where your third-party provider is installed. You must specify either a ProviderType or a HostArn. + """ + return pulumi.get(self, "host_arn") + + @property + @pulumi.getter(name="ownerAccountId") + def owner_account_id(self) -> pulumi.Output[str]: + """ + The name of the external provider where your third-party code repository is configured. For Bitbucket, this is the account ID of the owner of the Bitbucket repository. + """ + return pulumi.get(self, "owner_account_id") + + @property + @pulumi.getter(name="providerType") + def provider_type(self) -> pulumi.Output[Optional[str]]: + """ + The name of the external provider where your third-party code repository is configured. You must specify either a ProviderType or a HostArn. + """ + return pulumi.get(self, "provider_type") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: + """ + Specifies the tags applied to a connection. + """ + return pulumi.get(self, "tags") + diff --git a/sdk/python/pulumi_aws_native/codeconnections/get_connection.py b/sdk/python/pulumi_aws_native/codeconnections/get_connection.py new file mode 100644 index 0000000000..c45c78e5ba --- /dev/null +++ b/sdk/python/pulumi_aws_native/codeconnections/get_connection.py @@ -0,0 +1,110 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from .. import outputs as _root_outputs + +__all__ = [ + 'GetConnectionResult', + 'AwaitableGetConnectionResult', + 'get_connection', + 'get_connection_output', +] + +@pulumi.output_type +class GetConnectionResult: + def __init__(__self__, connection_arn=None, connection_status=None, owner_account_id=None, tags=None): + if connection_arn and not isinstance(connection_arn, str): + raise TypeError("Expected argument 'connection_arn' to be a str") + pulumi.set(__self__, "connection_arn", connection_arn) + if connection_status and not isinstance(connection_status, str): + raise TypeError("Expected argument 'connection_status' to be a str") + pulumi.set(__self__, "connection_status", connection_status) + if owner_account_id and not isinstance(owner_account_id, str): + raise TypeError("Expected argument 'owner_account_id' to be a str") + pulumi.set(__self__, "owner_account_id", owner_account_id) + if tags and not isinstance(tags, list): + raise TypeError("Expected argument 'tags' to be a list") + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="connectionArn") + def connection_arn(self) -> Optional[str]: + """ + The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services. + """ + return pulumi.get(self, "connection_arn") + + @property + @pulumi.getter(name="connectionStatus") + def connection_status(self) -> Optional[str]: + """ + The current status of the connection. + """ + return pulumi.get(self, "connection_status") + + @property + @pulumi.getter(name="ownerAccountId") + def owner_account_id(self) -> Optional[str]: + """ + The name of the external provider where your third-party code repository is configured. For Bitbucket, this is the account ID of the owner of the Bitbucket repository. + """ + return pulumi.get(self, "owner_account_id") + + @property + @pulumi.getter + def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: + """ + Specifies the tags applied to a connection. + """ + return pulumi.get(self, "tags") + + +class AwaitableGetConnectionResult(GetConnectionResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetConnectionResult( + connection_arn=self.connection_arn, + connection_status=self.connection_status, + owner_account_id=self.owner_account_id, + tags=self.tags) + + +def get_connection(connection_arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetConnectionResult: + """ + Schema for AWS::CodeConnections::Connection resource which can be used to connect external source providers with other AWS services (i.e. AWS CodePipeline) + + + :param str connection_arn: The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services. + """ + __args__ = dict() + __args__['connectionArn'] = connection_arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:codeconnections:getConnection', __args__, opts=opts, typ=GetConnectionResult).value + + return AwaitableGetConnectionResult( + connection_arn=pulumi.get(__ret__, 'connection_arn'), + connection_status=pulumi.get(__ret__, 'connection_status'), + owner_account_id=pulumi.get(__ret__, 'owner_account_id'), + tags=pulumi.get(__ret__, 'tags')) + + +@_utilities.lift_output_func(get_connection) +def get_connection_output(connection_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetConnectionResult]: + """ + Schema for AWS::CodeConnections::Connection resource which can be used to connect external source providers with other AWS services (i.e. AWS CodePipeline) + + + :param str connection_arn: The Amazon Resource Name (ARN) of the connection. The ARN is used as the connection reference when the connection is shared between AWS services. + """ + ... diff --git a/sdk/python/pulumi_aws_native/codestarconnections/__init__.py b/sdk/python/pulumi_aws_native/codestarconnections/__init__.py index 3617bdebbf..6ccf6366ef 100644 --- a/sdk/python/pulumi_aws_native/codestarconnections/__init__.py +++ b/sdk/python/pulumi_aws_native/codestarconnections/__init__.py @@ -5,6 +5,7 @@ from .. import _utilities import typing # Export this package's modules as members: +from ._enums import * from .connection import * from .get_connection import * from .get_repository_link import * diff --git a/sdk/python/pulumi_aws_native/codestarconnections/_enums.py b/sdk/python/pulumi_aws_native/codestarconnections/_enums.py new file mode 100644 index 0000000000..e8d9af9aca --- /dev/null +++ b/sdk/python/pulumi_aws_native/codestarconnections/_enums.py @@ -0,0 +1,50 @@ +# 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__ = [ + 'RepositoryLinkProviderType', + 'SyncConfigurationProviderType', + 'SyncConfigurationPublishDeploymentStatus', + 'SyncConfigurationTriggerResourceUpdateOn', +] + + +class RepositoryLinkProviderType(str, Enum): + """ + The name of the external provider where your third-party code repository is configured. + """ + GIT_HUB = "GitHub" + BITBUCKET = "Bitbucket" + GIT_HUB_ENTERPRISE = "GitHubEnterprise" + GIT_LAB = "GitLab" + GIT_LAB_SELF_MANAGED = "GitLabSelfManaged" + + +class SyncConfigurationProviderType(str, Enum): + """ + The name of the external provider where your third-party code repository is configured. + """ + GIT_HUB = "GitHub" + BITBUCKET = "Bitbucket" + GIT_HUB_ENTERPRISE = "GitHubEnterprise" + GIT_LAB = "GitLab" + GIT_LAB_SELF_MANAGED = "GitLabSelfManaged" + + +class SyncConfigurationPublishDeploymentStatus(str, Enum): + """ + Whether to enable or disable publishing of deployment status to source providers. + """ + ENABLED = "ENABLED" + DISABLED = "DISABLED" + + +class SyncConfigurationTriggerResourceUpdateOn(str, Enum): + """ + When to trigger Git sync to begin the stack update. + """ + ANY_CHANGE = "ANY_CHANGE" + FILE_CHANGE = "FILE_CHANGE" diff --git a/sdk/python/pulumi_aws_native/codestarconnections/get_repository_link.py b/sdk/python/pulumi_aws_native/codestarconnections/get_repository_link.py index 592c4a9c88..02fe8dd220 100644 --- a/sdk/python/pulumi_aws_native/codestarconnections/get_repository_link.py +++ b/sdk/python/pulumi_aws_native/codestarconnections/get_repository_link.py @@ -9,6 +9,7 @@ from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities from .. import outputs as _root_outputs +from ._enums import * __all__ = [ 'GetRepositoryLinkResult', @@ -57,7 +58,7 @@ def encryption_key_arn(self) -> Optional[str]: @property @pulumi.getter(name="providerType") - def provider_type(self) -> Optional[str]: + def provider_type(self) -> Optional['RepositoryLinkProviderType']: """ The name of the external provider where your third-party code repository is configured. """ diff --git a/sdk/python/pulumi_aws_native/codestarconnections/get_sync_configuration.py b/sdk/python/pulumi_aws_native/codestarconnections/get_sync_configuration.py index dfd2453e69..6800724d6c 100644 --- a/sdk/python/pulumi_aws_native/codestarconnections/get_sync_configuration.py +++ b/sdk/python/pulumi_aws_native/codestarconnections/get_sync_configuration.py @@ -8,6 +8,7 @@ import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities +from ._enums import * __all__ = [ 'GetSyncConfigurationResult', @@ -18,7 +19,7 @@ @pulumi.output_type class GetSyncConfigurationResult: - def __init__(__self__, branch=None, config_file=None, owner_id=None, provider_type=None, repository_link_id=None, repository_name=None, role_arn=None): + def __init__(__self__, branch=None, config_file=None, owner_id=None, provider_type=None, publish_deployment_status=None, repository_link_id=None, repository_name=None, role_arn=None, trigger_resource_update_on=None): if branch and not isinstance(branch, str): raise TypeError("Expected argument 'branch' to be a str") pulumi.set(__self__, "branch", branch) @@ -31,6 +32,9 @@ def __init__(__self__, branch=None, config_file=None, owner_id=None, provider_ty if provider_type and not isinstance(provider_type, str): raise TypeError("Expected argument 'provider_type' to be a str") pulumi.set(__self__, "provider_type", provider_type) + if publish_deployment_status and not isinstance(publish_deployment_status, str): + raise TypeError("Expected argument 'publish_deployment_status' to be a str") + pulumi.set(__self__, "publish_deployment_status", publish_deployment_status) if repository_link_id and not isinstance(repository_link_id, str): raise TypeError("Expected argument 'repository_link_id' to be a str") pulumi.set(__self__, "repository_link_id", repository_link_id) @@ -40,6 +44,9 @@ def __init__(__self__, branch=None, config_file=None, owner_id=None, provider_ty if role_arn and not isinstance(role_arn, str): raise TypeError("Expected argument 'role_arn' to be a str") pulumi.set(__self__, "role_arn", role_arn) + if trigger_resource_update_on and not isinstance(trigger_resource_update_on, str): + raise TypeError("Expected argument 'trigger_resource_update_on' to be a str") + pulumi.set(__self__, "trigger_resource_update_on", trigger_resource_update_on) @property @pulumi.getter @@ -67,12 +74,20 @@ def owner_id(self) -> Optional[str]: @property @pulumi.getter(name="providerType") - def provider_type(self) -> Optional[str]: + def provider_type(self) -> Optional['SyncConfigurationProviderType']: """ The name of the external provider where your third-party code repository is configured. """ return pulumi.get(self, "provider_type") + @property + @pulumi.getter(name="publishDeploymentStatus") + def publish_deployment_status(self) -> Optional['SyncConfigurationPublishDeploymentStatus']: + """ + Whether to enable or disable publishing of deployment status to source providers. + """ + return pulumi.get(self, "publish_deployment_status") + @property @pulumi.getter(name="repositoryLinkId") def repository_link_id(self) -> Optional[str]: @@ -97,6 +112,14 @@ def role_arn(self) -> Optional[str]: """ return pulumi.get(self, "role_arn") + @property + @pulumi.getter(name="triggerResourceUpdateOn") + def trigger_resource_update_on(self) -> Optional['SyncConfigurationTriggerResourceUpdateOn']: + """ + When to trigger Git sync to begin the stack update. + """ + return pulumi.get(self, "trigger_resource_update_on") + class AwaitableGetSyncConfigurationResult(GetSyncConfigurationResult): # pylint: disable=using-constant-test @@ -108,9 +131,11 @@ def __await__(self): config_file=self.config_file, owner_id=self.owner_id, provider_type=self.provider_type, + publish_deployment_status=self.publish_deployment_status, repository_link_id=self.repository_link_id, repository_name=self.repository_name, - role_arn=self.role_arn) + role_arn=self.role_arn, + trigger_resource_update_on=self.trigger_resource_update_on) def get_sync_configuration(resource_name: Optional[str] = None, @@ -134,9 +159,11 @@ def get_sync_configuration(resource_name: Optional[str] = None, config_file=pulumi.get(__ret__, 'config_file'), owner_id=pulumi.get(__ret__, 'owner_id'), provider_type=pulumi.get(__ret__, 'provider_type'), + publish_deployment_status=pulumi.get(__ret__, 'publish_deployment_status'), repository_link_id=pulumi.get(__ret__, 'repository_link_id'), repository_name=pulumi.get(__ret__, 'repository_name'), - role_arn=pulumi.get(__ret__, 'role_arn')) + role_arn=pulumi.get(__ret__, 'role_arn'), + trigger_resource_update_on=pulumi.get(__ret__, 'trigger_resource_update_on')) @_utilities.lift_output_func(get_sync_configuration) diff --git a/sdk/python/pulumi_aws_native/codestarconnections/repository_link.py b/sdk/python/pulumi_aws_native/codestarconnections/repository_link.py index 233aae6938..fb734d2355 100644 --- a/sdk/python/pulumi_aws_native/codestarconnections/repository_link.py +++ b/sdk/python/pulumi_aws_native/codestarconnections/repository_link.py @@ -10,6 +10,7 @@ from .. import _utilities from .. import _inputs as _root_inputs from .. import outputs as _root_outputs +from ._enums import * __all__ = ['RepositoryLinkArgs', 'RepositoryLink'] @@ -232,7 +233,7 @@ def owner_id(self) -> pulumi.Output[str]: @property @pulumi.getter(name="providerType") - def provider_type(self) -> pulumi.Output[str]: + def provider_type(self) -> pulumi.Output['RepositoryLinkProviderType']: """ The name of the external provider where your third-party code repository is configured. """ diff --git a/sdk/python/pulumi_aws_native/codestarconnections/sync_configuration.py b/sdk/python/pulumi_aws_native/codestarconnections/sync_configuration.py index af32c6d183..694eddfb9a 100644 --- a/sdk/python/pulumi_aws_native/codestarconnections/sync_configuration.py +++ b/sdk/python/pulumi_aws_native/codestarconnections/sync_configuration.py @@ -8,6 +8,7 @@ import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities +from ._enums import * __all__ = ['SyncConfigurationArgs', 'SyncConfiguration'] @@ -19,7 +20,9 @@ def __init__(__self__, *, repository_link_id: pulumi.Input[str], resource_name: pulumi.Input[str], role_arn: pulumi.Input[str], - sync_type: pulumi.Input[str]): + sync_type: pulumi.Input[str], + publish_deployment_status: Optional[pulumi.Input['SyncConfigurationPublishDeploymentStatus']] = None, + trigger_resource_update_on: Optional[pulumi.Input['SyncConfigurationTriggerResourceUpdateOn']] = None): """ The set of arguments for constructing a SyncConfiguration resource. :param pulumi.Input[str] branch: The name of the branch of the repository from which resources are to be synchronized, @@ -28,6 +31,8 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_name: The name of the resource that is being synchronized to the repository. :param pulumi.Input[str] role_arn: The IAM Role that allows AWS to update CloudFormation stacks based on content in the specified repository. :param pulumi.Input[str] sync_type: The type of resource synchronization service that is to be configured, for example, CFN_STACK_SYNC. + :param pulumi.Input['SyncConfigurationPublishDeploymentStatus'] publish_deployment_status: Whether to enable or disable publishing of deployment status to source providers. + :param pulumi.Input['SyncConfigurationTriggerResourceUpdateOn'] trigger_resource_update_on: When to trigger Git sync to begin the stack update. """ pulumi.set(__self__, "branch", branch) pulumi.set(__self__, "config_file", config_file) @@ -35,6 +40,10 @@ def __init__(__self__, *, pulumi.set(__self__, "resource_name", resource_name) pulumi.set(__self__, "role_arn", role_arn) pulumi.set(__self__, "sync_type", sync_type) + if publish_deployment_status is not None: + pulumi.set(__self__, "publish_deployment_status", publish_deployment_status) + if trigger_resource_update_on is not None: + pulumi.set(__self__, "trigger_resource_update_on", trigger_resource_update_on) @property @pulumi.getter @@ -108,6 +117,30 @@ def sync_type(self) -> pulumi.Input[str]: def sync_type(self, value: pulumi.Input[str]): pulumi.set(self, "sync_type", value) + @property + @pulumi.getter(name="publishDeploymentStatus") + def publish_deployment_status(self) -> Optional[pulumi.Input['SyncConfigurationPublishDeploymentStatus']]: + """ + Whether to enable or disable publishing of deployment status to source providers. + """ + return pulumi.get(self, "publish_deployment_status") + + @publish_deployment_status.setter + def publish_deployment_status(self, value: Optional[pulumi.Input['SyncConfigurationPublishDeploymentStatus']]): + pulumi.set(self, "publish_deployment_status", value) + + @property + @pulumi.getter(name="triggerResourceUpdateOn") + def trigger_resource_update_on(self) -> Optional[pulumi.Input['SyncConfigurationTriggerResourceUpdateOn']]: + """ + When to trigger Git sync to begin the stack update. + """ + return pulumi.get(self, "trigger_resource_update_on") + + @trigger_resource_update_on.setter + def trigger_resource_update_on(self, value: Optional[pulumi.Input['SyncConfigurationTriggerResourceUpdateOn']]): + pulumi.set(self, "trigger_resource_update_on", value) + class SyncConfiguration(pulumi.CustomResource): @overload @@ -116,10 +149,12 @@ def __init__(__self__, opts: Optional[pulumi.ResourceOptions] = None, branch: Optional[pulumi.Input[str]] = None, config_file: Optional[pulumi.Input[str]] = None, + publish_deployment_status: Optional[pulumi.Input['SyncConfigurationPublishDeploymentStatus']] = None, repository_link_id: Optional[pulumi.Input[str]] = None, resource_name_: Optional[pulumi.Input[str]] = None, role_arn: Optional[pulumi.Input[str]] = None, sync_type: Optional[pulumi.Input[str]] = None, + trigger_resource_update_on: Optional[pulumi.Input['SyncConfigurationTriggerResourceUpdateOn']] = None, __props__=None): """ Schema for AWS::CodeStarConnections::SyncConfiguration resource which is used to enables an AWS resource to be synchronized from a source-provider. @@ -128,10 +163,12 @@ def __init__(__self__, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] branch: The name of the branch of the repository from which resources are to be synchronized, :param pulumi.Input[str] config_file: The source provider repository path of the sync configuration file of the respective SyncType. + :param pulumi.Input['SyncConfigurationPublishDeploymentStatus'] publish_deployment_status: Whether to enable or disable publishing of deployment status to source providers. :param pulumi.Input[str] repository_link_id: A UUID that uniquely identifies the RepositoryLink that the SyncConfig is associated with. :param pulumi.Input[str] resource_name_: The name of the resource that is being synchronized to the repository. :param pulumi.Input[str] role_arn: The IAM Role that allows AWS to update CloudFormation stacks based on content in the specified repository. :param pulumi.Input[str] sync_type: The type of resource synchronization service that is to be configured, for example, CFN_STACK_SYNC. + :param pulumi.Input['SyncConfigurationTriggerResourceUpdateOn'] trigger_resource_update_on: When to trigger Git sync to begin the stack update. """ ... @overload @@ -159,10 +196,12 @@ def _internal_init(__self__, opts: Optional[pulumi.ResourceOptions] = None, branch: Optional[pulumi.Input[str]] = None, config_file: Optional[pulumi.Input[str]] = None, + publish_deployment_status: Optional[pulumi.Input['SyncConfigurationPublishDeploymentStatus']] = None, repository_link_id: Optional[pulumi.Input[str]] = None, resource_name_: Optional[pulumi.Input[str]] = None, role_arn: Optional[pulumi.Input[str]] = None, sync_type: Optional[pulumi.Input[str]] = None, + trigger_resource_update_on: Optional[pulumi.Input['SyncConfigurationTriggerResourceUpdateOn']] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -178,6 +217,7 @@ def _internal_init(__self__, if config_file is None and not opts.urn: raise TypeError("Missing required property 'config_file'") __props__.__dict__["config_file"] = config_file + __props__.__dict__["publish_deployment_status"] = publish_deployment_status if repository_link_id is None and not opts.urn: raise TypeError("Missing required property 'repository_link_id'") __props__.__dict__["repository_link_id"] = repository_link_id @@ -190,6 +230,7 @@ def _internal_init(__self__, if sync_type is None and not opts.urn: raise TypeError("Missing required property 'sync_type'") __props__.__dict__["sync_type"] = sync_type + __props__.__dict__["trigger_resource_update_on"] = trigger_resource_update_on __props__.__dict__["owner_id"] = None __props__.__dict__["provider_type"] = None __props__.__dict__["repository_name"] = None @@ -221,11 +262,13 @@ def get(resource_name: str, __props__.__dict__["config_file"] = None __props__.__dict__["owner_id"] = None __props__.__dict__["provider_type"] = None + __props__.__dict__["publish_deployment_status"] = None __props__.__dict__["repository_link_id"] = None __props__.__dict__["repository_name"] = None __props__.__dict__["resource_name"] = None __props__.__dict__["role_arn"] = None __props__.__dict__["sync_type"] = None + __props__.__dict__["trigger_resource_update_on"] = None return SyncConfiguration(resource_name, opts=opts, __props__=__props__) @property @@ -254,12 +297,20 @@ def owner_id(self) -> pulumi.Output[str]: @property @pulumi.getter(name="providerType") - def provider_type(self) -> pulumi.Output[str]: + def provider_type(self) -> pulumi.Output['SyncConfigurationProviderType']: """ The name of the external provider where your third-party code repository is configured. """ return pulumi.get(self, "provider_type") + @property + @pulumi.getter(name="publishDeploymentStatus") + def publish_deployment_status(self) -> pulumi.Output[Optional['SyncConfigurationPublishDeploymentStatus']]: + """ + Whether to enable or disable publishing of deployment status to source providers. + """ + return pulumi.get(self, "publish_deployment_status") + @property @pulumi.getter(name="repositoryLinkId") def repository_link_id(self) -> pulumi.Output[str]: @@ -300,3 +351,11 @@ def sync_type(self) -> pulumi.Output[str]: """ return pulumi.get(self, "sync_type") + @property + @pulumi.getter(name="triggerResourceUpdateOn") + def trigger_resource_update_on(self) -> pulumi.Output[Optional['SyncConfigurationTriggerResourceUpdateOn']]: + """ + When to trigger Git sync to begin the stack update. + """ + return pulumi.get(self, "trigger_resource_update_on") + diff --git a/sdk/python/pulumi_aws_native/connect/_inputs.py b/sdk/python/pulumi_aws_native/connect/_inputs.py index 5b84f80cd8..d530870ff6 100644 --- a/sdk/python/pulumi_aws_native/connect/_inputs.py +++ b/sdk/python/pulumi_aws_native/connect/_inputs.py @@ -57,6 +57,7 @@ 'RuleTaskActionArgs', 'RuleTriggerEventSourceArgs', 'RuleUpdateCaseActionArgs', + 'SecurityProfileApplicationArgs', 'SecurityProfileTagArgs', 'TaskTemplateDefaultFieldValueArgs', 'TaskTemplateFieldIdentifierArgs', @@ -2043,6 +2044,44 @@ def fields(self, value: pulumi.Input[Sequence[pulumi.Input['RuleFieldArgs']]]): pulumi.set(self, "fields", value) +@pulumi.input_type +class SecurityProfileApplicationArgs: + def __init__(__self__, *, + application_permissions: pulumi.Input[Sequence[pulumi.Input[str]]], + namespace: pulumi.Input[str]): + """ + A third-party application's metadata. + :param pulumi.Input[Sequence[pulumi.Input[str]]] application_permissions: The permissions that the agent is granted on the application + :param pulumi.Input[str] namespace: Namespace of the application that you want to give access to. + """ + pulumi.set(__self__, "application_permissions", application_permissions) + pulumi.set(__self__, "namespace", namespace) + + @property + @pulumi.getter(name="applicationPermissions") + def application_permissions(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + """ + The permissions that the agent is granted on the application + """ + return pulumi.get(self, "application_permissions") + + @application_permissions.setter + def application_permissions(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(self, "application_permissions", value) + + @property + @pulumi.getter + def namespace(self) -> pulumi.Input[str]: + """ + Namespace of the application that you want to give access to. + """ + return pulumi.get(self, "namespace") + + @namespace.setter + def namespace(self, value: pulumi.Input[str]): + pulumi.set(self, "namespace", value) + + @pulumi.input_type class SecurityProfileTagArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws_native/connect/get_predefined_attribute.py b/sdk/python/pulumi_aws_native/connect/get_predefined_attribute.py index 75fd4effc0..9c9f41d6df 100644 --- a/sdk/python/pulumi_aws_native/connect/get_predefined_attribute.py +++ b/sdk/python/pulumi_aws_native/connect/get_predefined_attribute.py @@ -19,11 +19,33 @@ @pulumi.output_type class GetPredefinedAttributeResult: - def __init__(__self__, values=None): + def __init__(__self__, last_modified_region=None, last_modified_time=None, values=None): + if last_modified_region and not isinstance(last_modified_region, str): + raise TypeError("Expected argument 'last_modified_region' to be a str") + pulumi.set(__self__, "last_modified_region", last_modified_region) + if last_modified_time and not isinstance(last_modified_time, float): + raise TypeError("Expected argument 'last_modified_time' to be a float") + pulumi.set(__self__, "last_modified_time", last_modified_time) if values and not isinstance(values, dict): raise TypeError("Expected argument 'values' to be a dict") pulumi.set(__self__, "values", values) + @property + @pulumi.getter(name="lastModifiedRegion") + def last_modified_region(self) -> Optional[str]: + """ + Last modified region. + """ + return pulumi.get(self, "last_modified_region") + + @property + @pulumi.getter(name="lastModifiedTime") + def last_modified_time(self) -> Optional[float]: + """ + Last modified time. + """ + return pulumi.get(self, "last_modified_time") + @property @pulumi.getter def values(self) -> Optional['outputs.ValuesProperties']: @@ -39,6 +61,8 @@ def __await__(self): if False: yield self return GetPredefinedAttributeResult( + last_modified_region=self.last_modified_region, + last_modified_time=self.last_modified_time, values=self.values) @@ -59,6 +83,8 @@ def get_predefined_attribute(instance_arn: Optional[str] = None, __ret__ = pulumi.runtime.invoke('aws-native:connect:getPredefinedAttribute', __args__, opts=opts, typ=GetPredefinedAttributeResult).value return AwaitableGetPredefinedAttributeResult( + last_modified_region=pulumi.get(__ret__, 'last_modified_region'), + last_modified_time=pulumi.get(__ret__, 'last_modified_time'), values=pulumi.get(__ret__, 'values')) diff --git a/sdk/python/pulumi_aws_native/connect/get_security_profile.py b/sdk/python/pulumi_aws_native/connect/get_security_profile.py index 347254e170..8ff111b22b 100644 --- a/sdk/python/pulumi_aws_native/connect/get_security_profile.py +++ b/sdk/python/pulumi_aws_native/connect/get_security_profile.py @@ -20,13 +20,28 @@ @pulumi.output_type class GetSecurityProfileResult: - def __init__(__self__, allowed_access_control_tags=None, description=None, permissions=None, security_profile_arn=None, tag_restricted_resources=None, tags=None): + def __init__(__self__, allowed_access_control_hierarchy_group_id=None, allowed_access_control_tags=None, applications=None, description=None, hierarchy_restricted_resources=None, last_modified_region=None, last_modified_time=None, permissions=None, security_profile_arn=None, tag_restricted_resources=None, tags=None): + if allowed_access_control_hierarchy_group_id and not isinstance(allowed_access_control_hierarchy_group_id, str): + raise TypeError("Expected argument 'allowed_access_control_hierarchy_group_id' to be a str") + pulumi.set(__self__, "allowed_access_control_hierarchy_group_id", allowed_access_control_hierarchy_group_id) if allowed_access_control_tags and not isinstance(allowed_access_control_tags, list): raise TypeError("Expected argument 'allowed_access_control_tags' to be a list") pulumi.set(__self__, "allowed_access_control_tags", allowed_access_control_tags) + if applications and not isinstance(applications, list): + raise TypeError("Expected argument 'applications' to be a list") + pulumi.set(__self__, "applications", applications) if description and not isinstance(description, str): raise TypeError("Expected argument 'description' to be a str") pulumi.set(__self__, "description", description) + if hierarchy_restricted_resources and not isinstance(hierarchy_restricted_resources, list): + raise TypeError("Expected argument 'hierarchy_restricted_resources' to be a list") + pulumi.set(__self__, "hierarchy_restricted_resources", hierarchy_restricted_resources) + if last_modified_region and not isinstance(last_modified_region, str): + raise TypeError("Expected argument 'last_modified_region' to be a str") + pulumi.set(__self__, "last_modified_region", last_modified_region) + if last_modified_time and not isinstance(last_modified_time, float): + raise TypeError("Expected argument 'last_modified_time' to be a float") + pulumi.set(__self__, "last_modified_time", last_modified_time) if permissions and not isinstance(permissions, list): raise TypeError("Expected argument 'permissions' to be a list") pulumi.set(__self__, "permissions", permissions) @@ -40,6 +55,14 @@ def __init__(__self__, allowed_access_control_tags=None, description=None, permi raise TypeError("Expected argument 'tags' to be a list") pulumi.set(__self__, "tags", tags) + @property + @pulumi.getter(name="allowedAccessControlHierarchyGroupId") + def allowed_access_control_hierarchy_group_id(self) -> Optional[str]: + """ + The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect. + """ + return pulumi.get(self, "allowed_access_control_hierarchy_group_id") + @property @pulumi.getter(name="allowedAccessControlTags") def allowed_access_control_tags(self) -> Optional[Sequence['outputs.SecurityProfileTag']]: @@ -48,6 +71,14 @@ def allowed_access_control_tags(self) -> Optional[Sequence['outputs.SecurityProf """ return pulumi.get(self, "allowed_access_control_tags") + @property + @pulumi.getter + def applications(self) -> Optional[Sequence['outputs.SecurityProfileApplication']]: + """ + A list of third-party applications that the security profile will give access to. + """ + return pulumi.get(self, "applications") + @property @pulumi.getter def description(self) -> Optional[str]: @@ -56,6 +87,30 @@ def description(self) -> Optional[str]: """ return pulumi.get(self, "description") + @property + @pulumi.getter(name="hierarchyRestrictedResources") + def hierarchy_restricted_resources(self) -> Optional[Sequence[str]]: + """ + The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. + """ + return pulumi.get(self, "hierarchy_restricted_resources") + + @property + @pulumi.getter(name="lastModifiedRegion") + def last_modified_region(self) -> Optional[str]: + """ + The AWS Region where this resource was last modified. + """ + return pulumi.get(self, "last_modified_region") + + @property + @pulumi.getter(name="lastModifiedTime") + def last_modified_time(self) -> Optional[float]: + """ + The timestamp when this resource was last modified. + """ + return pulumi.get(self, "last_modified_time") + @property @pulumi.getter def permissions(self) -> Optional[Sequence[str]]: @@ -95,8 +150,13 @@ def __await__(self): if False: yield self return GetSecurityProfileResult( + allowed_access_control_hierarchy_group_id=self.allowed_access_control_hierarchy_group_id, allowed_access_control_tags=self.allowed_access_control_tags, + applications=self.applications, description=self.description, + hierarchy_restricted_resources=self.hierarchy_restricted_resources, + last_modified_region=self.last_modified_region, + last_modified_time=self.last_modified_time, permissions=self.permissions, security_profile_arn=self.security_profile_arn, tag_restricted_resources=self.tag_restricted_resources, @@ -117,8 +177,13 @@ def get_security_profile(security_profile_arn: Optional[str] = None, __ret__ = pulumi.runtime.invoke('aws-native:connect:getSecurityProfile', __args__, opts=opts, typ=GetSecurityProfileResult).value return AwaitableGetSecurityProfileResult( + allowed_access_control_hierarchy_group_id=pulumi.get(__ret__, 'allowed_access_control_hierarchy_group_id'), allowed_access_control_tags=pulumi.get(__ret__, 'allowed_access_control_tags'), + applications=pulumi.get(__ret__, 'applications'), description=pulumi.get(__ret__, 'description'), + hierarchy_restricted_resources=pulumi.get(__ret__, 'hierarchy_restricted_resources'), + last_modified_region=pulumi.get(__ret__, 'last_modified_region'), + last_modified_time=pulumi.get(__ret__, 'last_modified_time'), permissions=pulumi.get(__ret__, 'permissions'), security_profile_arn=pulumi.get(__ret__, 'security_profile_arn'), tag_restricted_resources=pulumi.get(__ret__, 'tag_restricted_resources'), diff --git a/sdk/python/pulumi_aws_native/connect/outputs.py b/sdk/python/pulumi_aws_native/connect/outputs.py index f0f7363bde..6a20821421 100644 --- a/sdk/python/pulumi_aws_native/connect/outputs.py +++ b/sdk/python/pulumi_aws_native/connect/outputs.py @@ -58,6 +58,7 @@ 'RuleTaskAction', 'RuleTriggerEventSource', 'RuleUpdateCaseAction', + 'SecurityProfileApplication', 'SecurityProfileTag', 'TaskTemplateDefaultFieldValue', 'TaskTemplateField', @@ -2357,6 +2358,56 @@ def fields(self) -> Sequence['outputs.RuleField']: return pulumi.get(self, "fields") +@pulumi.output_type +class SecurityProfileApplication(dict): + """ + A third-party application's metadata. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "applicationPermissions": + suggest = "application_permissions" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in SecurityProfileApplication. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + SecurityProfileApplication.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + SecurityProfileApplication.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + application_permissions: Sequence[str], + namespace: str): + """ + A third-party application's metadata. + :param Sequence[str] application_permissions: The permissions that the agent is granted on the application + :param str namespace: Namespace of the application that you want to give access to. + """ + pulumi.set(__self__, "application_permissions", application_permissions) + pulumi.set(__self__, "namespace", namespace) + + @property + @pulumi.getter(name="applicationPermissions") + def application_permissions(self) -> Sequence[str]: + """ + The permissions that the agent is granted on the application + """ + return pulumi.get(self, "application_permissions") + + @property + @pulumi.getter + def namespace(self) -> str: + """ + Namespace of the application that you want to give access to. + """ + return pulumi.get(self, "namespace") + + @pulumi.output_type class SecurityProfileTag(dict): """ diff --git a/sdk/python/pulumi_aws_native/connect/predefined_attribute.py b/sdk/python/pulumi_aws_native/connect/predefined_attribute.py index 0f5cfa3c04..f25eb87379 100644 --- a/sdk/python/pulumi_aws_native/connect/predefined_attribute.py +++ b/sdk/python/pulumi_aws_native/connect/predefined_attribute.py @@ -128,6 +128,8 @@ def _internal_init(__self__, if values is None and not opts.urn: raise TypeError("Missing required property 'values'") __props__.__dict__["values"] = values + __props__.__dict__["last_modified_region"] = None + __props__.__dict__["last_modified_time"] = None replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["instanceArn", "name"]) opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) super(PredefinedAttribute, __self__).__init__( @@ -153,6 +155,8 @@ def get(resource_name: str, __props__ = PredefinedAttributeArgs.__new__(PredefinedAttributeArgs) __props__.__dict__["instance_arn"] = None + __props__.__dict__["last_modified_region"] = None + __props__.__dict__["last_modified_time"] = None __props__.__dict__["name"] = None __props__.__dict__["values"] = None return PredefinedAttribute(resource_name, opts=opts, __props__=__props__) @@ -165,6 +169,22 @@ def instance_arn(self) -> pulumi.Output[str]: """ return pulumi.get(self, "instance_arn") + @property + @pulumi.getter(name="lastModifiedRegion") + def last_modified_region(self) -> pulumi.Output[str]: + """ + Last modified region. + """ + return pulumi.get(self, "last_modified_region") + + @property + @pulumi.getter(name="lastModifiedTime") + def last_modified_time(self) -> pulumi.Output[float]: + """ + Last modified time. + """ + return pulumi.get(self, "last_modified_time") + @property @pulumi.getter def name(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_aws_native/connect/security_profile.py b/sdk/python/pulumi_aws_native/connect/security_profile.py index bb6304eb0e..6c3665d418 100644 --- a/sdk/python/pulumi_aws_native/connect/security_profile.py +++ b/sdk/python/pulumi_aws_native/connect/security_profile.py @@ -19,8 +19,11 @@ class SecurityProfileArgs: def __init__(__self__, *, instance_arn: pulumi.Input[str], + allowed_access_control_hierarchy_group_id: Optional[pulumi.Input[str]] = None, allowed_access_control_tags: Optional[pulumi.Input[Sequence[pulumi.Input['SecurityProfileTagArgs']]]] = None, + applications: Optional[pulumi.Input[Sequence[pulumi.Input['SecurityProfileApplicationArgs']]]] = None, description: Optional[pulumi.Input[str]] = None, + hierarchy_restricted_resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, permissions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, security_profile_name: Optional[pulumi.Input[str]] = None, tag_restricted_resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, @@ -28,18 +31,27 @@ def __init__(__self__, *, """ The set of arguments for constructing a SecurityProfile resource. :param pulumi.Input[str] instance_arn: The identifier of the Amazon Connect instance. + :param pulumi.Input[str] allowed_access_control_hierarchy_group_id: The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect. :param pulumi.Input[Sequence[pulumi.Input['SecurityProfileTagArgs']]] allowed_access_control_tags: The list of tags that a security profile uses to restrict access to resources in Amazon Connect. + :param pulumi.Input[Sequence[pulumi.Input['SecurityProfileApplicationArgs']]] applications: A list of third-party applications that the security profile will give access to. :param pulumi.Input[str] description: The description of the security profile. + :param pulumi.Input[Sequence[pulumi.Input[str]]] hierarchy_restricted_resources: The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. :param pulumi.Input[Sequence[pulumi.Input[str]]] permissions: Permissions assigned to the security profile. :param pulumi.Input[str] security_profile_name: The name of the security profile. :param pulumi.Input[Sequence[pulumi.Input[str]]] tag_restricted_resources: The list of resources that a security profile applies tag restrictions to in Amazon Connect. :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: The tags used to organize, track, or control access for this resource. """ pulumi.set(__self__, "instance_arn", instance_arn) + if allowed_access_control_hierarchy_group_id is not None: + pulumi.set(__self__, "allowed_access_control_hierarchy_group_id", allowed_access_control_hierarchy_group_id) if allowed_access_control_tags is not None: pulumi.set(__self__, "allowed_access_control_tags", allowed_access_control_tags) + if applications is not None: + pulumi.set(__self__, "applications", applications) if description is not None: pulumi.set(__self__, "description", description) + if hierarchy_restricted_resources is not None: + pulumi.set(__self__, "hierarchy_restricted_resources", hierarchy_restricted_resources) if permissions is not None: pulumi.set(__self__, "permissions", permissions) if security_profile_name is not None: @@ -61,6 +73,18 @@ def instance_arn(self) -> pulumi.Input[str]: def instance_arn(self, value: pulumi.Input[str]): pulumi.set(self, "instance_arn", value) + @property + @pulumi.getter(name="allowedAccessControlHierarchyGroupId") + def allowed_access_control_hierarchy_group_id(self) -> Optional[pulumi.Input[str]]: + """ + The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect. + """ + return pulumi.get(self, "allowed_access_control_hierarchy_group_id") + + @allowed_access_control_hierarchy_group_id.setter + def allowed_access_control_hierarchy_group_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "allowed_access_control_hierarchy_group_id", value) + @property @pulumi.getter(name="allowedAccessControlTags") def allowed_access_control_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SecurityProfileTagArgs']]]]: @@ -73,6 +97,18 @@ def allowed_access_control_tags(self) -> Optional[pulumi.Input[Sequence[pulumi.I def allowed_access_control_tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['SecurityProfileTagArgs']]]]): pulumi.set(self, "allowed_access_control_tags", value) + @property + @pulumi.getter + def applications(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SecurityProfileApplicationArgs']]]]: + """ + A list of third-party applications that the security profile will give access to. + """ + return pulumi.get(self, "applications") + + @applications.setter + def applications(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['SecurityProfileApplicationArgs']]]]): + pulumi.set(self, "applications", value) + @property @pulumi.getter def description(self) -> Optional[pulumi.Input[str]]: @@ -85,6 +121,18 @@ def description(self) -> Optional[pulumi.Input[str]]: def description(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "description", value) + @property + @pulumi.getter(name="hierarchyRestrictedResources") + def hierarchy_restricted_resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. + """ + return pulumi.get(self, "hierarchy_restricted_resources") + + @hierarchy_restricted_resources.setter + def hierarchy_restricted_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "hierarchy_restricted_resources", value) + @property @pulumi.getter def permissions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: @@ -139,8 +187,11 @@ class SecurityProfile(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + allowed_access_control_hierarchy_group_id: Optional[pulumi.Input[str]] = None, allowed_access_control_tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SecurityProfileTagArgs']]]]] = None, + applications: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SecurityProfileApplicationArgs']]]]] = None, description: Optional[pulumi.Input[str]] = None, + hierarchy_restricted_resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, instance_arn: Optional[pulumi.Input[str]] = None, permissions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, security_profile_name: Optional[pulumi.Input[str]] = None, @@ -152,8 +203,11 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] allowed_access_control_hierarchy_group_id: The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SecurityProfileTagArgs']]]] allowed_access_control_tags: The list of tags that a security profile uses to restrict access to resources in Amazon Connect. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SecurityProfileApplicationArgs']]]] applications: A list of third-party applications that the security profile will give access to. :param pulumi.Input[str] description: The description of the security profile. + :param pulumi.Input[Sequence[pulumi.Input[str]]] hierarchy_restricted_resources: The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. :param pulumi.Input[str] instance_arn: The identifier of the Amazon Connect instance. :param pulumi.Input[Sequence[pulumi.Input[str]]] permissions: Permissions assigned to the security profile. :param pulumi.Input[str] security_profile_name: The name of the security profile. @@ -184,8 +238,11 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + allowed_access_control_hierarchy_group_id: Optional[pulumi.Input[str]] = None, allowed_access_control_tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SecurityProfileTagArgs']]]]] = None, + applications: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SecurityProfileApplicationArgs']]]]] = None, description: Optional[pulumi.Input[str]] = None, + hierarchy_restricted_resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, instance_arn: Optional[pulumi.Input[str]] = None, permissions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, security_profile_name: Optional[pulumi.Input[str]] = None, @@ -200,8 +257,11 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = SecurityProfileArgs.__new__(SecurityProfileArgs) + __props__.__dict__["allowed_access_control_hierarchy_group_id"] = allowed_access_control_hierarchy_group_id __props__.__dict__["allowed_access_control_tags"] = allowed_access_control_tags + __props__.__dict__["applications"] = applications __props__.__dict__["description"] = description + __props__.__dict__["hierarchy_restricted_resources"] = hierarchy_restricted_resources if instance_arn is None and not opts.urn: raise TypeError("Missing required property 'instance_arn'") __props__.__dict__["instance_arn"] = instance_arn @@ -209,6 +269,8 @@ def _internal_init(__self__, __props__.__dict__["security_profile_name"] = security_profile_name __props__.__dict__["tag_restricted_resources"] = tag_restricted_resources __props__.__dict__["tags"] = tags + __props__.__dict__["last_modified_region"] = None + __props__.__dict__["last_modified_time"] = None __props__.__dict__["security_profile_arn"] = None replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["instanceArn", "securityProfileName"]) opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) @@ -234,9 +296,14 @@ def get(resource_name: str, __props__ = SecurityProfileArgs.__new__(SecurityProfileArgs) + __props__.__dict__["allowed_access_control_hierarchy_group_id"] = None __props__.__dict__["allowed_access_control_tags"] = None + __props__.__dict__["applications"] = None __props__.__dict__["description"] = None + __props__.__dict__["hierarchy_restricted_resources"] = None __props__.__dict__["instance_arn"] = None + __props__.__dict__["last_modified_region"] = None + __props__.__dict__["last_modified_time"] = None __props__.__dict__["permissions"] = None __props__.__dict__["security_profile_arn"] = None __props__.__dict__["security_profile_name"] = None @@ -244,6 +311,14 @@ def get(resource_name: str, __props__.__dict__["tags"] = None return SecurityProfile(resource_name, opts=opts, __props__=__props__) + @property + @pulumi.getter(name="allowedAccessControlHierarchyGroupId") + def allowed_access_control_hierarchy_group_id(self) -> pulumi.Output[Optional[str]]: + """ + The identifier of the hierarchy group that a security profile uses to restrict access to resources in Amazon Connect. + """ + return pulumi.get(self, "allowed_access_control_hierarchy_group_id") + @property @pulumi.getter(name="allowedAccessControlTags") def allowed_access_control_tags(self) -> pulumi.Output[Optional[Sequence['outputs.SecurityProfileTag']]]: @@ -252,6 +327,14 @@ def allowed_access_control_tags(self) -> pulumi.Output[Optional[Sequence['output """ return pulumi.get(self, "allowed_access_control_tags") + @property + @pulumi.getter + def applications(self) -> pulumi.Output[Optional[Sequence['outputs.SecurityProfileApplication']]]: + """ + A list of third-party applications that the security profile will give access to. + """ + return pulumi.get(self, "applications") + @property @pulumi.getter def description(self) -> pulumi.Output[Optional[str]]: @@ -260,6 +343,14 @@ def description(self) -> pulumi.Output[Optional[str]]: """ return pulumi.get(self, "description") + @property + @pulumi.getter(name="hierarchyRestrictedResources") + def hierarchy_restricted_resources(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + The list of resources that a security profile applies hierarchy restrictions to in Amazon Connect. + """ + return pulumi.get(self, "hierarchy_restricted_resources") + @property @pulumi.getter(name="instanceArn") def instance_arn(self) -> pulumi.Output[str]: @@ -268,6 +359,22 @@ def instance_arn(self) -> pulumi.Output[str]: """ return pulumi.get(self, "instance_arn") + @property + @pulumi.getter(name="lastModifiedRegion") + def last_modified_region(self) -> pulumi.Output[str]: + """ + The AWS Region where this resource was last modified. + """ + return pulumi.get(self, "last_modified_region") + + @property + @pulumi.getter(name="lastModifiedTime") + def last_modified_time(self) -> pulumi.Output[float]: + """ + The timestamp when this resource was last modified. + """ + return pulumi.get(self, "last_modified_time") + @property @pulumi.getter def permissions(self) -> pulumi.Output[Optional[Sequence[str]]]: diff --git a/sdk/python/pulumi_aws_native/docdbelastic/cluster.py b/sdk/python/pulumi_aws_native/docdbelastic/cluster.py index 266fea75a5..bf2db4d5e5 100644 --- a/sdk/python/pulumi_aws_native/docdbelastic/cluster.py +++ b/sdk/python/pulumi_aws_native/docdbelastic/cluster.py @@ -21,9 +21,12 @@ def __init__(__self__, *, shard_capacity: pulumi.Input[int], shard_count: pulumi.Input[int], admin_user_password: Optional[pulumi.Input[str]] = None, + backup_retention_period: Optional[pulumi.Input[int]] = None, cluster_name: Optional[pulumi.Input[str]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, + preferred_backup_window: Optional[pulumi.Input[str]] = None, preferred_maintenance_window: Optional[pulumi.Input[str]] = None, + shard_instance_count: Optional[pulumi.Input[int]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None, vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): @@ -36,12 +39,18 @@ def __init__(__self__, *, pulumi.set(__self__, "shard_count", shard_count) if admin_user_password is not None: pulumi.set(__self__, "admin_user_password", admin_user_password) + if backup_retention_period is not None: + pulumi.set(__self__, "backup_retention_period", backup_retention_period) if cluster_name is not None: pulumi.set(__self__, "cluster_name", cluster_name) if kms_key_id is not None: pulumi.set(__self__, "kms_key_id", kms_key_id) + if preferred_backup_window is not None: + pulumi.set(__self__, "preferred_backup_window", preferred_backup_window) if preferred_maintenance_window is not None: pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) + if shard_instance_count is not None: + pulumi.set(__self__, "shard_instance_count", shard_instance_count) if subnet_ids is not None: pulumi.set(__self__, "subnet_ids", subnet_ids) if tags is not None: @@ -94,6 +103,15 @@ def admin_user_password(self) -> Optional[pulumi.Input[str]]: def admin_user_password(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "admin_user_password", value) + @property + @pulumi.getter(name="backupRetentionPeriod") + def backup_retention_period(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "backup_retention_period") + + @backup_retention_period.setter + def backup_retention_period(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "backup_retention_period", value) + @property @pulumi.getter(name="clusterName") def cluster_name(self) -> Optional[pulumi.Input[str]]: @@ -112,6 +130,15 @@ def kms_key_id(self) -> Optional[pulumi.Input[str]]: def kms_key_id(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "kms_key_id", value) + @property + @pulumi.getter(name="preferredBackupWindow") + def preferred_backup_window(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "preferred_backup_window") + + @preferred_backup_window.setter + def preferred_backup_window(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "preferred_backup_window", value) + @property @pulumi.getter(name="preferredMaintenanceWindow") def preferred_maintenance_window(self) -> Optional[pulumi.Input[str]]: @@ -121,6 +148,15 @@ def preferred_maintenance_window(self) -> Optional[pulumi.Input[str]]: def preferred_maintenance_window(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "preferred_maintenance_window", value) + @property + @pulumi.getter(name="shardInstanceCount") + def shard_instance_count(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "shard_instance_count") + + @shard_instance_count.setter + def shard_instance_count(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "shard_instance_count", value) + @property @pulumi.getter(name="subnetIds") def subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: @@ -157,11 +193,14 @@ def __init__(__self__, admin_user_name: Optional[pulumi.Input[str]] = None, admin_user_password: Optional[pulumi.Input[str]] = None, auth_type: Optional[pulumi.Input[str]] = None, + backup_retention_period: Optional[pulumi.Input[int]] = None, cluster_name: Optional[pulumi.Input[str]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, + preferred_backup_window: Optional[pulumi.Input[str]] = None, preferred_maintenance_window: Optional[pulumi.Input[str]] = None, shard_capacity: Optional[pulumi.Input[int]] = None, shard_count: Optional[pulumi.Input[int]] = None, + shard_instance_count: Optional[pulumi.Input[int]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, @@ -199,11 +238,14 @@ def _internal_init(__self__, admin_user_name: Optional[pulumi.Input[str]] = None, admin_user_password: Optional[pulumi.Input[str]] = None, auth_type: Optional[pulumi.Input[str]] = None, + backup_retention_period: Optional[pulumi.Input[int]] = None, cluster_name: Optional[pulumi.Input[str]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, + preferred_backup_window: Optional[pulumi.Input[str]] = None, preferred_maintenance_window: Optional[pulumi.Input[str]] = None, shard_capacity: Optional[pulumi.Input[int]] = None, shard_count: Optional[pulumi.Input[int]] = None, + shard_instance_count: Optional[pulumi.Input[int]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, vpc_security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, @@ -223,8 +265,10 @@ def _internal_init(__self__, if auth_type is None and not opts.urn: raise TypeError("Missing required property 'auth_type'") __props__.__dict__["auth_type"] = auth_type + __props__.__dict__["backup_retention_period"] = backup_retention_period __props__.__dict__["cluster_name"] = cluster_name __props__.__dict__["kms_key_id"] = kms_key_id + __props__.__dict__["preferred_backup_window"] = preferred_backup_window __props__.__dict__["preferred_maintenance_window"] = preferred_maintenance_window if shard_capacity is None and not opts.urn: raise TypeError("Missing required property 'shard_capacity'") @@ -232,6 +276,7 @@ def _internal_init(__self__, if shard_count is None and not opts.urn: raise TypeError("Missing required property 'shard_count'") __props__.__dict__["shard_count"] = shard_count + __props__.__dict__["shard_instance_count"] = shard_instance_count __props__.__dict__["subnet_ids"] = subnet_ids __props__.__dict__["tags"] = tags __props__.__dict__["vpc_security_group_ids"] = vpc_security_group_ids @@ -264,13 +309,16 @@ def get(resource_name: str, __props__.__dict__["admin_user_name"] = None __props__.__dict__["admin_user_password"] = None __props__.__dict__["auth_type"] = None + __props__.__dict__["backup_retention_period"] = None __props__.__dict__["cluster_arn"] = None __props__.__dict__["cluster_endpoint"] = None __props__.__dict__["cluster_name"] = None __props__.__dict__["kms_key_id"] = None + __props__.__dict__["preferred_backup_window"] = None __props__.__dict__["preferred_maintenance_window"] = None __props__.__dict__["shard_capacity"] = None __props__.__dict__["shard_count"] = None + __props__.__dict__["shard_instance_count"] = None __props__.__dict__["subnet_ids"] = None __props__.__dict__["tags"] = None __props__.__dict__["vpc_security_group_ids"] = None @@ -291,6 +339,11 @@ def admin_user_password(self) -> pulumi.Output[Optional[str]]: def auth_type(self) -> pulumi.Output[str]: return pulumi.get(self, "auth_type") + @property + @pulumi.getter(name="backupRetentionPeriod") + def backup_retention_period(self) -> pulumi.Output[Optional[int]]: + return pulumi.get(self, "backup_retention_period") + @property @pulumi.getter(name="clusterArn") def cluster_arn(self) -> pulumi.Output[str]: @@ -311,6 +364,11 @@ def cluster_name(self) -> pulumi.Output[str]: def kms_key_id(self) -> pulumi.Output[Optional[str]]: return pulumi.get(self, "kms_key_id") + @property + @pulumi.getter(name="preferredBackupWindow") + def preferred_backup_window(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "preferred_backup_window") + @property @pulumi.getter(name="preferredMaintenanceWindow") def preferred_maintenance_window(self) -> pulumi.Output[Optional[str]]: @@ -326,6 +384,11 @@ def shard_capacity(self) -> pulumi.Output[int]: def shard_count(self) -> pulumi.Output[int]: return pulumi.get(self, "shard_count") + @property + @pulumi.getter(name="shardInstanceCount") + def shard_instance_count(self) -> pulumi.Output[Optional[int]]: + return pulumi.get(self, "shard_instance_count") + @property @pulumi.getter(name="subnetIds") def subnet_ids(self) -> pulumi.Output[Optional[Sequence[str]]]: diff --git a/sdk/python/pulumi_aws_native/docdbelastic/get_cluster.py b/sdk/python/pulumi_aws_native/docdbelastic/get_cluster.py index 56efc51d7a..82e3518d88 100644 --- a/sdk/python/pulumi_aws_native/docdbelastic/get_cluster.py +++ b/sdk/python/pulumi_aws_native/docdbelastic/get_cluster.py @@ -19,13 +19,19 @@ @pulumi.output_type class GetClusterResult: - def __init__(__self__, cluster_arn=None, cluster_endpoint=None, preferred_maintenance_window=None, shard_capacity=None, shard_count=None, subnet_ids=None, tags=None, vpc_security_group_ids=None): + def __init__(__self__, backup_retention_period=None, cluster_arn=None, cluster_endpoint=None, preferred_backup_window=None, preferred_maintenance_window=None, shard_capacity=None, shard_count=None, shard_instance_count=None, subnet_ids=None, tags=None, vpc_security_group_ids=None): + if backup_retention_period and not isinstance(backup_retention_period, int): + raise TypeError("Expected argument 'backup_retention_period' to be a int") + pulumi.set(__self__, "backup_retention_period", backup_retention_period) if cluster_arn and not isinstance(cluster_arn, str): raise TypeError("Expected argument 'cluster_arn' to be a str") pulumi.set(__self__, "cluster_arn", cluster_arn) if cluster_endpoint and not isinstance(cluster_endpoint, str): raise TypeError("Expected argument 'cluster_endpoint' to be a str") pulumi.set(__self__, "cluster_endpoint", cluster_endpoint) + if preferred_backup_window and not isinstance(preferred_backup_window, str): + raise TypeError("Expected argument 'preferred_backup_window' to be a str") + pulumi.set(__self__, "preferred_backup_window", preferred_backup_window) if preferred_maintenance_window and not isinstance(preferred_maintenance_window, str): raise TypeError("Expected argument 'preferred_maintenance_window' to be a str") pulumi.set(__self__, "preferred_maintenance_window", preferred_maintenance_window) @@ -35,6 +41,9 @@ def __init__(__self__, cluster_arn=None, cluster_endpoint=None, preferred_mainte if shard_count and not isinstance(shard_count, int): raise TypeError("Expected argument 'shard_count' to be a int") pulumi.set(__self__, "shard_count", shard_count) + if shard_instance_count and not isinstance(shard_instance_count, int): + raise TypeError("Expected argument 'shard_instance_count' to be a int") + pulumi.set(__self__, "shard_instance_count", shard_instance_count) if subnet_ids and not isinstance(subnet_ids, list): raise TypeError("Expected argument 'subnet_ids' to be a list") pulumi.set(__self__, "subnet_ids", subnet_ids) @@ -45,6 +54,11 @@ def __init__(__self__, cluster_arn=None, cluster_endpoint=None, preferred_mainte raise TypeError("Expected argument 'vpc_security_group_ids' to be a list") pulumi.set(__self__, "vpc_security_group_ids", vpc_security_group_ids) + @property + @pulumi.getter(name="backupRetentionPeriod") + def backup_retention_period(self) -> Optional[int]: + return pulumi.get(self, "backup_retention_period") + @property @pulumi.getter(name="clusterArn") def cluster_arn(self) -> Optional[str]: @@ -55,6 +69,11 @@ def cluster_arn(self) -> Optional[str]: def cluster_endpoint(self) -> Optional[str]: return pulumi.get(self, "cluster_endpoint") + @property + @pulumi.getter(name="preferredBackupWindow") + def preferred_backup_window(self) -> Optional[str]: + return pulumi.get(self, "preferred_backup_window") + @property @pulumi.getter(name="preferredMaintenanceWindow") def preferred_maintenance_window(self) -> Optional[str]: @@ -70,6 +89,11 @@ def shard_capacity(self) -> Optional[int]: def shard_count(self) -> Optional[int]: return pulumi.get(self, "shard_count") + @property + @pulumi.getter(name="shardInstanceCount") + def shard_instance_count(self) -> Optional[int]: + return pulumi.get(self, "shard_instance_count") + @property @pulumi.getter(name="subnetIds") def subnet_ids(self) -> Optional[Sequence[str]]: @@ -92,11 +116,14 @@ def __await__(self): if False: yield self return GetClusterResult( + backup_retention_period=self.backup_retention_period, cluster_arn=self.cluster_arn, cluster_endpoint=self.cluster_endpoint, + preferred_backup_window=self.preferred_backup_window, preferred_maintenance_window=self.preferred_maintenance_window, shard_capacity=self.shard_capacity, shard_count=self.shard_count, + shard_instance_count=self.shard_instance_count, subnet_ids=self.subnet_ids, tags=self.tags, vpc_security_group_ids=self.vpc_security_group_ids) @@ -113,11 +140,14 @@ def get_cluster(cluster_arn: Optional[str] = None, __ret__ = pulumi.runtime.invoke('aws-native:docdbelastic:getCluster', __args__, opts=opts, typ=GetClusterResult).value return AwaitableGetClusterResult( + backup_retention_period=pulumi.get(__ret__, 'backup_retention_period'), cluster_arn=pulumi.get(__ret__, 'cluster_arn'), cluster_endpoint=pulumi.get(__ret__, 'cluster_endpoint'), + preferred_backup_window=pulumi.get(__ret__, 'preferred_backup_window'), preferred_maintenance_window=pulumi.get(__ret__, 'preferred_maintenance_window'), shard_capacity=pulumi.get(__ret__, 'shard_capacity'), shard_count=pulumi.get(__ret__, 'shard_count'), + shard_instance_count=pulumi.get(__ret__, 'shard_instance_count'), subnet_ids=pulumi.get(__ret__, 'subnet_ids'), tags=pulumi.get(__ret__, 'tags'), vpc_security_group_ids=pulumi.get(__ret__, 'vpc_security_group_ids')) diff --git a/sdk/python/pulumi_aws_native/dynamodb/_inputs.py b/sdk/python/pulumi_aws_native/dynamodb/_inputs.py index 4bbef6199c..249c06d7de 100644 --- a/sdk/python/pulumi_aws_native/dynamodb/_inputs.py +++ b/sdk/python/pulumi_aws_native/dynamodb/_inputs.py @@ -24,6 +24,8 @@ 'GlobalTableReplicaGlobalSecondaryIndexSpecificationArgs', 'GlobalTableReplicaSpecificationArgs', 'GlobalTableReplicaSseSpecificationArgs', + 'GlobalTableReplicaStreamSpecificationArgs', + 'GlobalTableResourcePolicyArgs', 'GlobalTableSseSpecificationArgs', 'GlobalTableStreamSpecificationArgs', 'GlobalTableTagArgs', @@ -42,6 +44,7 @@ 'TablePointInTimeRecoverySpecificationArgs', 'TableProjectionArgs', 'TableProvisionedThroughputArgs', + 'TableResourcePolicyArgs', 'TableS3BucketSourceArgs', 'TableSseSpecificationArgs', 'TableStreamSpecificationArgs', @@ -409,6 +412,8 @@ def __init__(__self__, *, kinesis_stream_specification: Optional[pulumi.Input['GlobalTableKinesisStreamSpecificationArgs']] = None, point_in_time_recovery_specification: Optional[pulumi.Input['GlobalTablePointInTimeRecoverySpecificationArgs']] = None, read_provisioned_throughput_settings: Optional[pulumi.Input['GlobalTableReadProvisionedThroughputSettingsArgs']] = None, + replica_stream_specification: Optional[pulumi.Input['GlobalTableReplicaStreamSpecificationArgs']] = None, + resource_policy: Optional[pulumi.Input['GlobalTableResourcePolicyArgs']] = None, sse_specification: Optional[pulumi.Input['GlobalTableReplicaSseSpecificationArgs']] = None, table_class: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input['GlobalTableTagArgs']]]] = None): @@ -425,6 +430,10 @@ def __init__(__self__, *, pulumi.set(__self__, "point_in_time_recovery_specification", point_in_time_recovery_specification) if read_provisioned_throughput_settings is not None: pulumi.set(__self__, "read_provisioned_throughput_settings", read_provisioned_throughput_settings) + if replica_stream_specification is not None: + pulumi.set(__self__, "replica_stream_specification", replica_stream_specification) + if resource_policy is not None: + pulumi.set(__self__, "resource_policy", resource_policy) if sse_specification is not None: pulumi.set(__self__, "sse_specification", sse_specification) if table_class is not None: @@ -495,6 +504,24 @@ def read_provisioned_throughput_settings(self) -> Optional[pulumi.Input['GlobalT def read_provisioned_throughput_settings(self, value: Optional[pulumi.Input['GlobalTableReadProvisionedThroughputSettingsArgs']]): pulumi.set(self, "read_provisioned_throughput_settings", value) + @property + @pulumi.getter(name="replicaStreamSpecification") + def replica_stream_specification(self) -> Optional[pulumi.Input['GlobalTableReplicaStreamSpecificationArgs']]: + return pulumi.get(self, "replica_stream_specification") + + @replica_stream_specification.setter + def replica_stream_specification(self, value: Optional[pulumi.Input['GlobalTableReplicaStreamSpecificationArgs']]): + pulumi.set(self, "replica_stream_specification", value) + + @property + @pulumi.getter(name="resourcePolicy") + def resource_policy(self) -> Optional[pulumi.Input['GlobalTableResourcePolicyArgs']]: + return pulumi.get(self, "resource_policy") + + @resource_policy.setter + def resource_policy(self, value: Optional[pulumi.Input['GlobalTableResourcePolicyArgs']]): + pulumi.set(self, "resource_policy", value) + @property @pulumi.getter(name="sseSpecification") def sse_specification(self) -> Optional[pulumi.Input['GlobalTableReplicaSseSpecificationArgs']]: @@ -539,6 +566,38 @@ def kms_master_key_id(self, value: pulumi.Input[str]): pulumi.set(self, "kms_master_key_id", value) +@pulumi.input_type +class GlobalTableReplicaStreamSpecificationArgs: + def __init__(__self__, *, + resource_policy: pulumi.Input['GlobalTableResourcePolicyArgs']): + pulumi.set(__self__, "resource_policy", resource_policy) + + @property + @pulumi.getter(name="resourcePolicy") + def resource_policy(self) -> pulumi.Input['GlobalTableResourcePolicyArgs']: + return pulumi.get(self, "resource_policy") + + @resource_policy.setter + def resource_policy(self, value: pulumi.Input['GlobalTableResourcePolicyArgs']): + pulumi.set(self, "resource_policy", value) + + +@pulumi.input_type +class GlobalTableResourcePolicyArgs: + def __init__(__self__, *, + policy_document: Any): + pulumi.set(__self__, "policy_document", policy_document) + + @property + @pulumi.getter(name="policyDocument") + def policy_document(self) -> Any: + return pulumi.get(self, "policy_document") + + @policy_document.setter + def policy_document(self, value: Any): + pulumi.set(self, "policy_document", value) + + @pulumi.input_type class GlobalTableSseSpecificationArgs: def __init__(__self__, *, @@ -1277,6 +1336,22 @@ def write_capacity_units(self, value: pulumi.Input[int]): pulumi.set(self, "write_capacity_units", value) +@pulumi.input_type +class TableResourcePolicyArgs: + def __init__(__self__, *, + policy_document: Any): + pulumi.set(__self__, "policy_document", policy_document) + + @property + @pulumi.getter(name="policyDocument") + def policy_document(self) -> Any: + return pulumi.get(self, "policy_document") + + @policy_document.setter + def policy_document(self, value: Any): + pulumi.set(self, "policy_document", value) + + @pulumi.input_type class TableS3BucketSourceArgs: def __init__(__self__, *, @@ -1392,7 +1467,8 @@ def sse_type(self, value: Optional[pulumi.Input[str]]): @pulumi.input_type class TableStreamSpecificationArgs: def __init__(__self__, *, - stream_view_type: pulumi.Input[str]): + stream_view_type: pulumi.Input[str], + resource_policy: Optional[pulumi.Input['TableResourcePolicyArgs']] = None): """ Represents the DynamoDB Streams configuration for a table in DynamoDB. :param pulumi.Input[str] stream_view_type: When an item in the table is modified, ``StreamViewType`` determines what information is written to the stream for this table. Valid values for ``StreamViewType`` are: @@ -1402,6 +1478,8 @@ def __init__(__self__, *, + ``NEW_AND_OLD_IMAGES`` - Both the new and the old item images of the item are written to the stream. """ pulumi.set(__self__, "stream_view_type", stream_view_type) + if resource_policy is not None: + pulumi.set(__self__, "resource_policy", resource_policy) @property @pulumi.getter(name="streamViewType") @@ -1419,6 +1497,15 @@ def stream_view_type(self) -> pulumi.Input[str]: def stream_view_type(self, value: pulumi.Input[str]): pulumi.set(self, "stream_view_type", value) + @property + @pulumi.getter(name="resourcePolicy") + def resource_policy(self) -> Optional[pulumi.Input['TableResourcePolicyArgs']]: + return pulumi.get(self, "resource_policy") + + @resource_policy.setter + def resource_policy(self, value: Optional[pulumi.Input['TableResourcePolicyArgs']]): + pulumi.set(self, "resource_policy", value) + @pulumi.input_type class TableTimeToLiveSpecificationArgs: diff --git a/sdk/python/pulumi_aws_native/dynamodb/get_table.py b/sdk/python/pulumi_aws_native/dynamodb/get_table.py index 7cfd0be16f..cb8a82fef3 100644 --- a/sdk/python/pulumi_aws_native/dynamodb/get_table.py +++ b/sdk/python/pulumi_aws_native/dynamodb/get_table.py @@ -21,7 +21,7 @@ @pulumi.output_type class GetTableResult: - def __init__(__self__, arn=None, attribute_definitions=None, billing_mode=None, contributor_insights_specification=None, deletion_protection_enabled=None, global_secondary_indexes=None, key_schema=None, kinesis_stream_specification=None, local_secondary_indexes=None, point_in_time_recovery_specification=None, provisioned_throughput=None, sse_specification=None, stream_arn=None, stream_specification=None, table_class=None, tags=None, time_to_live_specification=None): + def __init__(__self__, arn=None, attribute_definitions=None, billing_mode=None, contributor_insights_specification=None, deletion_protection_enabled=None, global_secondary_indexes=None, key_schema=None, kinesis_stream_specification=None, local_secondary_indexes=None, point_in_time_recovery_specification=None, provisioned_throughput=None, resource_policy=None, sse_specification=None, stream_arn=None, stream_specification=None, table_class=None, tags=None, time_to_live_specification=None): if arn and not isinstance(arn, str): raise TypeError("Expected argument 'arn' to be a str") pulumi.set(__self__, "arn", arn) @@ -55,6 +55,9 @@ def __init__(__self__, arn=None, attribute_definitions=None, billing_mode=None, if provisioned_throughput and not isinstance(provisioned_throughput, dict): raise TypeError("Expected argument 'provisioned_throughput' to be a dict") pulumi.set(__self__, "provisioned_throughput", provisioned_throughput) + if resource_policy and not isinstance(resource_policy, dict): + raise TypeError("Expected argument 'resource_policy' to be a dict") + pulumi.set(__self__, "resource_policy", resource_policy) if sse_specification and not isinstance(sse_specification, dict): raise TypeError("Expected argument 'sse_specification' to be a dict") pulumi.set(__self__, "sse_specification", sse_specification) @@ -172,6 +175,11 @@ def provisioned_throughput(self) -> Optional['outputs.TableProvisionedThroughput """ return pulumi.get(self, "provisioned_throughput") + @property + @pulumi.getter(name="resourcePolicy") + def resource_policy(self) -> Optional['outputs.TableResourcePolicy']: + return pulumi.get(self, "resource_policy") + @property @pulumi.getter(name="sseSpecification") def sse_specification(self) -> Optional['outputs.TableSseSpecification']: @@ -237,6 +245,7 @@ def __await__(self): local_secondary_indexes=self.local_secondary_indexes, point_in_time_recovery_specification=self.point_in_time_recovery_specification, provisioned_throughput=self.provisioned_throughput, + resource_policy=self.resource_policy, sse_specification=self.sse_specification, stream_arn=self.stream_arn, stream_specification=self.stream_specification, @@ -275,6 +284,7 @@ def get_table(table_name: Optional[str] = None, local_secondary_indexes=pulumi.get(__ret__, 'local_secondary_indexes'), point_in_time_recovery_specification=pulumi.get(__ret__, 'point_in_time_recovery_specification'), provisioned_throughput=pulumi.get(__ret__, 'provisioned_throughput'), + resource_policy=pulumi.get(__ret__, 'resource_policy'), sse_specification=pulumi.get(__ret__, 'sse_specification'), stream_arn=pulumi.get(__ret__, 'stream_arn'), stream_specification=pulumi.get(__ret__, 'stream_specification'), diff --git a/sdk/python/pulumi_aws_native/dynamodb/outputs.py b/sdk/python/pulumi_aws_native/dynamodb/outputs.py index f74fc84141..ef229a7664 100644 --- a/sdk/python/pulumi_aws_native/dynamodb/outputs.py +++ b/sdk/python/pulumi_aws_native/dynamodb/outputs.py @@ -25,6 +25,8 @@ 'GlobalTableReplicaGlobalSecondaryIndexSpecification', 'GlobalTableReplicaSpecification', 'GlobalTableReplicaSseSpecification', + 'GlobalTableReplicaStreamSpecification', + 'GlobalTableResourcePolicy', 'GlobalTableSseSpecification', 'GlobalTableStreamSpecification', 'GlobalTableTag', @@ -43,6 +45,7 @@ 'TablePointInTimeRecoverySpecification', 'TableProjection', 'TableProvisionedThroughput', + 'TableResourcePolicy', 'TableS3BucketSource', 'TableSseSpecification', 'TableStreamSpecification', @@ -509,6 +512,10 @@ def __key_warning(key: str): suggest = "point_in_time_recovery_specification" elif key == "readProvisionedThroughputSettings": suggest = "read_provisioned_throughput_settings" + elif key == "replicaStreamSpecification": + suggest = "replica_stream_specification" + elif key == "resourcePolicy": + suggest = "resource_policy" elif key == "sseSpecification": suggest = "sse_specification" elif key == "tableClass": @@ -533,6 +540,8 @@ def __init__(__self__, *, kinesis_stream_specification: Optional['outputs.GlobalTableKinesisStreamSpecification'] = None, point_in_time_recovery_specification: Optional['outputs.GlobalTablePointInTimeRecoverySpecification'] = None, read_provisioned_throughput_settings: Optional['outputs.GlobalTableReadProvisionedThroughputSettings'] = None, + replica_stream_specification: Optional['outputs.GlobalTableReplicaStreamSpecification'] = None, + resource_policy: Optional['outputs.GlobalTableResourcePolicy'] = None, sse_specification: Optional['outputs.GlobalTableReplicaSseSpecification'] = None, table_class: Optional[str] = None, tags: Optional[Sequence['outputs.GlobalTableTag']] = None): @@ -549,6 +558,10 @@ def __init__(__self__, *, pulumi.set(__self__, "point_in_time_recovery_specification", point_in_time_recovery_specification) if read_provisioned_throughput_settings is not None: pulumi.set(__self__, "read_provisioned_throughput_settings", read_provisioned_throughput_settings) + if replica_stream_specification is not None: + pulumi.set(__self__, "replica_stream_specification", replica_stream_specification) + if resource_policy is not None: + pulumi.set(__self__, "resource_policy", resource_policy) if sse_specification is not None: pulumi.set(__self__, "sse_specification", sse_specification) if table_class is not None: @@ -591,6 +604,16 @@ def point_in_time_recovery_specification(self) -> Optional['outputs.GlobalTableP def read_provisioned_throughput_settings(self) -> Optional['outputs.GlobalTableReadProvisionedThroughputSettings']: return pulumi.get(self, "read_provisioned_throughput_settings") + @property + @pulumi.getter(name="replicaStreamSpecification") + def replica_stream_specification(self) -> Optional['outputs.GlobalTableReplicaStreamSpecification']: + return pulumi.get(self, "replica_stream_specification") + + @property + @pulumi.getter(name="resourcePolicy") + def resource_policy(self) -> Optional['outputs.GlobalTableResourcePolicy']: + return pulumi.get(self, "resource_policy") + @property @pulumi.getter(name="sseSpecification") def sse_specification(self) -> Optional['outputs.GlobalTableReplicaSseSpecification']: @@ -636,6 +659,64 @@ def kms_master_key_id(self) -> str: return pulumi.get(self, "kms_master_key_id") +@pulumi.output_type +class GlobalTableReplicaStreamSpecification(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "resourcePolicy": + suggest = "resource_policy" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in GlobalTableReplicaStreamSpecification. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + GlobalTableReplicaStreamSpecification.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + GlobalTableReplicaStreamSpecification.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + resource_policy: 'outputs.GlobalTableResourcePolicy'): + pulumi.set(__self__, "resource_policy", resource_policy) + + @property + @pulumi.getter(name="resourcePolicy") + def resource_policy(self) -> 'outputs.GlobalTableResourcePolicy': + return pulumi.get(self, "resource_policy") + + +@pulumi.output_type +class GlobalTableResourcePolicy(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "policyDocument": + suggest = "policy_document" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in GlobalTableResourcePolicy. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + GlobalTableResourcePolicy.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + GlobalTableResourcePolicy.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + policy_document: Any): + pulumi.set(__self__, "policy_document", policy_document) + + @property + @pulumi.getter(name="policyDocument") + def policy_document(self) -> Any: + return pulumi.get(self, "policy_document") + + @pulumi.output_type class GlobalTableSseSpecification(dict): @staticmethod @@ -1543,6 +1624,35 @@ def write_capacity_units(self) -> int: return pulumi.get(self, "write_capacity_units") +@pulumi.output_type +class TableResourcePolicy(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "policyDocument": + suggest = "policy_document" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in TableResourcePolicy. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + TableResourcePolicy.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + TableResourcePolicy.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + policy_document: Any): + pulumi.set(__self__, "policy_document", policy_document) + + @property + @pulumi.getter(name="policyDocument") + def policy_document(self) -> Any: + return pulumi.get(self, "policy_document") + + @pulumi.output_type class TableS3BucketSource(dict): """ @@ -1689,6 +1799,8 @@ def __key_warning(key: str): suggest = None if key == "streamViewType": suggest = "stream_view_type" + elif key == "resourcePolicy": + suggest = "resource_policy" if suggest: pulumi.log.warn(f"Key '{key}' not found in TableStreamSpecification. Access the value via the '{suggest}' property getter instead.") @@ -1702,7 +1814,8 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, - stream_view_type: str): + stream_view_type: str, + resource_policy: Optional['outputs.TableResourcePolicy'] = None): """ Represents the DynamoDB Streams configuration for a table in DynamoDB. :param str stream_view_type: When an item in the table is modified, ``StreamViewType`` determines what information is written to the stream for this table. Valid values for ``StreamViewType`` are: @@ -1712,6 +1825,8 @@ def __init__(__self__, *, + ``NEW_AND_OLD_IMAGES`` - Both the new and the old item images of the item are written to the stream. """ pulumi.set(__self__, "stream_view_type", stream_view_type) + if resource_policy is not None: + pulumi.set(__self__, "resource_policy", resource_policy) @property @pulumi.getter(name="streamViewType") @@ -1725,6 +1840,11 @@ def stream_view_type(self) -> str: """ return pulumi.get(self, "stream_view_type") + @property + @pulumi.getter(name="resourcePolicy") + def resource_policy(self) -> Optional['outputs.TableResourcePolicy']: + return pulumi.get(self, "resource_policy") + @pulumi.output_type class TableTimeToLiveSpecification(dict): diff --git a/sdk/python/pulumi_aws_native/dynamodb/table.py b/sdk/python/pulumi_aws_native/dynamodb/table.py index fa923a8624..bbd7f8b630 100644 --- a/sdk/python/pulumi_aws_native/dynamodb/table.py +++ b/sdk/python/pulumi_aws_native/dynamodb/table.py @@ -30,6 +30,7 @@ def __init__(__self__, *, local_secondary_indexes: Optional[pulumi.Input[Sequence[pulumi.Input['TableLocalSecondaryIndexArgs']]]] = None, point_in_time_recovery_specification: Optional[pulumi.Input['TablePointInTimeRecoverySpecificationArgs']] = None, provisioned_throughput: Optional[pulumi.Input['TableProvisionedThroughputArgs']] = None, + resource_policy: Optional[pulumi.Input['TableResourcePolicyArgs']] = None, sse_specification: Optional[pulumi.Input['TableSseSpecificationArgs']] = None, stream_specification: Optional[pulumi.Input['TableStreamSpecificationArgs']] = None, table_class: Optional[pulumi.Input[str]] = None, @@ -94,6 +95,8 @@ def __init__(__self__, *, pulumi.set(__self__, "point_in_time_recovery_specification", point_in_time_recovery_specification) if provisioned_throughput is not None: pulumi.set(__self__, "provisioned_throughput", provisioned_throughput) + if resource_policy is not None: + pulumi.set(__self__, "resource_policy", resource_policy) if sse_specification is not None: pulumi.set(__self__, "sse_specification", sse_specification) if stream_specification is not None: @@ -253,6 +256,15 @@ def provisioned_throughput(self) -> Optional[pulumi.Input['TableProvisionedThrou def provisioned_throughput(self, value: Optional[pulumi.Input['TableProvisionedThroughputArgs']]): pulumi.set(self, "provisioned_throughput", value) + @property + @pulumi.getter(name="resourcePolicy") + def resource_policy(self) -> Optional[pulumi.Input['TableResourcePolicyArgs']]: + return pulumi.get(self, "resource_policy") + + @resource_policy.setter + def resource_policy(self, value: Optional[pulumi.Input['TableResourcePolicyArgs']]): + pulumi.set(self, "resource_policy", value) + @property @pulumi.getter(name="sseSpecification") def sse_specification(self) -> Optional[pulumi.Input['TableSseSpecificationArgs']]: @@ -345,6 +357,7 @@ def __init__(__self__, local_secondary_indexes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['TableLocalSecondaryIndexArgs']]]]] = None, point_in_time_recovery_specification: Optional[pulumi.Input[pulumi.InputType['TablePointInTimeRecoverySpecificationArgs']]] = None, provisioned_throughput: Optional[pulumi.Input[pulumi.InputType['TableProvisionedThroughputArgs']]] = None, + resource_policy: Optional[pulumi.Input[pulumi.InputType['TableResourcePolicyArgs']]] = None, sse_specification: Optional[pulumi.Input[pulumi.InputType['TableSseSpecificationArgs']]] = None, stream_specification: Optional[pulumi.Input[pulumi.InputType['TableStreamSpecificationArgs']]] = None, table_class: Optional[pulumi.Input[str]] = None, @@ -887,6 +900,7 @@ def _internal_init(__self__, local_secondary_indexes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['TableLocalSecondaryIndexArgs']]]]] = None, point_in_time_recovery_specification: Optional[pulumi.Input[pulumi.InputType['TablePointInTimeRecoverySpecificationArgs']]] = None, provisioned_throughput: Optional[pulumi.Input[pulumi.InputType['TableProvisionedThroughputArgs']]] = None, + resource_policy: Optional[pulumi.Input[pulumi.InputType['TableResourcePolicyArgs']]] = None, sse_specification: Optional[pulumi.Input[pulumi.InputType['TableSseSpecificationArgs']]] = None, stream_specification: Optional[pulumi.Input[pulumi.InputType['TableStreamSpecificationArgs']]] = None, table_class: Optional[pulumi.Input[str]] = None, @@ -915,6 +929,7 @@ def _internal_init(__self__, __props__.__dict__["local_secondary_indexes"] = local_secondary_indexes __props__.__dict__["point_in_time_recovery_specification"] = point_in_time_recovery_specification __props__.__dict__["provisioned_throughput"] = provisioned_throughput + __props__.__dict__["resource_policy"] = resource_policy __props__.__dict__["sse_specification"] = sse_specification __props__.__dict__["stream_specification"] = stream_specification __props__.__dict__["table_class"] = table_class @@ -959,6 +974,7 @@ def get(resource_name: str, __props__.__dict__["local_secondary_indexes"] = None __props__.__dict__["point_in_time_recovery_specification"] = None __props__.__dict__["provisioned_throughput"] = None + __props__.__dict__["resource_policy"] = None __props__.__dict__["sse_specification"] = None __props__.__dict__["stream_arn"] = None __props__.__dict__["stream_specification"] = None @@ -1075,6 +1091,11 @@ def provisioned_throughput(self) -> pulumi.Output[Optional['outputs.TableProvisi """ return pulumi.get(self, "provisioned_throughput") + @property + @pulumi.getter(name="resourcePolicy") + def resource_policy(self) -> pulumi.Output[Optional['outputs.TableResourcePolicy']]: + return pulumi.get(self, "resource_policy") + @property @pulumi.getter(name="sseSpecification") def sse_specification(self) -> pulumi.Output[Optional['outputs.TableSseSpecification']]: diff --git a/sdk/python/pulumi_aws_native/ec2/__init__.py b/sdk/python/pulumi_aws_native/ec2/__init__.py index fc53406203..b7e7fb5554 100644 --- a/sdk/python/pulumi_aws_native/ec2/__init__.py +++ b/sdk/python/pulumi_aws_native/ec2/__init__.py @@ -77,7 +77,6 @@ from .get_transit_gateway_multicast_group_source import * from .get_transit_gateway_peering_attachment import * from .get_transit_gateway_route_table import * -from .get_transit_gateway_route_table_association import * from .get_transit_gateway_vpc_attachment import * from .get_verified_access_endpoint import * from .get_verified_access_group import * diff --git a/sdk/python/pulumi_aws_native/ec2/_inputs.py b/sdk/python/pulumi_aws_native/ec2/_inputs.py index 0b0da332da..1c70dea5d9 100644 --- a/sdk/python/pulumi_aws_native/ec2/_inputs.py +++ b/sdk/python/pulumi_aws_native/ec2/_inputs.py @@ -3098,7 +3098,9 @@ def __init__(__self__, *, + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. - If you specify ``InstanceReq + If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. + Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. + For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. :param pulumi.Input[str] instance_type: The instance type. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon Elastic Compute Cloud User Guide*. If you specify ``InstanceType``, you can't specify ``InstanceRequirements``. :param pulumi.Input[str] kernel_id: The ID of the kernel. @@ -3388,7 +3390,9 @@ def instance_requirements(self) -> Optional[pulumi.Input['LaunchTemplateInstance + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. - If you specify ``InstanceReq + If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. + Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. + For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. """ return pulumi.get(self, "instance_requirements") @@ -3618,7 +3622,7 @@ def __init__(__self__, *, + ``io2``: 4 - 65,536 GiB + ``st1`` and ``sc1``: 125 - 16,384 GiB + ``standard``: 1 - 1024 GiB - :param pulumi.Input[str] volume_type: The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*. + :param pulumi.Input[str] volume_type: The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon EBS User Guide*. """ if delete_on_termination is not None: pulumi.set(__self__, "delete_on_termination", delete_on_termination) @@ -3738,7 +3742,7 @@ def volume_size(self, value: Optional[pulumi.Input[int]]): @pulumi.getter(name="volumeType") def volume_type(self) -> Optional[pulumi.Input[str]]: """ - The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*. + The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon EBS User Guide*. """ return pulumi.get(self, "volume_type") @@ -3752,7 +3756,8 @@ class LaunchTemplateElasticGpuSpecificationArgs: def __init__(__self__, *, type: Optional[pulumi.Input[str]] = None): """ - Specifies a specification for an Elastic GPU for an Amazon EC2 launch template. + Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. + Specifies a specification for an Elastic GPU for an Amazon EC2 launch template. ``ElasticGpuSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html). :param pulumi.Input[str] type: The type of Elastic Graphics accelerator. For more information about the values to specify for ``Type``, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*. """ @@ -3938,7 +3943,7 @@ def __init__(__self__, *, name: Optional[pulumi.Input[str]] = None): """ Specifies an IAM instance profile, which is a container for an IAM role for your instance. You can use an IAM role to distribute your AWS credentials to your instances. - If you are creating the launch template for use with an Amazon EC2 Auto Scaling group, you can specify either the name or the ARN of the instance profile, but not both. + If you are creating the launch template for use with an ASlong group, you can specify either the name or the ARN of the instance profile, but not both. ``IamInstanceProfile`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html). :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) of the instance profile. :param pulumi.Input[str] name: The name of the instance profile. @@ -4049,7 +4054,9 @@ def __init__(__self__, *, + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. - If you specify ``InstanceReq + If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. + Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. + For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. :param pulumi.Input['LaunchTemplateAcceleratorCountArgs'] accelerator_count: The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) on an instance. To exclude accelerator-enabled instance types, set ``Max`` to ``0``. Default: No minimum or maximum limits @@ -4132,8 +4139,8 @@ def __init__(__self__, *, Default: ``hdd`` and ``ssd`` :param pulumi.Input[int] max_spot_price_as_percentage_of_optimal_on_demand_price: [Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold. The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - To indicate no price protection threshold, specify a high value, such as ``999999``. - If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instanc + If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price. + Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. :param pulumi.Input['LaunchTemplateMemoryGiBPerVCpuArgs'] memory_gi_b_per_v_cpu: The minimum and maximum amount of memory per vCPU, in GiB. Default: No minimum or maximum limits :param pulumi.Input['LaunchTemplateMemoryMiBArgs'] memory_mi_b: The minimum and maximum amount of memory, in MiB. @@ -4145,14 +4152,17 @@ def __init__(__self__, *, The parameter accepts an integer, which Amazon EC2 interprets as a percentage. To turn off price protection, specify a high value, such as ``999999``. This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). - If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per- + If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. + Default: ``20`` :param pulumi.Input[bool] require_hibernate_support: Indicates whether instance types must support hibernation for On-Demand Instances. This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html). Default: ``false`` :param pulumi.Input[int] spot_max_price_percentage_over_lowest_price: [Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold. The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - To indicate no price protection threshold, specify a high value, such as ``999999``. - If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price i + If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. + This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). + Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. + Default: ``100`` :param pulumi.Input['LaunchTemplateTotalLocalStorageGbArgs'] total_local_storage_gb: The minimum and maximum amount of total local storage, in GB. Default: No minimum or maximum limits :param pulumi.Input['LaunchTemplateVCpuCountArgs'] v_cpu_count: The minimum and maximum number of vCPUs. @@ -4446,8 +4456,8 @@ def max_spot_price_as_percentage_of_optimal_on_demand_price(self) -> Optional[pu """ [Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold. The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - To indicate no price protection threshold, specify a high value, such as ``999999``. - If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instanc + If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price. + Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. """ return pulumi.get(self, "max_spot_price_as_percentage_of_optimal_on_demand_price") @@ -4514,7 +4524,8 @@ def on_demand_max_price_percentage_over_lowest_price(self) -> Optional[pulumi.In The parameter accepts an integer, which Amazon EC2 interprets as a percentage. To turn off price protection, specify a high value, such as ``999999``. This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). - If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per- + If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. + Default: ``20`` """ return pulumi.get(self, "on_demand_max_price_percentage_over_lowest_price") @@ -4542,8 +4553,10 @@ def spot_max_price_percentage_over_lowest_price(self) -> Optional[pulumi.Input[i """ [Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold. The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - To indicate no price protection threshold, specify a high value, such as ``999999``. - If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price i + If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. + This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). + Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. + Default: ``100`` """ return pulumi.get(self, "spot_max_price_percentage_over_lowest_price") @@ -4680,16 +4693,13 @@ def license_configuration_arn(self, value: Optional[pulumi.Input[str]]): @pulumi.input_type class LaunchTemplateMaintenanceOptionsArgs: def __init__(__self__, *, - auto_recovery: Optional[pulumi.Input[str]] = None, - reboot_migration: Optional[pulumi.Input[str]] = None): + auto_recovery: Optional[pulumi.Input[str]] = None): """ The maintenance options of your instance. :param pulumi.Input[str] auto_recovery: Disables the automatic recovery behavior of your instance or sets it to default. """ if auto_recovery is not None: pulumi.set(__self__, "auto_recovery", auto_recovery) - if reboot_migration is not None: - pulumi.set(__self__, "reboot_migration", reboot_migration) @property @pulumi.getter(name="autoRecovery") @@ -4703,15 +4713,6 @@ def auto_recovery(self) -> Optional[pulumi.Input[str]]: def auto_recovery(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "auto_recovery", value) - @property - @pulumi.getter(name="rebootMigration") - def reboot_migration(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "reboot_migration") - - @reboot_migration.setter - def reboot_migration(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "reboot_migration", value) - @pulumi.input_type class LaunchTemplateMemoryGiBPerVCpuArgs: @@ -5641,7 +5642,7 @@ def __init__(__self__, *, :param pulumi.Input[str] max_price: The maximum hourly price you're willing to pay for the Spot Instances. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price. If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter. :param pulumi.Input[str] spot_instance_type: The Spot Instance request type. - If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is below its desired capacity. + If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the ASlong service handles requesting new Spot Instances whenever the group is below its desired capacity. :param pulumi.Input[str] valid_until: The end date of the request, in UTC format (*YYYY-MM-DD*T*HH:MM:SS*Z). Supported only for persistent requests. + For a persistent request, the request remains active until the ``ValidUntil`` date and time is reached. Otherwise, the request remains active until you cancel it. + For a one-time request, ``ValidUntil`` is not supported. The request remains active until all instances launch or you cancel the request. @@ -5701,7 +5702,7 @@ def max_price(self, value: Optional[pulumi.Input[str]]): def spot_instance_type(self) -> Optional[pulumi.Input[str]]: """ The Spot Instance request type. - If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is below its desired capacity. + If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the ASlong service handles requesting new Spot Instances whenever the group is below its desired capacity. """ return pulumi.get(self, "spot_instance_type") @@ -6427,9 +6428,9 @@ def __init__(__self__, *, """ The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. Available options: - + EnableResourceNameDnsAAAARecord (true | false) - + EnableResourceNameDnsARecord (true | false) - + HostnameType (ip-name | resource-name) + + EnableResourceNameDnsAAAARecord (true | false) + + EnableResourceNameDnsARecord (true | false) + + HostnameType (ip-name | resource-name) """ if enable_resource_name_dns_a_record is not None: pulumi.set(__self__, "enable_resource_name_dns_a_record", enable_resource_name_dns_a_record) diff --git a/sdk/python/pulumi_aws_native/ec2/get_internet_gateway.py b/sdk/python/pulumi_aws_native/ec2/get_internet_gateway.py index 206ea475fe..62aa6a5d53 100644 --- a/sdk/python/pulumi_aws_native/ec2/get_internet_gateway.py +++ b/sdk/python/pulumi_aws_native/ec2/get_internet_gateway.py @@ -30,9 +30,6 @@ def __init__(__self__, internet_gateway_id=None, tags=None): @property @pulumi.getter(name="internetGatewayId") def internet_gateway_id(self) -> Optional[str]: - """ - ID of internet gateway. - """ return pulumi.get(self, "internet_gateway_id") @property @@ -57,10 +54,7 @@ def __await__(self): def get_internet_gateway(internet_gateway_id: Optional[str] = None, opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetInternetGatewayResult: """ - Resource Type definition for AWS::EC2::InternetGateway - - - :param str internet_gateway_id: ID of internet gateway. + Allocates an internet gateway for use with a VPC. After creating the Internet gateway, you then attach it to a VPC. """ __args__ = dict() __args__['internetGatewayId'] = internet_gateway_id @@ -76,9 +70,6 @@ def get_internet_gateway(internet_gateway_id: Optional[str] = None, def get_internet_gateway_output(internet_gateway_id: Optional[pulumi.Input[str]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetInternetGatewayResult]: """ - Resource Type definition for AWS::EC2::InternetGateway - - - :param str internet_gateway_id: ID of internet gateway. + Allocates an internet gateway for use with a VPC. After creating the Internet gateway, you then attach it to a VPC. """ ... diff --git a/sdk/python/pulumi_aws_native/ec2/get_subnet.py b/sdk/python/pulumi_aws_native/ec2/get_subnet.py index 9a857b78f0..7a1d124040 100644 --- a/sdk/python/pulumi_aws_native/ec2/get_subnet.py +++ b/sdk/python/pulumi_aws_native/ec2/get_subnet.py @@ -88,7 +88,7 @@ def ipv6_cidr_blocks(self) -> Optional[Sequence[str]]: def map_public_ip_on_launch(self) -> Optional[bool]: """ Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``. - AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). + AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). """ return pulumi.get(self, "map_public_ip_on_launch") @@ -103,9 +103,9 @@ def private_dns_name_options_on_launch(self) -> Optional['outputs.PrivateDnsName """ The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. Available options: - + EnableResourceNameDnsAAAARecord (true | false) - + EnableResourceNameDnsARecord (true | false) - + HostnameType (ip-name | resource-name) + + EnableResourceNameDnsAAAARecord (true | false) + + EnableResourceNameDnsARecord (true | false) + + HostnameType (ip-name | resource-name) """ return pulumi.get(self, "private_dns_name_options_on_launch") diff --git a/sdk/python/pulumi_aws_native/ec2/get_transit_gateway_route_table_association.py b/sdk/python/pulumi_aws_native/ec2/get_transit_gateway_route_table_association.py deleted file mode 100644 index b76bec4ef8..0000000000 --- a/sdk/python/pulumi_aws_native/ec2/get_transit_gateway_route_table_association.py +++ /dev/null @@ -1,61 +0,0 @@ -# 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 pulumi -import pulumi.runtime -from typing import Any, Mapping, Optional, Sequence, Union, overload -from .. import _utilities - -__all__ = [ - 'GetTransitGatewayRouteTableAssociationResult', - 'AwaitableGetTransitGatewayRouteTableAssociationResult', - 'get_transit_gateway_route_table_association', - 'get_transit_gateway_route_table_association_output', -] - -@pulumi.output_type -class GetTransitGatewayRouteTableAssociationResult: - def __init__(__self__, id=None): - if id and not isinstance(id, str): - raise TypeError("Expected argument 'id' to be a str") - pulumi.set(__self__, "id", id) - - @property - @pulumi.getter - def id(self) -> Optional[str]: - return pulumi.get(self, "id") - - -class AwaitableGetTransitGatewayRouteTableAssociationResult(GetTransitGatewayRouteTableAssociationResult): - # pylint: disable=using-constant-test - def __await__(self): - if False: - yield self - return GetTransitGatewayRouteTableAssociationResult( - id=self.id) - - -def get_transit_gateway_route_table_association(id: Optional[str] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetTransitGatewayRouteTableAssociationResult: - """ - Resource Type definition for AWS::EC2::TransitGatewayRouteTableAssociation - """ - __args__ = dict() - __args__['id'] = id - opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) - __ret__ = pulumi.runtime.invoke('aws-native:ec2:getTransitGatewayRouteTableAssociation', __args__, opts=opts, typ=GetTransitGatewayRouteTableAssociationResult).value - - return AwaitableGetTransitGatewayRouteTableAssociationResult( - id=pulumi.get(__ret__, 'id')) - - -@_utilities.lift_output_func(get_transit_gateway_route_table_association) -def get_transit_gateway_route_table_association_output(id: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetTransitGatewayRouteTableAssociationResult]: - """ - Resource Type definition for AWS::EC2::TransitGatewayRouteTableAssociation - """ - ... diff --git a/sdk/python/pulumi_aws_native/ec2/internet_gateway.py b/sdk/python/pulumi_aws_native/ec2/internet_gateway.py index ed680648d3..0fe352210c 100644 --- a/sdk/python/pulumi_aws_native/ec2/internet_gateway.py +++ b/sdk/python/pulumi_aws_native/ec2/internet_gateway.py @@ -45,7 +45,7 @@ def __init__(__self__, tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, __props__=None): """ - Resource Type definition for AWS::EC2::InternetGateway + Allocates an internet gateway for use with a VPC. After creating the Internet gateway, you then attach it to a VPC. ## Example Usage ### Example @@ -72,7 +72,7 @@ def __init__(__self__, args: Optional[InternetGatewayArgs] = None, opts: Optional[pulumi.ResourceOptions] = None): """ - Resource Type definition for AWS::EC2::InternetGateway + Allocates an internet gateway for use with a VPC. After creating the Internet gateway, you then attach it to a VPC. ## Example Usage ### Example @@ -144,9 +144,6 @@ def get(resource_name: str, @property @pulumi.getter(name="internetGatewayId") def internet_gateway_id(self) -> pulumi.Output[str]: - """ - ID of internet gateway. - """ return pulumi.get(self, "internet_gateway_id") @property diff --git a/sdk/python/pulumi_aws_native/ec2/outputs.py b/sdk/python/pulumi_aws_native/ec2/outputs.py index bfb44b0681..95c7581559 100644 --- a/sdk/python/pulumi_aws_native/ec2/outputs.py +++ b/sdk/python/pulumi_aws_native/ec2/outputs.py @@ -3314,7 +3314,9 @@ def __init__(__self__, *, + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. - If you specify ``InstanceReq + If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. + Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. + For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. :param str instance_type: The instance type. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon Elastic Compute Cloud User Guide*. If you specify ``InstanceType``, you can't specify ``InstanceRequirements``. :param str kernel_id: The ID of the kernel. @@ -3544,7 +3546,9 @@ def instance_requirements(self) -> Optional['outputs.LaunchTemplateInstanceRequi + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. - If you specify ``InstanceReq + If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. + Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. + For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. """ return pulumi.get(self, "instance_requirements") @@ -3739,7 +3743,7 @@ def __init__(__self__, *, + ``io2``: 4 - 65,536 GiB + ``st1`` and ``sc1``: 125 - 16,384 GiB + ``standard``: 1 - 1024 GiB - :param str volume_type: The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*. + :param str volume_type: The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon EBS User Guide*. """ if delete_on_termination is not None: pulumi.set(__self__, "delete_on_termination", delete_on_termination) @@ -3831,7 +3835,7 @@ def volume_size(self) -> Optional[int]: @pulumi.getter(name="volumeType") def volume_type(self) -> Optional[str]: """ - The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*. + The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volume-types.html) in the *Amazon EBS User Guide*. """ return pulumi.get(self, "volume_type") @@ -3839,13 +3843,15 @@ def volume_type(self) -> Optional[str]: @pulumi.output_type class LaunchTemplateElasticGpuSpecification(dict): """ - Specifies a specification for an Elastic GPU for an Amazon EC2 launch template. + Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. + Specifies a specification for an Elastic GPU for an Amazon EC2 launch template. ``ElasticGpuSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html). """ def __init__(__self__, *, type: Optional[str] = None): """ - Specifies a specification for an Elastic GPU for an Amazon EC2 launch template. + Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. + Specifies a specification for an Elastic GPU for an Amazon EC2 launch template. ``ElasticGpuSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html). :param str type: The type of Elastic Graphics accelerator. For more information about the values to specify for ``Type``, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*. """ @@ -4050,7 +4056,7 @@ def configured(self) -> Optional[bool]: class LaunchTemplateIamInstanceProfile(dict): """ Specifies an IAM instance profile, which is a container for an IAM role for your instance. You can use an IAM role to distribute your AWS credentials to your instances. - If you are creating the launch template for use with an Amazon EC2 Auto Scaling group, you can specify either the name or the ARN of the instance profile, but not both. + If you are creating the launch template for use with an ASlong group, you can specify either the name or the ARN of the instance profile, but not both. ``IamInstanceProfile`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html). """ def __init__(__self__, *, @@ -4058,7 +4064,7 @@ def __init__(__self__, *, name: Optional[str] = None): """ Specifies an IAM instance profile, which is a container for an IAM role for your instance. You can use an IAM role to distribute your AWS credentials to your instances. - If you are creating the launch template for use with an Amazon EC2 Auto Scaling group, you can specify either the name or the ARN of the instance profile, but not both. + If you are creating the launch template for use with an ASlong group, you can specify either the name or the ARN of the instance profile, but not both. ``IamInstanceProfile`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html). :param str arn: The Amazon Resource Name (ARN) of the instance profile. :param str name: The name of the instance profile. @@ -4151,7 +4157,9 @@ class LaunchTemplateInstanceRequirements(dict): + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. - If you specify ``InstanceReq + If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. + Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. + For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. """ @staticmethod def __key_warning(key: str): @@ -4249,7 +4257,9 @@ def __init__(__self__, *, + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. - If you specify ``InstanceReq + If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. + Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. + For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. :param 'LaunchTemplateAcceleratorCount' accelerator_count: The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) on an instance. To exclude accelerator-enabled instance types, set ``Max`` to ``0``. Default: No minimum or maximum limits @@ -4332,8 +4342,8 @@ def __init__(__self__, *, Default: ``hdd`` and ``ssd`` :param int max_spot_price_as_percentage_of_optimal_on_demand_price: [Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold. The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - To indicate no price protection threshold, specify a high value, such as ``999999``. - If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instanc + If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price. + Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. :param 'LaunchTemplateMemoryGiBPerVCpu' memory_gi_b_per_v_cpu: The minimum and maximum amount of memory per vCPU, in GiB. Default: No minimum or maximum limits :param 'LaunchTemplateMemoryMiB' memory_mi_b: The minimum and maximum amount of memory, in MiB. @@ -4345,14 +4355,17 @@ def __init__(__self__, *, The parameter accepts an integer, which Amazon EC2 interprets as a percentage. To turn off price protection, specify a high value, such as ``999999``. This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). - If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per- + If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. + Default: ``20`` :param bool require_hibernate_support: Indicates whether instance types must support hibernation for On-Demand Instances. This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html). Default: ``false`` :param int spot_max_price_percentage_over_lowest_price: [Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold. The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - To indicate no price protection threshold, specify a high value, such as ``999999``. - If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price i + If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. + This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). + Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. + Default: ``100`` :param 'LaunchTemplateTotalLocalStorageGb' total_local_storage_gb: The minimum and maximum amount of total local storage, in GB. Default: No minimum or maximum limits :param 'LaunchTemplateVCpuCount' v_cpu_count: The minimum and maximum number of vCPUs. @@ -4590,8 +4603,8 @@ def max_spot_price_as_percentage_of_optimal_on_demand_price(self) -> Optional[in """ [Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold. The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - To indicate no price protection threshold, specify a high value, such as ``999999``. - If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instanc + If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price. + Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. """ return pulumi.get(self, "max_spot_price_as_percentage_of_optimal_on_demand_price") @@ -4638,7 +4651,8 @@ def on_demand_max_price_percentage_over_lowest_price(self) -> Optional[int]: The parameter accepts an integer, which Amazon EC2 interprets as a percentage. To turn off price protection, specify a high value, such as ``999999``. This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). - If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per- + If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. + Default: ``20`` """ return pulumi.get(self, "on_demand_max_price_percentage_over_lowest_price") @@ -4658,8 +4672,10 @@ def spot_max_price_percentage_over_lowest_price(self) -> Optional[int]: """ [Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold. The parameter accepts an integer, which Amazon EC2 interprets as a percentage. - To indicate no price protection threshold, specify a high value, such as ``999999``. - If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price i + If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price. + This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). + Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``. + Default: ``100`` """ return pulumi.get(self, "spot_max_price_percentage_over_lowest_price") @@ -4859,8 +4875,6 @@ def __key_warning(key: str): suggest = None if key == "autoRecovery": suggest = "auto_recovery" - elif key == "rebootMigration": - suggest = "reboot_migration" if suggest: pulumi.log.warn(f"Key '{key}' not found in LaunchTemplateMaintenanceOptions. Access the value via the '{suggest}' property getter instead.") @@ -4874,16 +4888,13 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, - auto_recovery: Optional[str] = None, - reboot_migration: Optional[str] = None): + auto_recovery: Optional[str] = None): """ The maintenance options of your instance. :param str auto_recovery: Disables the automatic recovery behavior of your instance or sets it to default. """ if auto_recovery is not None: pulumi.set(__self__, "auto_recovery", auto_recovery) - if reboot_migration is not None: - pulumi.set(__self__, "reboot_migration", reboot_migration) @property @pulumi.getter(name="autoRecovery") @@ -4893,11 +4904,6 @@ def auto_recovery(self) -> Optional[str]: """ return pulumi.get(self, "auto_recovery") - @property - @pulumi.getter(name="rebootMigration") - def reboot_migration(self) -> Optional[str]: - return pulumi.get(self, "reboot_migration") - @pulumi.output_type class LaunchTemplateMemoryGiBPerVCpu(dict): @@ -5839,7 +5845,7 @@ def __init__(__self__, *, :param str max_price: The maximum hourly price you're willing to pay for the Spot Instances. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price. If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter. :param str spot_instance_type: The Spot Instance request type. - If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is below its desired capacity. + If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the ASlong service handles requesting new Spot Instances whenever the group is below its desired capacity. :param str valid_until: The end date of the request, in UTC format (*YYYY-MM-DD*T*HH:MM:SS*Z). Supported only for persistent requests. + For a persistent request, the request remains active until the ``ValidUntil`` date and time is reached. Otherwise, the request remains active until you cancel it. + For a one-time request, ``ValidUntil`` is not supported. The request remains active until all instances launch or you cancel the request. @@ -5887,7 +5893,7 @@ def max_price(self) -> Optional[str]: def spot_instance_type(self) -> Optional[str]: """ The Spot Instance request type. - If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is below its desired capacity. + If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the ASlong service handles requesting new Spot Instances whenever the group is below its desired capacity. """ return pulumi.get(self, "spot_instance_type") @@ -8108,9 +8114,9 @@ class PrivateDnsNameOptionsOnLaunchProperties(dict): """ The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. Available options: - + EnableResourceNameDnsAAAARecord (true | false) - + EnableResourceNameDnsARecord (true | false) - + HostnameType (ip-name | resource-name) + + EnableResourceNameDnsAAAARecord (true | false) + + EnableResourceNameDnsARecord (true | false) + + HostnameType (ip-name | resource-name) """ @staticmethod def __key_warning(key: str): @@ -8140,9 +8146,9 @@ def __init__(__self__, *, """ The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. Available options: - + EnableResourceNameDnsAAAARecord (true | false) - + EnableResourceNameDnsARecord (true | false) - + HostnameType (ip-name | resource-name) + + EnableResourceNameDnsAAAARecord (true | false) + + EnableResourceNameDnsARecord (true | false) + + HostnameType (ip-name | resource-name) """ if enable_resource_name_dns_a_record is not None: pulumi.set(__self__, "enable_resource_name_dns_a_record", enable_resource_name_dns_a_record) diff --git a/sdk/python/pulumi_aws_native/ec2/subnet.py b/sdk/python/pulumi_aws_native/ec2/subnet.py index 8cee55b365..fb148f68d9 100644 --- a/sdk/python/pulumi_aws_native/ec2/subnet.py +++ b/sdk/python/pulumi_aws_native/ec2/subnet.py @@ -24,6 +24,7 @@ def __init__(__self__, *, availability_zone_id: Optional[pulumi.Input[str]] = None, cidr_block: Optional[pulumi.Input[str]] = None, enable_dns64: Optional[pulumi.Input[bool]] = None, + enable_lni_at_device_index: Optional[pulumi.Input[int]] = None, ipv4_ipam_pool_id: Optional[pulumi.Input[str]] = None, ipv4_netmask_length: Optional[pulumi.Input[int]] = None, ipv6_cidr_block: Optional[pulumi.Input[str]] = None, @@ -47,6 +48,7 @@ def __init__(__self__, *, :param pulumi.Input[str] cidr_block: The IPv4 CIDR block assigned to the subnet. If you update this property, we create a new subnet, and then delete the existing one. :param pulumi.Input[bool] enable_dns64: Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. For more information, see [DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) in the *User Guide*. + :param pulumi.Input[int] enable_lni_at_device_index: Indicates the device position for local network interfaces in this subnet. For example, ``1`` indicates local network interfaces in this subnet are the secondary network interface (eth1). :param pulumi.Input[str] ipv4_ipam_pool_id: An IPv4 IPAM pool ID for the subnet. :param pulumi.Input[int] ipv4_netmask_length: An IPv4 netmask length for the subnet. :param pulumi.Input[str] ipv6_cidr_block: The IPv6 CIDR block. @@ -56,13 +58,13 @@ def __init__(__self__, *, :param pulumi.Input[bool] ipv6_native: Indicates whether this is an IPv6 only subnet. For more information, see [Subnet basics](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#subnet-basics) in the *User Guide*. :param pulumi.Input[int] ipv6_netmask_length: An IPv6 netmask length for the subnet. :param pulumi.Input[bool] map_public_ip_on_launch: Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``. - AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). + AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). :param pulumi.Input[str] outpost_arn: The Amazon Resource Name (ARN) of the Outpost. :param pulumi.Input['PrivateDnsNameOptionsOnLaunchPropertiesArgs'] private_dns_name_options_on_launch: The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. Available options: - + EnableResourceNameDnsAAAARecord (true | false) - + EnableResourceNameDnsARecord (true | false) - + HostnameType (ip-name | resource-name) + + EnableResourceNameDnsAAAARecord (true | false) + + EnableResourceNameDnsARecord (true | false) + + HostnameType (ip-name | resource-name) :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: Any tags assigned to the subnet. """ pulumi.set(__self__, "vpc_id", vpc_id) @@ -76,6 +78,8 @@ def __init__(__self__, *, pulumi.set(__self__, "cidr_block", cidr_block) if enable_dns64 is not None: pulumi.set(__self__, "enable_dns64", enable_dns64) + if enable_lni_at_device_index is not None: + pulumi.set(__self__, "enable_lni_at_device_index", enable_lni_at_device_index) if ipv4_ipam_pool_id is not None: pulumi.set(__self__, "ipv4_ipam_pool_id", ipv4_ipam_pool_id) if ipv4_netmask_length is not None: @@ -175,6 +179,18 @@ def enable_dns64(self) -> Optional[pulumi.Input[bool]]: def enable_dns64(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "enable_dns64", value) + @property + @pulumi.getter(name="enableLniAtDeviceIndex") + def enable_lni_at_device_index(self) -> Optional[pulumi.Input[int]]: + """ + Indicates the device position for local network interfaces in this subnet. For example, ``1`` indicates local network interfaces in this subnet are the secondary network interface (eth1). + """ + return pulumi.get(self, "enable_lni_at_device_index") + + @enable_lni_at_device_index.setter + def enable_lni_at_device_index(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "enable_lni_at_device_index", value) + @property @pulumi.getter(name="ipv4IpamPoolId") def ipv4_ipam_pool_id(self) -> Optional[pulumi.Input[str]]: @@ -265,7 +281,7 @@ def ipv6_netmask_length(self, value: Optional[pulumi.Input[int]]): def map_public_ip_on_launch(self) -> Optional[pulumi.Input[bool]]: """ Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``. - AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). + AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). """ return pulumi.get(self, "map_public_ip_on_launch") @@ -291,9 +307,9 @@ def private_dns_name_options_on_launch(self) -> Optional[pulumi.Input['PrivateDn """ The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. Available options: - + EnableResourceNameDnsAAAARecord (true | false) - + EnableResourceNameDnsARecord (true | false) - + HostnameType (ip-name | resource-name) + + EnableResourceNameDnsAAAARecord (true | false) + + EnableResourceNameDnsARecord (true | false) + + HostnameType (ip-name | resource-name) """ return pulumi.get(self, "private_dns_name_options_on_launch") @@ -324,6 +340,7 @@ def __init__(__self__, availability_zone_id: Optional[pulumi.Input[str]] = None, cidr_block: Optional[pulumi.Input[str]] = None, enable_dns64: Optional[pulumi.Input[bool]] = None, + enable_lni_at_device_index: Optional[pulumi.Input[int]] = None, ipv4_ipam_pool_id: Optional[pulumi.Input[str]] = None, ipv4_netmask_length: Optional[pulumi.Input[int]] = None, ipv6_cidr_block: Optional[pulumi.Input[str]] = None, @@ -352,6 +369,7 @@ def __init__(__self__, :param pulumi.Input[str] cidr_block: The IPv4 CIDR block assigned to the subnet. If you update this property, we create a new subnet, and then delete the existing one. :param pulumi.Input[bool] enable_dns64: Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. For more information, see [DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64) in the *User Guide*. + :param pulumi.Input[int] enable_lni_at_device_index: Indicates the device position for local network interfaces in this subnet. For example, ``1`` indicates local network interfaces in this subnet are the secondary network interface (eth1). :param pulumi.Input[str] ipv4_ipam_pool_id: An IPv4 IPAM pool ID for the subnet. :param pulumi.Input[int] ipv4_netmask_length: An IPv4 netmask length for the subnet. :param pulumi.Input[str] ipv6_cidr_block: The IPv6 CIDR block. @@ -361,13 +379,13 @@ def __init__(__self__, :param pulumi.Input[bool] ipv6_native: Indicates whether this is an IPv6 only subnet. For more information, see [Subnet basics](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#subnet-basics) in the *User Guide*. :param pulumi.Input[int] ipv6_netmask_length: An IPv6 netmask length for the subnet. :param pulumi.Input[bool] map_public_ip_on_launch: Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``. - AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). + AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). :param pulumi.Input[str] outpost_arn: The Amazon Resource Name (ARN) of the Outpost. :param pulumi.Input[pulumi.InputType['PrivateDnsNameOptionsOnLaunchPropertiesArgs']] private_dns_name_options_on_launch: The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. Available options: - + EnableResourceNameDnsAAAARecord (true | false) - + EnableResourceNameDnsARecord (true | false) - + HostnameType (ip-name | resource-name) + + EnableResourceNameDnsAAAARecord (true | false) + + EnableResourceNameDnsARecord (true | false) + + HostnameType (ip-name | resource-name) :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]] tags: Any tags assigned to the subnet. :param pulumi.Input[str] vpc_id: The ID of the VPC the subnet is in. If you update this property, you must also update the ``CidrBlock`` property. @@ -403,6 +421,7 @@ def _internal_init(__self__, availability_zone_id: Optional[pulumi.Input[str]] = None, cidr_block: Optional[pulumi.Input[str]] = None, enable_dns64: Optional[pulumi.Input[bool]] = None, + enable_lni_at_device_index: Optional[pulumi.Input[int]] = None, ipv4_ipam_pool_id: Optional[pulumi.Input[str]] = None, ipv4_netmask_length: Optional[pulumi.Input[int]] = None, ipv6_cidr_block: Optional[pulumi.Input[str]] = None, @@ -429,6 +448,7 @@ def _internal_init(__self__, __props__.__dict__["availability_zone_id"] = availability_zone_id __props__.__dict__["cidr_block"] = cidr_block __props__.__dict__["enable_dns64"] = enable_dns64 + __props__.__dict__["enable_lni_at_device_index"] = enable_lni_at_device_index __props__.__dict__["ipv4_ipam_pool_id"] = ipv4_ipam_pool_id __props__.__dict__["ipv4_netmask_length"] = ipv4_netmask_length __props__.__dict__["ipv6_cidr_block"] = ipv6_cidr_block @@ -474,6 +494,7 @@ def get(resource_name: str, __props__.__dict__["availability_zone_id"] = None __props__.__dict__["cidr_block"] = None __props__.__dict__["enable_dns64"] = None + __props__.__dict__["enable_lni_at_device_index"] = None __props__.__dict__["ipv4_ipam_pool_id"] = None __props__.__dict__["ipv4_netmask_length"] = None __props__.__dict__["ipv6_cidr_block"] = None @@ -533,6 +554,14 @@ def enable_dns64(self) -> pulumi.Output[Optional[bool]]: """ return pulumi.get(self, "enable_dns64") + @property + @pulumi.getter(name="enableLniAtDeviceIndex") + def enable_lni_at_device_index(self) -> pulumi.Output[Optional[int]]: + """ + Indicates the device position for local network interfaces in this subnet. For example, ``1`` indicates local network interfaces in this subnet are the secondary network interface (eth1). + """ + return pulumi.get(self, "enable_lni_at_device_index") + @property @pulumi.getter(name="ipv4IpamPoolId") def ipv4_ipam_pool_id(self) -> pulumi.Output[Optional[str]]: @@ -595,7 +624,7 @@ def ipv6_netmask_length(self) -> pulumi.Output[Optional[int]]: def map_public_ip_on_launch(self) -> pulumi.Output[Optional[bool]]: """ Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``. - AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). + AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). """ return pulumi.get(self, "map_public_ip_on_launch") @@ -618,9 +647,9 @@ def private_dns_name_options_on_launch(self) -> pulumi.Output[Optional['outputs. """ The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. Available options: - + EnableResourceNameDnsAAAARecord (true | false) - + EnableResourceNameDnsARecord (true | false) - + HostnameType (ip-name | resource-name) + + EnableResourceNameDnsAAAARecord (true | false) + + EnableResourceNameDnsARecord (true | false) + + HostnameType (ip-name | resource-name) """ return pulumi.get(self, "private_dns_name_options_on_launch") diff --git a/sdk/python/pulumi_aws_native/ec2/transit_gateway_route_table_association.py b/sdk/python/pulumi_aws_native/ec2/transit_gateway_route_table_association.py index d0ae4c0e6b..ce2e1593e1 100644 --- a/sdk/python/pulumi_aws_native/ec2/transit_gateway_route_table_association.py +++ b/sdk/python/pulumi_aws_native/ec2/transit_gateway_route_table_association.py @@ -18,6 +18,8 @@ def __init__(__self__, *, transit_gateway_route_table_id: pulumi.Input[str]): """ The set of arguments for constructing a TransitGatewayRouteTableAssociation resource. + :param pulumi.Input[str] transit_gateway_attachment_id: The ID of transit gateway attachment. + :param pulumi.Input[str] transit_gateway_route_table_id: The ID of transit gateway route table. """ pulumi.set(__self__, "transit_gateway_attachment_id", transit_gateway_attachment_id) pulumi.set(__self__, "transit_gateway_route_table_id", transit_gateway_route_table_id) @@ -25,6 +27,9 @@ def __init__(__self__, *, @property @pulumi.getter(name="transitGatewayAttachmentId") def transit_gateway_attachment_id(self) -> pulumi.Input[str]: + """ + The ID of transit gateway attachment. + """ return pulumi.get(self, "transit_gateway_attachment_id") @transit_gateway_attachment_id.setter @@ -34,6 +39,9 @@ def transit_gateway_attachment_id(self, value: pulumi.Input[str]): @property @pulumi.getter(name="transitGatewayRouteTableId") def transit_gateway_route_table_id(self) -> pulumi.Input[str]: + """ + The ID of transit gateway route table. + """ return pulumi.get(self, "transit_gateway_route_table_id") @transit_gateway_route_table_id.setter @@ -54,6 +62,8 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] transit_gateway_attachment_id: The ID of transit gateway attachment. + :param pulumi.Input[str] transit_gateway_route_table_id: The ID of transit gateway route table. """ ... @overload @@ -96,7 +106,6 @@ def _internal_init(__self__, if transit_gateway_route_table_id is None and not opts.urn: raise TypeError("Missing required property 'transit_gateway_route_table_id'") __props__.__dict__["transit_gateway_route_table_id"] = transit_gateway_route_table_id - __props__.__dict__["aws_id"] = None replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["transitGatewayAttachmentId", "transitGatewayRouteTableId"]) opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) super(TransitGatewayRouteTableAssociation, __self__).__init__( @@ -121,23 +130,23 @@ def get(resource_name: str, __props__ = TransitGatewayRouteTableAssociationArgs.__new__(TransitGatewayRouteTableAssociationArgs) - __props__.__dict__["aws_id"] = None __props__.__dict__["transit_gateway_attachment_id"] = None __props__.__dict__["transit_gateway_route_table_id"] = None return TransitGatewayRouteTableAssociation(resource_name, opts=opts, __props__=__props__) - @property - @pulumi.getter(name="awsId") - def aws_id(self) -> pulumi.Output[str]: - return pulumi.get(self, "aws_id") - @property @pulumi.getter(name="transitGatewayAttachmentId") def transit_gateway_attachment_id(self) -> pulumi.Output[str]: + """ + The ID of transit gateway attachment. + """ return pulumi.get(self, "transit_gateway_attachment_id") @property @pulumi.getter(name="transitGatewayRouteTableId") def transit_gateway_route_table_id(self) -> pulumi.Output[str]: + """ + The ID of transit gateway route table. + """ return pulumi.get(self, "transit_gateway_route_table_id") diff --git a/sdk/python/pulumi_aws_native/efs/_enums.py b/sdk/python/pulumi_aws_native/efs/_enums.py index e7eb374f14..b1723c56e9 100644 --- a/sdk/python/pulumi_aws_native/efs/_enums.py +++ b/sdk/python/pulumi_aws_native/efs/_enums.py @@ -5,10 +5,21 @@ from enum import Enum __all__ = [ + 'FileSystemBackupPolicyStatus', 'FileSystemProtectionReplicationOverwriteProtection', ] +class FileSystemBackupPolicyStatus(str, Enum): + """ + Set the backup policy status for the file system. + + *ENABLED* - Turns automatic backups on for the file system. + + *DISABLED* - Turns automatic backups off for the file system. + """ + DISABLED = "DISABLED" + ENABLED = "ENABLED" + + class FileSystemProtectionReplicationOverwriteProtection(str, Enum): """ The status of the file system's replication overwrite protection. diff --git a/sdk/python/pulumi_aws_native/efs/_inputs.py b/sdk/python/pulumi_aws_native/efs/_inputs.py index c2a3f15ec7..c25591e458 100644 --- a/sdk/python/pulumi_aws_native/efs/_inputs.py +++ b/sdk/python/pulumi_aws_native/efs/_inputs.py @@ -175,10 +175,10 @@ def path(self, value: Optional[pulumi.Input[str]]): @pulumi.input_type class FileSystemBackupPolicyArgs: def __init__(__self__, *, - status: pulumi.Input[str]): + status: pulumi.Input['FileSystemBackupPolicyStatus']): """ The backup policy turns automatic backups for the file system on or off. - :param pulumi.Input[str] status: Set the backup policy status for the file system. + :param pulumi.Input['FileSystemBackupPolicyStatus'] status: Set the backup policy status for the file system. + *ENABLED* - Turns automatic backups on for the file system. + *DISABLED* - Turns automatic backups off for the file system. """ @@ -186,7 +186,7 @@ def __init__(__self__, *, @property @pulumi.getter - def status(self) -> pulumi.Input[str]: + def status(self) -> pulumi.Input['FileSystemBackupPolicyStatus']: """ Set the backup policy status for the file system. + *ENABLED* - Turns automatic backups on for the file system. @@ -195,7 +195,7 @@ def status(self) -> pulumi.Input[str]: return pulumi.get(self, "status") @status.setter - def status(self, value: pulumi.Input[str]): + def status(self, value: pulumi.Input['FileSystemBackupPolicyStatus']): pulumi.set(self, "status", value) diff --git a/sdk/python/pulumi_aws_native/efs/outputs.py b/sdk/python/pulumi_aws_native/efs/outputs.py index 872e491038..39285dbf30 100644 --- a/sdk/python/pulumi_aws_native/efs/outputs.py +++ b/sdk/python/pulumi_aws_native/efs/outputs.py @@ -211,10 +211,10 @@ class FileSystemBackupPolicy(dict): The backup policy turns automatic backups for the file system on or off. """ def __init__(__self__, *, - status: str): + status: 'FileSystemBackupPolicyStatus'): """ The backup policy turns automatic backups for the file system on or off. - :param str status: Set the backup policy status for the file system. + :param 'FileSystemBackupPolicyStatus' status: Set the backup policy status for the file system. + *ENABLED* - Turns automatic backups on for the file system. + *DISABLED* - Turns automatic backups off for the file system. """ @@ -222,7 +222,7 @@ def __init__(__self__, *, @property @pulumi.getter - def status(self) -> str: + def status(self) -> 'FileSystemBackupPolicyStatus': """ Set the backup policy status for the file system. + *ENABLED* - Turns automatic backups on for the file system. diff --git a/sdk/python/pulumi_aws_native/elasticache/_enums.py b/sdk/python/pulumi_aws_native/elasticache/_enums.py index 13576068bb..851ebbd785 100644 --- a/sdk/python/pulumi_aws_native/elasticache/_enums.py +++ b/sdk/python/pulumi_aws_native/elasticache/_enums.py @@ -23,7 +23,7 @@ class GlobalReplicationGroupMemberRole(str, Enum): class ServerlessCacheDataStorageUnit(str, Enum): """ - The unix of cached data capacity of the Serverless Cache. + The unit of cached data capacity of the Serverless Cache. """ GB = "GB" diff --git a/sdk/python/pulumi_aws_native/elasticache/_inputs.py b/sdk/python/pulumi_aws_native/elasticache/_inputs.py index 849ec62f2d..c27c0ecd28 100644 --- a/sdk/python/pulumi_aws_native/elasticache/_inputs.py +++ b/sdk/python/pulumi_aws_native/elasticache/_inputs.py @@ -243,63 +243,97 @@ def ecpu_per_second(self, value: Optional[pulumi.Input['ServerlessCacheEcpuPerSe @pulumi.input_type class ServerlessCacheDataStorageArgs: def __init__(__self__, *, - maximum: pulumi.Input[int], - unit: pulumi.Input['ServerlessCacheDataStorageUnit']): + unit: pulumi.Input['ServerlessCacheDataStorageUnit'], + maximum: Optional[pulumi.Input[int]] = None, + minimum: Optional[pulumi.Input[int]] = None): """ The cached data capacity of the Serverless Cache. + :param pulumi.Input['ServerlessCacheDataStorageUnit'] unit: The unit of cached data capacity of the Serverless Cache. :param pulumi.Input[int] maximum: The maximum cached data capacity of the Serverless Cache. - :param pulumi.Input['ServerlessCacheDataStorageUnit'] unit: The unix of cached data capacity of the Serverless Cache. + :param pulumi.Input[int] minimum: The minimum cached data capacity of the Serverless Cache. """ - pulumi.set(__self__, "maximum", maximum) pulumi.set(__self__, "unit", unit) + if maximum is not None: + pulumi.set(__self__, "maximum", maximum) + if minimum is not None: + pulumi.set(__self__, "minimum", minimum) @property @pulumi.getter - def maximum(self) -> pulumi.Input[int]: + def unit(self) -> pulumi.Input['ServerlessCacheDataStorageUnit']: + """ + The unit of cached data capacity of the Serverless Cache. + """ + return pulumi.get(self, "unit") + + @unit.setter + def unit(self, value: pulumi.Input['ServerlessCacheDataStorageUnit']): + pulumi.set(self, "unit", value) + + @property + @pulumi.getter + def maximum(self) -> Optional[pulumi.Input[int]]: """ The maximum cached data capacity of the Serverless Cache. """ return pulumi.get(self, "maximum") @maximum.setter - def maximum(self, value: pulumi.Input[int]): + def maximum(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "maximum", value) @property @pulumi.getter - def unit(self) -> pulumi.Input['ServerlessCacheDataStorageUnit']: + def minimum(self) -> Optional[pulumi.Input[int]]: """ - The unix of cached data capacity of the Serverless Cache. + The minimum cached data capacity of the Serverless Cache. """ - return pulumi.get(self, "unit") + return pulumi.get(self, "minimum") - @unit.setter - def unit(self, value: pulumi.Input['ServerlessCacheDataStorageUnit']): - pulumi.set(self, "unit", value) + @minimum.setter + def minimum(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "minimum", value) @pulumi.input_type class ServerlessCacheEcpuPerSecondArgs: def __init__(__self__, *, - maximum: pulumi.Input[int]): + maximum: Optional[pulumi.Input[int]] = None, + minimum: Optional[pulumi.Input[int]] = None): """ The ECPU per second of the Serverless Cache. :param pulumi.Input[int] maximum: The maximum ECPU per second of the Serverless Cache. + :param pulumi.Input[int] minimum: The minimum ECPU per second of the Serverless Cache. """ - pulumi.set(__self__, "maximum", maximum) + if maximum is not None: + pulumi.set(__self__, "maximum", maximum) + if minimum is not None: + pulumi.set(__self__, "minimum", minimum) @property @pulumi.getter - def maximum(self) -> pulumi.Input[int]: + def maximum(self) -> Optional[pulumi.Input[int]]: """ The maximum ECPU per second of the Serverless Cache. """ return pulumi.get(self, "maximum") @maximum.setter - def maximum(self, value: pulumi.Input[int]): + def maximum(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "maximum", value) + @property + @pulumi.getter + def minimum(self) -> Optional[pulumi.Input[int]]: + """ + The minimum ECPU per second of the Serverless Cache. + """ + return pulumi.get(self, "minimum") + + @minimum.setter + def minimum(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "minimum", value) + @pulumi.input_type class ServerlessCacheEndpointArgs: diff --git a/sdk/python/pulumi_aws_native/elasticache/outputs.py b/sdk/python/pulumi_aws_native/elasticache/outputs.py index 81785a30ac..cc3a0a3339 100644 --- a/sdk/python/pulumi_aws_native/elasticache/outputs.py +++ b/sdk/python/pulumi_aws_native/elasticache/outputs.py @@ -280,19 +280,32 @@ class ServerlessCacheDataStorage(dict): The cached data capacity of the Serverless Cache. """ def __init__(__self__, *, - maximum: int, - unit: 'ServerlessCacheDataStorageUnit'): + unit: 'ServerlessCacheDataStorageUnit', + maximum: Optional[int] = None, + minimum: Optional[int] = None): """ The cached data capacity of the Serverless Cache. + :param 'ServerlessCacheDataStorageUnit' unit: The unit of cached data capacity of the Serverless Cache. :param int maximum: The maximum cached data capacity of the Serverless Cache. - :param 'ServerlessCacheDataStorageUnit' unit: The unix of cached data capacity of the Serverless Cache. + :param int minimum: The minimum cached data capacity of the Serverless Cache. """ - pulumi.set(__self__, "maximum", maximum) pulumi.set(__self__, "unit", unit) + if maximum is not None: + pulumi.set(__self__, "maximum", maximum) + if minimum is not None: + pulumi.set(__self__, "minimum", minimum) @property @pulumi.getter - def maximum(self) -> int: + def unit(self) -> 'ServerlessCacheDataStorageUnit': + """ + The unit of cached data capacity of the Serverless Cache. + """ + return pulumi.get(self, "unit") + + @property + @pulumi.getter + def maximum(self) -> Optional[int]: """ The maximum cached data capacity of the Serverless Cache. """ @@ -300,11 +313,11 @@ def maximum(self) -> int: @property @pulumi.getter - def unit(self) -> 'ServerlessCacheDataStorageUnit': + def minimum(self) -> Optional[int]: """ - The unix of cached data capacity of the Serverless Cache. + The minimum cached data capacity of the Serverless Cache. """ - return pulumi.get(self, "unit") + return pulumi.get(self, "minimum") @pulumi.output_type @@ -313,21 +326,34 @@ class ServerlessCacheEcpuPerSecond(dict): The ECPU per second of the Serverless Cache. """ def __init__(__self__, *, - maximum: int): + maximum: Optional[int] = None, + minimum: Optional[int] = None): """ The ECPU per second of the Serverless Cache. :param int maximum: The maximum ECPU per second of the Serverless Cache. + :param int minimum: The minimum ECPU per second of the Serverless Cache. """ - pulumi.set(__self__, "maximum", maximum) + if maximum is not None: + pulumi.set(__self__, "maximum", maximum) + if minimum is not None: + pulumi.set(__self__, "minimum", minimum) @property @pulumi.getter - def maximum(self) -> int: + def maximum(self) -> Optional[int]: """ The maximum ECPU per second of the Serverless Cache. """ return pulumi.get(self, "maximum") + @property + @pulumi.getter + def minimum(self) -> Optional[int]: + """ + The minimum ECPU per second of the Serverless Cache. + """ + return pulumi.get(self, "minimum") + @pulumi.output_type class ServerlessCacheEndpoint(dict): diff --git a/sdk/python/pulumi_aws_native/entityresolution/_enums.py b/sdk/python/pulumi_aws_native/entityresolution/_enums.py index 220b2b5b90..6af159fd93 100644 --- a/sdk/python/pulumi_aws_native/entityresolution/_enums.py +++ b/sdk/python/pulumi_aws_native/entityresolution/_enums.py @@ -6,6 +6,7 @@ __all__ = [ 'IdMappingWorkflowIdMappingTechniquesIdMappingType', + 'IdMappingWorkflowInputSourceType', 'MatchingWorkflowResolutionTechniquesResolutionType', 'MatchingWorkflowRuleBasedPropertiesAttributeMatchingModel', 'SchemaMappingSchemaAttributeType', @@ -16,6 +17,11 @@ class IdMappingWorkflowIdMappingTechniquesIdMappingType(str, Enum): PROVIDER = "PROVIDER" +class IdMappingWorkflowInputSourceType(str, Enum): + SOURCE = "SOURCE" + TARGET = "TARGET" + + class MatchingWorkflowResolutionTechniquesResolutionType(str, Enum): RULE_MATCHING = "RULE_MATCHING" ML_MATCHING = "ML_MATCHING" diff --git a/sdk/python/pulumi_aws_native/entityresolution/_inputs.py b/sdk/python/pulumi_aws_native/entityresolution/_inputs.py index cfb6138033..14bef30d5f 100644 --- a/sdk/python/pulumi_aws_native/entityresolution/_inputs.py +++ b/sdk/python/pulumi_aws_native/entityresolution/_inputs.py @@ -60,18 +60,22 @@ def provider_properties(self, value: Optional[pulumi.Input['IdMappingWorkflowPro class IdMappingWorkflowInputSourceArgs: def __init__(__self__, *, input_source_arn: pulumi.Input[str], - schema_arn: pulumi.Input[str]): + schema_arn: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input['IdMappingWorkflowInputSourceType']] = None): """ - :param pulumi.Input[str] input_source_arn: An Glue table ARN for the input source table + :param pulumi.Input[str] input_source_arn: An Glue table ARN for the input source table or IdNamespace ARN """ pulumi.set(__self__, "input_source_arn", input_source_arn) - pulumi.set(__self__, "schema_arn", schema_arn) + if schema_arn is not None: + pulumi.set(__self__, "schema_arn", schema_arn) + if type is not None: + pulumi.set(__self__, "type", type) @property @pulumi.getter(name="inputSourceArn") def input_source_arn(self) -> pulumi.Input[str]: """ - An Glue table ARN for the input source table + An Glue table ARN for the input source table or IdNamespace ARN """ return pulumi.get(self, "input_source_arn") @@ -81,13 +85,22 @@ def input_source_arn(self, value: pulumi.Input[str]): @property @pulumi.getter(name="schemaArn") - def schema_arn(self) -> pulumi.Input[str]: + def schema_arn(self) -> Optional[pulumi.Input[str]]: return pulumi.get(self, "schema_arn") @schema_arn.setter - def schema_arn(self, value: pulumi.Input[str]): + def schema_arn(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "schema_arn", value) + @property + @pulumi.getter + def type(self) -> Optional[pulumi.Input['IdMappingWorkflowInputSourceType']]: + return pulumi.get(self, "type") + + @type.setter + def type(self, value: Optional[pulumi.Input['IdMappingWorkflowInputSourceType']]): + pulumi.set(self, "type", value) + @pulumi.input_type class IdMappingWorkflowIntermediateSourceConfigurationArgs: diff --git a/sdk/python/pulumi_aws_native/entityresolution/id_mapping_workflow.py b/sdk/python/pulumi_aws_native/entityresolution/id_mapping_workflow.py index 03d7ae7060..a5524d2cfd 100644 --- a/sdk/python/pulumi_aws_native/entityresolution/id_mapping_workflow.py +++ b/sdk/python/pulumi_aws_native/entityresolution/id_mapping_workflow.py @@ -21,9 +21,9 @@ class IdMappingWorkflowArgs: def __init__(__self__, *, id_mapping_techniques: pulumi.Input['IdMappingWorkflowIdMappingTechniquesArgs'], input_source_config: pulumi.Input[Sequence[pulumi.Input['IdMappingWorkflowInputSourceArgs']]], - output_source_config: pulumi.Input[Sequence[pulumi.Input['IdMappingWorkflowOutputSourceArgs']]], role_arn: pulumi.Input[str], description: Optional[pulumi.Input[str]] = None, + output_source_config: Optional[pulumi.Input[Sequence[pulumi.Input['IdMappingWorkflowOutputSourceArgs']]]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None, workflow_name: Optional[pulumi.Input[str]] = None): """ @@ -33,10 +33,11 @@ def __init__(__self__, *, """ pulumi.set(__self__, "id_mapping_techniques", id_mapping_techniques) pulumi.set(__self__, "input_source_config", input_source_config) - pulumi.set(__self__, "output_source_config", output_source_config) pulumi.set(__self__, "role_arn", role_arn) if description is not None: pulumi.set(__self__, "description", description) + if output_source_config is not None: + pulumi.set(__self__, "output_source_config", output_source_config) if tags is not None: pulumi.set(__self__, "tags", tags) if workflow_name is not None: @@ -60,15 +61,6 @@ def input_source_config(self) -> pulumi.Input[Sequence[pulumi.Input['IdMappingWo def input_source_config(self, value: pulumi.Input[Sequence[pulumi.Input['IdMappingWorkflowInputSourceArgs']]]): pulumi.set(self, "input_source_config", value) - @property - @pulumi.getter(name="outputSourceConfig") - def output_source_config(self) -> pulumi.Input[Sequence[pulumi.Input['IdMappingWorkflowOutputSourceArgs']]]: - return pulumi.get(self, "output_source_config") - - @output_source_config.setter - def output_source_config(self, value: pulumi.Input[Sequence[pulumi.Input['IdMappingWorkflowOutputSourceArgs']]]): - pulumi.set(self, "output_source_config", value) - @property @pulumi.getter(name="roleArn") def role_arn(self) -> pulumi.Input[str]: @@ -90,6 +82,15 @@ def description(self) -> Optional[pulumi.Input[str]]: def description(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "description", value) + @property + @pulumi.getter(name="outputSourceConfig") + def output_source_config(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['IdMappingWorkflowOutputSourceArgs']]]]: + return pulumi.get(self, "output_source_config") + + @output_source_config.setter + def output_source_config(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['IdMappingWorkflowOutputSourceArgs']]]]): + pulumi.set(self, "output_source_config", value) + @property @pulumi.getter def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]: @@ -180,8 +181,6 @@ def _internal_init(__self__, if input_source_config is None and not opts.urn: raise TypeError("Missing required property 'input_source_config'") __props__.__dict__["input_source_config"] = input_source_config - if output_source_config is None and not opts.urn: - raise TypeError("Missing required property 'output_source_config'") __props__.__dict__["output_source_config"] = output_source_config if role_arn is None and not opts.urn: raise TypeError("Missing required property 'role_arn'") @@ -252,7 +251,7 @@ def input_source_config(self) -> pulumi.Output[Sequence['outputs.IdMappingWorkfl @property @pulumi.getter(name="outputSourceConfig") - def output_source_config(self) -> pulumi.Output[Sequence['outputs.IdMappingWorkflowOutputSource']]: + def output_source_config(self) -> pulumi.Output[Optional[Sequence['outputs.IdMappingWorkflowOutputSource']]]: return pulumi.get(self, "output_source_config") @property diff --git a/sdk/python/pulumi_aws_native/entityresolution/outputs.py b/sdk/python/pulumi_aws_native/entityresolution/outputs.py index e546d80697..5807167d3e 100644 --- a/sdk/python/pulumi_aws_native/entityresolution/outputs.py +++ b/sdk/python/pulumi_aws_native/entityresolution/outputs.py @@ -91,26 +91,35 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, input_source_arn: str, - schema_arn: str): + schema_arn: Optional[str] = None, + type: Optional['IdMappingWorkflowInputSourceType'] = None): """ - :param str input_source_arn: An Glue table ARN for the input source table + :param str input_source_arn: An Glue table ARN for the input source table or IdNamespace ARN """ pulumi.set(__self__, "input_source_arn", input_source_arn) - pulumi.set(__self__, "schema_arn", schema_arn) + if schema_arn is not None: + pulumi.set(__self__, "schema_arn", schema_arn) + if type is not None: + pulumi.set(__self__, "type", type) @property @pulumi.getter(name="inputSourceArn") def input_source_arn(self) -> str: """ - An Glue table ARN for the input source table + An Glue table ARN for the input source table or IdNamespace ARN """ return pulumi.get(self, "input_source_arn") @property @pulumi.getter(name="schemaArn") - def schema_arn(self) -> str: + def schema_arn(self) -> Optional[str]: return pulumi.get(self, "schema_arn") + @property + @pulumi.getter + def type(self) -> Optional['IdMappingWorkflowInputSourceType']: + return pulumi.get(self, "type") + @pulumi.output_type class IdMappingWorkflowIntermediateSourceConfiguration(dict): diff --git a/sdk/python/pulumi_aws_native/gamelift/_inputs.py b/sdk/python/pulumi_aws_native/gamelift/_inputs.py index b37fe267f0..0de8ad5977 100644 --- a/sdk/python/pulumi_aws_native/gamelift/_inputs.py +++ b/sdk/python/pulumi_aws_native/gamelift/_inputs.py @@ -738,7 +738,7 @@ def __init__(__self__, *, target_tracking_configuration: pulumi.Input['GameServerGroupTargetTrackingConfigurationArgs'], estimated_instance_warmup: Optional[pulumi.Input[float]] = None): """ - Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting + Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. """ pulumi.set(__self__, "target_tracking_configuration", target_tracking_configuration) if estimated_instance_warmup is not None: @@ -801,7 +801,7 @@ def __init__(__self__, *, launch_template_name: Optional[pulumi.Input[str]] = None, version: Optional[pulumi.Input[str]] = None): """ - The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. + The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. """ if launch_template_id is not None: pulumi.set(__self__, "launch_template_id", launch_template_id) diff --git a/sdk/python/pulumi_aws_native/gamelift/game_server_group.py b/sdk/python/pulumi_aws_native/gamelift/game_server_group.py index 038efa7fc1..a7f2638405 100644 --- a/sdk/python/pulumi_aws_native/gamelift/game_server_group.py +++ b/sdk/python/pulumi_aws_native/gamelift/game_server_group.py @@ -35,16 +35,16 @@ def __init__(__self__, *, The set of arguments for constructing a GameServerGroup resource. :param pulumi.Input[Sequence[pulumi.Input['GameServerGroupInstanceDefinitionArgs']]] instance_definitions: A set of EC2 instance types to use when creating instances in the group. :param pulumi.Input[str] role_arn: The Amazon Resource Name (ARN) for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups. - :param pulumi.Input['GameServerGroupAutoScalingPolicyArgs'] auto_scaling_policy: Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting + :param pulumi.Input['GameServerGroupAutoScalingPolicyArgs'] auto_scaling_policy: Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. :param pulumi.Input['GameServerGroupBalancingStrategy'] balancing_strategy: The fallback balancing method to use for the game server group when Spot Instances in a Region become unavailable or are not viable for game hosting. :param pulumi.Input['GameServerGroupDeleteOption'] delete_option: The type of delete to perform. :param pulumi.Input[str] game_server_group_name: An identifier for the new game server group. :param pulumi.Input['GameServerGroupGameServerProtectionPolicy'] game_server_protection_policy: A flag that indicates whether instances in the game server group are protected from early termination. - :param pulumi.Input['GameServerGroupLaunchTemplateArgs'] launch_template: The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. - :param pulumi.Input[float] max_size: The maximum number of instances allowed in the EC2 Auto Scaling group. - :param pulumi.Input[float] min_size: The minimum number of instances allowed in the EC2 Auto Scaling group. - :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: A list of labels to assign to the new game server group resource. - :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_subnets: A list of virtual private cloud (VPC) subnets to use with instances in the game server group. + :param pulumi.Input['GameServerGroupLaunchTemplateArgs'] launch_template: The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. + :param pulumi.Input[float] max_size: The maximum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. + :param pulumi.Input[float] min_size: The minimum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. + :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: A list of labels to assign to the new game server group resource. Updating game server group tags with CloudFormation will not take effect. Please update this property using AWS GameLift APIs instead. + :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_subnets: A list of virtual private cloud (VPC) subnets to use with instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. """ pulumi.set(__self__, "instance_definitions", instance_definitions) pulumi.set(__self__, "role_arn", role_arn) @@ -97,7 +97,7 @@ def role_arn(self, value: pulumi.Input[str]): @pulumi.getter(name="autoScalingPolicy") def auto_scaling_policy(self) -> Optional[pulumi.Input['GameServerGroupAutoScalingPolicyArgs']]: """ - Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting + Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. """ return pulumi.get(self, "auto_scaling_policy") @@ -157,7 +157,7 @@ def game_server_protection_policy(self, value: Optional[pulumi.Input['GameServer @pulumi.getter(name="launchTemplate") def launch_template(self) -> Optional[pulumi.Input['GameServerGroupLaunchTemplateArgs']]: """ - The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. + The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. """ return pulumi.get(self, "launch_template") @@ -169,7 +169,7 @@ def launch_template(self, value: Optional[pulumi.Input['GameServerGroupLaunchTem @pulumi.getter(name="maxSize") def max_size(self) -> Optional[pulumi.Input[float]]: """ - The maximum number of instances allowed in the EC2 Auto Scaling group. + The maximum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. """ return pulumi.get(self, "max_size") @@ -181,7 +181,7 @@ def max_size(self, value: Optional[pulumi.Input[float]]): @pulumi.getter(name="minSize") def min_size(self) -> Optional[pulumi.Input[float]]: """ - The minimum number of instances allowed in the EC2 Auto Scaling group. + The minimum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. """ return pulumi.get(self, "min_size") @@ -193,7 +193,7 @@ def min_size(self, value: Optional[pulumi.Input[float]]): @pulumi.getter def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]: """ - A list of labels to assign to the new game server group resource. + A list of labels to assign to the new game server group resource. Updating game server group tags with CloudFormation will not take effect. Please update this property using AWS GameLift APIs instead. """ return pulumi.get(self, "tags") @@ -205,7 +205,7 @@ def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs. @pulumi.getter(name="vpcSubnets") def vpc_subnets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - A list of virtual private cloud (VPC) subnets to use with instances in the game server group. + A list of virtual private cloud (VPC) subnets to use with instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. """ return pulumi.get(self, "vpc_subnets") @@ -237,18 +237,18 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[pulumi.InputType['GameServerGroupAutoScalingPolicyArgs']] auto_scaling_policy: Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting + :param pulumi.Input[pulumi.InputType['GameServerGroupAutoScalingPolicyArgs']] auto_scaling_policy: Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. :param pulumi.Input['GameServerGroupBalancingStrategy'] balancing_strategy: The fallback balancing method to use for the game server group when Spot Instances in a Region become unavailable or are not viable for game hosting. :param pulumi.Input['GameServerGroupDeleteOption'] delete_option: The type of delete to perform. :param pulumi.Input[str] game_server_group_name: An identifier for the new game server group. :param pulumi.Input['GameServerGroupGameServerProtectionPolicy'] game_server_protection_policy: A flag that indicates whether instances in the game server group are protected from early termination. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['GameServerGroupInstanceDefinitionArgs']]]] instance_definitions: A set of EC2 instance types to use when creating instances in the group. - :param pulumi.Input[pulumi.InputType['GameServerGroupLaunchTemplateArgs']] launch_template: The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. - :param pulumi.Input[float] max_size: The maximum number of instances allowed in the EC2 Auto Scaling group. - :param pulumi.Input[float] min_size: The minimum number of instances allowed in the EC2 Auto Scaling group. + :param pulumi.Input[pulumi.InputType['GameServerGroupLaunchTemplateArgs']] launch_template: The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. + :param pulumi.Input[float] max_size: The maximum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. + :param pulumi.Input[float] min_size: The minimum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. :param pulumi.Input[str] role_arn: The Amazon Resource Name (ARN) for an IAM role that allows Amazon GameLift to access your EC2 Auto Scaling groups. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]] tags: A list of labels to assign to the new game server group resource. - :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_subnets: A list of virtual private cloud (VPC) subnets to use with instances in the game server group. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]] tags: A list of labels to assign to the new game server group resource. Updating game server group tags with CloudFormation will not take effect. Please update this property using AWS GameLift APIs instead. + :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_subnets: A list of virtual private cloud (VPC) subnets to use with instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. """ ... @overload @@ -363,7 +363,7 @@ def auto_scaling_group_arn(self) -> pulumi.Output[str]: @pulumi.getter(name="autoScalingPolicy") def auto_scaling_policy(self) -> pulumi.Output[Optional['outputs.GameServerGroupAutoScalingPolicy']]: """ - Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting + Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. """ return pulumi.get(self, "auto_scaling_policy") @@ -419,7 +419,7 @@ def instance_definitions(self) -> pulumi.Output[Sequence['outputs.GameServerGrou @pulumi.getter(name="launchTemplate") def launch_template(self) -> pulumi.Output[Optional['outputs.GameServerGroupLaunchTemplate']]: """ - The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. + The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. """ return pulumi.get(self, "launch_template") @@ -427,7 +427,7 @@ def launch_template(self) -> pulumi.Output[Optional['outputs.GameServerGroupLaun @pulumi.getter(name="maxSize") def max_size(self) -> pulumi.Output[Optional[float]]: """ - The maximum number of instances allowed in the EC2 Auto Scaling group. + The maximum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. """ return pulumi.get(self, "max_size") @@ -435,7 +435,7 @@ def max_size(self) -> pulumi.Output[Optional[float]]: @pulumi.getter(name="minSize") def min_size(self) -> pulumi.Output[Optional[float]]: """ - The minimum number of instances allowed in the EC2 Auto Scaling group. + The minimum number of instances allowed in the EC2 Auto Scaling group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. """ return pulumi.get(self, "min_size") @@ -451,7 +451,7 @@ def role_arn(self) -> pulumi.Output[str]: @pulumi.getter def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: """ - A list of labels to assign to the new game server group resource. + A list of labels to assign to the new game server group resource. Updating game server group tags with CloudFormation will not take effect. Please update this property using AWS GameLift APIs instead. """ return pulumi.get(self, "tags") @@ -459,7 +459,7 @@ def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: @pulumi.getter(name="vpcSubnets") def vpc_subnets(self) -> pulumi.Output[Optional[Sequence[str]]]: """ - A list of virtual private cloud (VPC) subnets to use with instances in the game server group. + A list of virtual private cloud (VPC) subnets to use with instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. """ return pulumi.get(self, "vpc_subnets") diff --git a/sdk/python/pulumi_aws_native/gamelift/outputs.py b/sdk/python/pulumi_aws_native/gamelift/outputs.py index 208a1e38b4..9833a905b1 100644 --- a/sdk/python/pulumi_aws_native/gamelift/outputs.py +++ b/sdk/python/pulumi_aws_native/gamelift/outputs.py @@ -835,7 +835,7 @@ def target_value(self) -> float: @pulumi.output_type class GameServerGroupAutoScalingPolicy(dict): """ - Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting + Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. """ @staticmethod def __key_warning(key: str): @@ -860,7 +860,7 @@ def __init__(__self__, *, target_tracking_configuration: 'outputs.GameServerGroupTargetTrackingConfiguration', estimated_instance_warmup: Optional[float] = None): """ - Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting + Configuration settings to define a scaling policy for the Auto Scaling group that is optimized for game hosting. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. """ pulumi.set(__self__, "target_tracking_configuration", target_tracking_configuration) if estimated_instance_warmup is not None: @@ -925,7 +925,7 @@ def weighted_capacity(self) -> Optional[str]: @pulumi.output_type class GameServerGroupLaunchTemplate(dict): """ - The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. + The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. """ @staticmethod def __key_warning(key: str): @@ -951,7 +951,7 @@ def __init__(__self__, *, launch_template_name: Optional[str] = None, version: Optional[str] = None): """ - The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. + The EC2 launch template that contains configuration settings and game server code to be deployed to all instances in the game server group. Updating this game server group property will not take effect for the created EC2 Auto Scaling group, please update the EC2 Auto Scaling group directly after creating the resource. """ if launch_template_id is not None: pulumi.set(__self__, "launch_template_id", launch_template_id) diff --git a/sdk/python/pulumi_aws_native/iam/get_managed_policy.py b/sdk/python/pulumi_aws_native/iam/get_managed_policy.py index 8cf6651695..d989c359ad 100644 --- a/sdk/python/pulumi_aws_native/iam/get_managed_policy.py +++ b/sdk/python/pulumi_aws_native/iam/get_managed_policy.py @@ -59,25 +59,16 @@ def __init__(__self__, attachment_count=None, create_date=None, default_version_ @property @pulumi.getter(name="attachmentCount") def attachment_count(self) -> Optional[int]: - """ - The number of entities (users, groups, and roles) that the policy is attached to. - """ return pulumi.get(self, "attachment_count") @property @pulumi.getter(name="createDate") def create_date(self) -> Optional[str]: - """ - The date and time, in ISO 8601 date-time format, when the policy was created. - """ return pulumi.get(self, "create_date") @property @pulumi.getter(name="defaultVersionId") def default_version_id(self) -> Optional[str]: - """ - The identifier for the version of the policy that is set as the default version. - """ return pulumi.get(self, "default_version_id") @property @@ -85,31 +76,23 @@ def default_version_id(self) -> Optional[str]: def groups(self) -> Optional[Sequence[str]]: """ The name (friendly name, not ARN) of the group to attach the policy to. + This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- """ return pulumi.get(self, "groups") @property @pulumi.getter(name="isAttachable") def is_attachable(self) -> Optional[bool]: - """ - Specifies whether the policy can be attached to an IAM user, group, or role. - """ return pulumi.get(self, "is_attachable") @property @pulumi.getter(name="permissionsBoundaryUsageCount") def permissions_boundary_usage_count(self) -> Optional[int]: - """ - The number of entities (users and roles) for which the policy is used to set the permissions boundary. - """ return pulumi.get(self, "permissions_boundary_usage_count") @property @pulumi.getter(name="policyArn") def policy_arn(self) -> Optional[str]: - """ - Amazon Resource Name (ARN) of the managed policy - """ return pulumi.get(self, "policy_arn") @property @@ -117,6 +100,13 @@ def policy_arn(self) -> Optional[str]: def policy_document(self) -> Optional[Any]: """ The JSON policy document that you want to use as the content for the new policy. + You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM. + The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. + The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: + + Any printable ASCII character ranging from the space character (``\\u0020``) through the end of the ASCII character range + + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\\u00FF``) + + The special characters tab (``\\u0009``), line feed (``\\u000A``), and carriage return (``\\u000D``) Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property. """ @@ -125,9 +115,6 @@ def policy_document(self) -> Optional[Any]: @property @pulumi.getter(name="policyId") def policy_id(self) -> Optional[str]: - """ - The stable and unique string identifying the policy. - """ return pulumi.get(self, "policy_id") @property @@ -135,15 +122,14 @@ def policy_id(self) -> Optional[str]: def roles(self) -> Optional[Sequence[str]]: """ The name (friendly name, not ARN) of the role to attach the policy to. + This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy. """ return pulumi.get(self, "roles") @property @pulumi.getter(name="updateDate") def update_date(self) -> Optional[str]: - """ - The date and time, in ISO 8601 date-time format, when the policy was last updated. - """ return pulumi.get(self, "update_date") @property @@ -151,6 +137,7 @@ def update_date(self) -> Optional[str]: def users(self) -> Optional[Sequence[str]]: """ The name (friendly name, not ARN) of the IAM user to attach the policy to. + This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- """ return pulumi.get(self, "users") @@ -178,10 +165,10 @@ def __await__(self): def get_managed_policy(policy_arn: Optional[str] = None, opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetManagedPolicyResult: """ - Resource Type definition for AWS::IAM::ManagedPolicy - - - :param str policy_arn: Amazon Resource Name (ARN) of the managed policy + Creates a new managed policy for your AWS-account. + This operation creates a policy version with a version identifier of ``v1`` and sets v1 as the policy's default version. For more information about policy versions, see [Versioning for managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) in the *IAM User Guide*. + As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) in the *IAM User Guide*. + For more information about managed policies in general, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*. """ __args__ = dict() __args__['policyArn'] = policy_arn @@ -207,9 +194,9 @@ def get_managed_policy(policy_arn: Optional[str] = None, def get_managed_policy_output(policy_arn: Optional[pulumi.Input[str]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetManagedPolicyResult]: """ - Resource Type definition for AWS::IAM::ManagedPolicy - - - :param str policy_arn: Amazon Resource Name (ARN) of the managed policy + Creates a new managed policy for your AWS-account. + This operation creates a policy version with a version identifier of ``v1`` and sets v1 as the policy's default version. For more information about policy versions, see [Versioning for managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) in the *IAM User Guide*. + As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) in the *IAM User Guide*. + For more information about managed policies in general, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*. """ ... diff --git a/sdk/python/pulumi_aws_native/iam/managed_policy.py b/sdk/python/pulumi_aws_native/iam/managed_policy.py index 79628854b9..fbac226a93 100644 --- a/sdk/python/pulumi_aws_native/iam/managed_policy.py +++ b/sdk/python/pulumi_aws_native/iam/managed_policy.py @@ -24,14 +24,34 @@ def __init__(__self__, *, """ The set of arguments for constructing a ManagedPolicy resource. :param Any policy_document: The JSON policy document that you want to use as the content for the new policy. + You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM. + The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. + The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: + + Any printable ASCII character ranging from the space character (``\\u0020``) through the end of the ASCII character range + + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\\u00FF``) + + The special characters tab (``\\u0009``), line feed (``\\u000A``), and carriage return (``\\u000D``) Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property. :param pulumi.Input[str] description: A friendly description of the policy. + Typically used to store information about the permissions defined in the policy. For example, "Grants access to production DynamoDB tables." + The policy description is immutable. After a value is assigned, it cannot be changed. :param pulumi.Input[Sequence[pulumi.Input[str]]] groups: The name (friendly name, not ARN) of the group to attach the policy to. + This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- :param pulumi.Input[str] managed_policy_name: The friendly name of the policy. + If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. + If you specify a name, you must specify the ``CAPABILITY_NAMED_IAM`` value to acknowledge your template's capabilities. For more information, see [Acknowledging Resources in Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities). + Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using ``Fn::Join`` and ``AWS::Region`` to create a Region-specific name, as in the following example: ``{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}``. :param pulumi.Input[str] path: The path for the policy. + For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*. + This parameter is optional. If it is not included, it defaults to a slash (/). + This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (``\\u0021``) through the DEL character (``\\u007F``), including most punctuation characters, digits, and upper and lowercased letters. + You cannot use an asterisk (*) in the path name. :param pulumi.Input[Sequence[pulumi.Input[str]]] roles: The name (friendly name, not ARN) of the role to attach the policy to. + This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy. :param pulumi.Input[Sequence[pulumi.Input[str]]] users: The name (friendly name, not ARN) of the IAM user to attach the policy to. + This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- """ pulumi.set(__self__, "policy_document", policy_document) if description is not None: @@ -52,6 +72,13 @@ def __init__(__self__, *, def policy_document(self) -> Any: """ The JSON policy document that you want to use as the content for the new policy. + You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM. + The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. + The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: + + Any printable ASCII character ranging from the space character (``\\u0020``) through the end of the ASCII character range + + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\\u00FF``) + + The special characters tab (``\\u0009``), line feed (``\\u000A``), and carriage return (``\\u000D``) Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property. """ @@ -66,6 +93,8 @@ def policy_document(self, value: Any): def description(self) -> Optional[pulumi.Input[str]]: """ A friendly description of the policy. + Typically used to store information about the permissions defined in the policy. For example, "Grants access to production DynamoDB tables." + The policy description is immutable. After a value is assigned, it cannot be changed. """ return pulumi.get(self, "description") @@ -78,6 +107,7 @@ def description(self, value: Optional[pulumi.Input[str]]): def groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ The name (friendly name, not ARN) of the group to attach the policy to. + This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- """ return pulumi.get(self, "groups") @@ -90,6 +120,9 @@ def groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): def managed_policy_name(self) -> Optional[pulumi.Input[str]]: """ The friendly name of the policy. + If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. + If you specify a name, you must specify the ``CAPABILITY_NAMED_IAM`` value to acknowledge your template's capabilities. For more information, see [Acknowledging Resources in Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities). + Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using ``Fn::Join`` and ``AWS::Region`` to create a Region-specific name, as in the following example: ``{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}``. """ return pulumi.get(self, "managed_policy_name") @@ -102,6 +135,10 @@ def managed_policy_name(self, value: Optional[pulumi.Input[str]]): def path(self) -> Optional[pulumi.Input[str]]: """ The path for the policy. + For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*. + This parameter is optional. If it is not included, it defaults to a slash (/). + This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (``\\u0021``) through the DEL character (``\\u007F``), including most punctuation characters, digits, and upper and lowercased letters. + You cannot use an asterisk (*) in the path name. """ return pulumi.get(self, "path") @@ -114,6 +151,8 @@ def path(self, value: Optional[pulumi.Input[str]]): def roles(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ The name (friendly name, not ARN) of the role to attach the policy to. + This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy. """ return pulumi.get(self, "roles") @@ -126,6 +165,7 @@ def roles(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): def users(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ The name (friendly name, not ARN) of the IAM user to attach the policy to. + This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- """ return pulumi.get(self, "users") @@ -148,19 +188,42 @@ def __init__(__self__, users: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, __props__=None): """ - Resource Type definition for AWS::IAM::ManagedPolicy + Creates a new managed policy for your AWS-account. + This operation creates a policy version with a version identifier of ``v1`` and sets v1 as the policy's default version. For more information about policy versions, see [Versioning for managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) in the *IAM User Guide*. + As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) in the *IAM User Guide*. + For more information about managed policies in general, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*. :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] description: A friendly description of the policy. + Typically used to store information about the permissions defined in the policy. For example, "Grants access to production DynamoDB tables." + The policy description is immutable. After a value is assigned, it cannot be changed. :param pulumi.Input[Sequence[pulumi.Input[str]]] groups: The name (friendly name, not ARN) of the group to attach the policy to. + This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- :param pulumi.Input[str] managed_policy_name: The friendly name of the policy. + If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. + If you specify a name, you must specify the ``CAPABILITY_NAMED_IAM`` value to acknowledge your template's capabilities. For more information, see [Acknowledging Resources in Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities). + Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using ``Fn::Join`` and ``AWS::Region`` to create a Region-specific name, as in the following example: ``{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}``. :param pulumi.Input[str] path: The path for the policy. + For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*. + This parameter is optional. If it is not included, it defaults to a slash (/). + This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (``\\u0021``) through the DEL character (``\\u007F``), including most punctuation characters, digits, and upper and lowercased letters. + You cannot use an asterisk (*) in the path name. :param Any policy_document: The JSON policy document that you want to use as the content for the new policy. + You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM. + The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. + The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: + + Any printable ASCII character ranging from the space character (``\\u0020``) through the end of the ASCII character range + + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\\u00FF``) + + The special characters tab (``\\u0009``), line feed (``\\u000A``), and carriage return (``\\u000D``) Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property. :param pulumi.Input[Sequence[pulumi.Input[str]]] roles: The name (friendly name, not ARN) of the role to attach the policy to. + This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy. :param pulumi.Input[Sequence[pulumi.Input[str]]] users: The name (friendly name, not ARN) of the IAM user to attach the policy to. + This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- """ ... @overload @@ -169,7 +232,10 @@ def __init__(__self__, args: ManagedPolicyArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - Resource Type definition for AWS::IAM::ManagedPolicy + Creates a new managed policy for your AWS-account. + This operation creates a policy version with a version identifier of ``v1`` and sets v1 as the policy's default version. For more information about policy versions, see [Versioning for managed policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html) in the *IAM User Guide*. + As a best practice, you can validate your IAM policies. To learn more, see [Validating IAM policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) in the *IAM User Guide*. + For more information about managed policies in general, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*. :param str resource_name: The name of the resource. :param ManagedPolicyArgs args: The arguments to use to populate this resource's properties. @@ -263,25 +329,16 @@ def get(resource_name: str, @property @pulumi.getter(name="attachmentCount") def attachment_count(self) -> pulumi.Output[int]: - """ - The number of entities (users, groups, and roles) that the policy is attached to. - """ return pulumi.get(self, "attachment_count") @property @pulumi.getter(name="createDate") def create_date(self) -> pulumi.Output[str]: - """ - The date and time, in ISO 8601 date-time format, when the policy was created. - """ return pulumi.get(self, "create_date") @property @pulumi.getter(name="defaultVersionId") def default_version_id(self) -> pulumi.Output[str]: - """ - The identifier for the version of the policy that is set as the default version. - """ return pulumi.get(self, "default_version_id") @property @@ -289,6 +346,8 @@ def default_version_id(self) -> pulumi.Output[str]: def description(self) -> pulumi.Output[Optional[str]]: """ A friendly description of the policy. + Typically used to store information about the permissions defined in the policy. For example, "Grants access to production DynamoDB tables." + The policy description is immutable. After a value is assigned, it cannot be changed. """ return pulumi.get(self, "description") @@ -297,15 +356,13 @@ def description(self) -> pulumi.Output[Optional[str]]: def groups(self) -> pulumi.Output[Optional[Sequence[str]]]: """ The name (friendly name, not ARN) of the group to attach the policy to. + This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- """ return pulumi.get(self, "groups") @property @pulumi.getter(name="isAttachable") def is_attachable(self) -> pulumi.Output[bool]: - """ - Specifies whether the policy can be attached to an IAM user, group, or role. - """ return pulumi.get(self, "is_attachable") @property @@ -313,6 +370,9 @@ def is_attachable(self) -> pulumi.Output[bool]: def managed_policy_name(self) -> pulumi.Output[Optional[str]]: """ The friendly name of the policy. + If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. + If you specify a name, you must specify the ``CAPABILITY_NAMED_IAM`` value to acknowledge your template's capabilities. For more information, see [Acknowledging Resources in Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities). + Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using ``Fn::Join`` and ``AWS::Region`` to create a Region-specific name, as in the following example: ``{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}``. """ return pulumi.get(self, "managed_policy_name") @@ -321,23 +381,21 @@ def managed_policy_name(self) -> pulumi.Output[Optional[str]]: def path(self) -> pulumi.Output[Optional[str]]: """ The path for the policy. + For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*. + This parameter is optional. If it is not included, it defaults to a slash (/). + This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (``\\u0021``) through the DEL character (``\\u007F``), including most punctuation characters, digits, and upper and lowercased letters. + You cannot use an asterisk (*) in the path name. """ return pulumi.get(self, "path") @property @pulumi.getter(name="permissionsBoundaryUsageCount") def permissions_boundary_usage_count(self) -> pulumi.Output[int]: - """ - The number of entities (users and roles) for which the policy is used to set the permissions boundary. - """ return pulumi.get(self, "permissions_boundary_usage_count") @property @pulumi.getter(name="policyArn") def policy_arn(self) -> pulumi.Output[str]: - """ - Amazon Resource Name (ARN) of the managed policy - """ return pulumi.get(self, "policy_arn") @property @@ -345,6 +403,13 @@ def policy_arn(self) -> pulumi.Output[str]: def policy_document(self) -> pulumi.Output[Any]: """ The JSON policy document that you want to use as the content for the new policy. + You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM. + The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and character quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length). + To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) in the *IAM User Guide*. + The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: + + Any printable ASCII character ranging from the space character (``\\u0020``) through the end of the ASCII character range + + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\\u00FF``) + + The special characters tab (``\\u0009``), line feed (``\\u000A``), and carriage return (``\\u000D``) Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::IAM::ManagedPolicy` for more information about the expected schema for this property. """ @@ -353,9 +418,6 @@ def policy_document(self) -> pulumi.Output[Any]: @property @pulumi.getter(name="policyId") def policy_id(self) -> pulumi.Output[str]: - """ - The stable and unique string identifying the policy. - """ return pulumi.get(self, "policy_id") @property @@ -363,15 +425,14 @@ def policy_id(self) -> pulumi.Output[str]: def roles(self) -> pulumi.Output[Optional[Sequence[str]]]: """ The name (friendly name, not ARN) of the role to attach the policy to. + This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- + If an external policy (such as ``AWS::IAM::Policy`` or ``AWS::IAM::ManagedPolicy``) has a ``Ref`` to a role and if a resource (such as ``AWS::ECS::Service``) also has a ``Ref`` to the same role, add a ``DependsOn`` attribute to the resource to make the resource depend on the external policy. This dependency ensures that the role's policy is available throughout the resource's lifecycle. For example, when you delete a stack with an ``AWS::ECS::Service`` resource, the ``DependsOn`` attribute ensures that CFN deletes the ``AWS::ECS::Service`` resource before deleting its role's policy. """ return pulumi.get(self, "roles") @property @pulumi.getter(name="updateDate") def update_date(self) -> pulumi.Output[str]: - """ - The date and time, in ISO 8601 date-time format, when the policy was last updated. - """ return pulumi.get(self, "update_date") @property @@ -379,6 +440,7 @@ def update_date(self) -> pulumi.Output[str]: def users(self) -> pulumi.Output[Optional[Sequence[str]]]: """ The name (friendly name, not ARN) of the IAM user to attach the policy to. + This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- """ return pulumi.get(self, "users") diff --git a/sdk/python/pulumi_aws_native/iotsitewise/_inputs.py b/sdk/python/pulumi_aws_native/iotsitewise/_inputs.py index b3931d8d1c..68db0c2f3f 100644 --- a/sdk/python/pulumi_aws_native/iotsitewise/_inputs.py +++ b/sdk/python/pulumi_aws_native/iotsitewise/_inputs.py @@ -37,6 +37,7 @@ 'GatewayGreengrassV2Args', 'GatewayGreengrassArgs', 'GatewayPlatformArgs', + 'GatewaySiemensIeArgs', ] @pulumi.input_type @@ -1283,16 +1284,20 @@ def group_arn(self, value: pulumi.Input[str]): class GatewayPlatformArgs: def __init__(__self__, *, greengrass: Optional[pulumi.Input['GatewayGreengrassArgs']] = None, - greengrass_v2: Optional[pulumi.Input['GatewayGreengrassV2Args']] = None): + greengrass_v2: Optional[pulumi.Input['GatewayGreengrassV2Args']] = None, + siemens_ie: Optional[pulumi.Input['GatewaySiemensIeArgs']] = None): """ Contains a gateway's platform information. :param pulumi.Input['GatewayGreengrassArgs'] greengrass: A gateway that runs on AWS IoT Greengrass V1. :param pulumi.Input['GatewayGreengrassV2Args'] greengrass_v2: A gateway that runs on AWS IoT Greengrass V2. + :param pulumi.Input['GatewaySiemensIeArgs'] siemens_ie: A gateway that runs on Siemens Industrial Edge. """ if greengrass is not None: pulumi.set(__self__, "greengrass", greengrass) if greengrass_v2 is not None: pulumi.set(__self__, "greengrass_v2", greengrass_v2) + if siemens_ie is not None: + pulumi.set(__self__, "siemens_ie", siemens_ie) @property @pulumi.getter @@ -1318,4 +1323,39 @@ def greengrass_v2(self) -> Optional[pulumi.Input['GatewayGreengrassV2Args']]: def greengrass_v2(self, value: Optional[pulumi.Input['GatewayGreengrassV2Args']]): pulumi.set(self, "greengrass_v2", value) + @property + @pulumi.getter(name="siemensIe") + def siemens_ie(self) -> Optional[pulumi.Input['GatewaySiemensIeArgs']]: + """ + A gateway that runs on Siemens Industrial Edge. + """ + return pulumi.get(self, "siemens_ie") + + @siemens_ie.setter + def siemens_ie(self, value: Optional[pulumi.Input['GatewaySiemensIeArgs']]): + pulumi.set(self, "siemens_ie", value) + + +@pulumi.input_type +class GatewaySiemensIeArgs: + def __init__(__self__, *, + iot_core_thing_name: pulumi.Input[str]): + """ + Contains the IotCoreThingName of AWS IoT Thing that the gateway runs on. + :param pulumi.Input[str] iot_core_thing_name: The name of the IoT Core Thing. + """ + pulumi.set(__self__, "iot_core_thing_name", iot_core_thing_name) + + @property + @pulumi.getter(name="iotCoreThingName") + def iot_core_thing_name(self) -> pulumi.Input[str]: + """ + The name of the IoT Core Thing. + """ + return pulumi.get(self, "iot_core_thing_name") + + @iot_core_thing_name.setter + def iot_core_thing_name(self, value: pulumi.Input[str]): + pulumi.set(self, "iot_core_thing_name", value) + diff --git a/sdk/python/pulumi_aws_native/iotsitewise/outputs.py b/sdk/python/pulumi_aws_native/iotsitewise/outputs.py index 05325181d1..27320d914b 100644 --- a/sdk/python/pulumi_aws_native/iotsitewise/outputs.py +++ b/sdk/python/pulumi_aws_native/iotsitewise/outputs.py @@ -38,6 +38,7 @@ 'GatewayGreengrass', 'GatewayGreengrassV2', 'GatewayPlatform', + 'GatewaySiemensIe', ] @pulumi.output_type @@ -1329,6 +1330,8 @@ def __key_warning(key: str): suggest = None if key == "greengrassV2": suggest = "greengrass_v2" + elif key == "siemensIe": + suggest = "siemens_ie" if suggest: pulumi.log.warn(f"Key '{key}' not found in GatewayPlatform. Access the value via the '{suggest}' property getter instead.") @@ -1343,16 +1346,20 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, greengrass: Optional['outputs.GatewayGreengrass'] = None, - greengrass_v2: Optional['outputs.GatewayGreengrassV2'] = None): + greengrass_v2: Optional['outputs.GatewayGreengrassV2'] = None, + siemens_ie: Optional['outputs.GatewaySiemensIe'] = None): """ Contains a gateway's platform information. :param 'GatewayGreengrass' greengrass: A gateway that runs on AWS IoT Greengrass V1. :param 'GatewayGreengrassV2' greengrass_v2: A gateway that runs on AWS IoT Greengrass V2. + :param 'GatewaySiemensIe' siemens_ie: A gateway that runs on Siemens Industrial Edge. """ if greengrass is not None: pulumi.set(__self__, "greengrass", greengrass) if greengrass_v2 is not None: pulumi.set(__self__, "greengrass_v2", greengrass_v2) + if siemens_ie is not None: + pulumi.set(__self__, "siemens_ie", siemens_ie) @property @pulumi.getter @@ -1370,4 +1377,51 @@ def greengrass_v2(self) -> Optional['outputs.GatewayGreengrassV2']: """ return pulumi.get(self, "greengrass_v2") + @property + @pulumi.getter(name="siemensIe") + def siemens_ie(self) -> Optional['outputs.GatewaySiemensIe']: + """ + A gateway that runs on Siemens Industrial Edge. + """ + return pulumi.get(self, "siemens_ie") + + +@pulumi.output_type +class GatewaySiemensIe(dict): + """ + Contains the IotCoreThingName of AWS IoT Thing that the gateway runs on. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "iotCoreThingName": + suggest = "iot_core_thing_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in GatewaySiemensIe. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + GatewaySiemensIe.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + GatewaySiemensIe.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + iot_core_thing_name: str): + """ + Contains the IotCoreThingName of AWS IoT Thing that the gateway runs on. + :param str iot_core_thing_name: The name of the IoT Core Thing. + """ + pulumi.set(__self__, "iot_core_thing_name", iot_core_thing_name) + + @property + @pulumi.getter(name="iotCoreThingName") + def iot_core_thing_name(self) -> str: + """ + The name of the IoT Core Thing. + """ + return pulumi.get(self, "iot_core_thing_name") + diff --git a/sdk/python/pulumi_aws_native/kafkaconnect/__init__.py b/sdk/python/pulumi_aws_native/kafkaconnect/__init__.py index 4d3c37e0b9..72e036a84b 100644 --- a/sdk/python/pulumi_aws_native/kafkaconnect/__init__.py +++ b/sdk/python/pulumi_aws_native/kafkaconnect/__init__.py @@ -7,6 +7,10 @@ # Export this package's modules as members: from ._enums import * from .connector import * +from .custom_plugin import * from .get_connector import * +from .get_custom_plugin import * +from .get_worker_configuration import * +from .worker_configuration import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_aws_native/kafkaconnect/_enums.py b/sdk/python/pulumi_aws_native/kafkaconnect/_enums.py index 96f9294a55..4f95457dba 100644 --- a/sdk/python/pulumi_aws_native/kafkaconnect/_enums.py +++ b/sdk/python/pulumi_aws_native/kafkaconnect/_enums.py @@ -7,6 +7,7 @@ __all__ = [ 'ConnectorKafkaClusterClientAuthenticationType', 'ConnectorKafkaClusterEncryptionInTransitType', + 'CustomPluginContentType', ] @@ -24,3 +25,11 @@ class ConnectorKafkaClusterEncryptionInTransitType(str, Enum): """ PLAINTEXT = "PLAINTEXT" TLS = "TLS" + + +class CustomPluginContentType(str, Enum): + """ + The type of the plugin file. + """ + JAR = "JAR" + ZIP = "ZIP" diff --git a/sdk/python/pulumi_aws_native/kafkaconnect/_inputs.py b/sdk/python/pulumi_aws_native/kafkaconnect/_inputs.py index 6201892721..6a38419e36 100644 --- a/sdk/python/pulumi_aws_native/kafkaconnect/_inputs.py +++ b/sdk/python/pulumi_aws_native/kafkaconnect/_inputs.py @@ -29,6 +29,8 @@ 'ConnectorVpcArgs', 'ConnectorWorkerConfigurationArgs', 'ConnectorWorkerLogDeliveryArgs', + 'CustomPluginLocationArgs', + 'CustomPluginS3LocationArgs', ] @pulumi.input_type @@ -643,3 +645,76 @@ def s3(self, value: Optional[pulumi.Input['ConnectorS3LogDeliveryArgs']]): pulumi.set(self, "s3", value) +@pulumi.input_type +class CustomPluginLocationArgs: + def __init__(__self__, *, + s3_location: pulumi.Input['CustomPluginS3LocationArgs']): + """ + Information about the location of a custom plugin. + """ + pulumi.set(__self__, "s3_location", s3_location) + + @property + @pulumi.getter(name="s3Location") + def s3_location(self) -> pulumi.Input['CustomPluginS3LocationArgs']: + return pulumi.get(self, "s3_location") + + @s3_location.setter + def s3_location(self, value: pulumi.Input['CustomPluginS3LocationArgs']): + pulumi.set(self, "s3_location", value) + + +@pulumi.input_type +class CustomPluginS3LocationArgs: + def __init__(__self__, *, + bucket_arn: pulumi.Input[str], + file_key: pulumi.Input[str], + object_version: Optional[pulumi.Input[str]] = None): + """ + The S3 bucket Amazon Resource Name (ARN), file key, and object version of the plugin file stored in Amazon S3. + :param pulumi.Input[str] bucket_arn: The Amazon Resource Name (ARN) of an S3 bucket. + :param pulumi.Input[str] file_key: The file key for an object in an S3 bucket. + :param pulumi.Input[str] object_version: The version of an object in an S3 bucket. + """ + pulumi.set(__self__, "bucket_arn", bucket_arn) + pulumi.set(__self__, "file_key", file_key) + if object_version is not None: + pulumi.set(__self__, "object_version", object_version) + + @property + @pulumi.getter(name="bucketArn") + def bucket_arn(self) -> pulumi.Input[str]: + """ + The Amazon Resource Name (ARN) of an S3 bucket. + """ + return pulumi.get(self, "bucket_arn") + + @bucket_arn.setter + def bucket_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "bucket_arn", value) + + @property + @pulumi.getter(name="fileKey") + def file_key(self) -> pulumi.Input[str]: + """ + The file key for an object in an S3 bucket. + """ + return pulumi.get(self, "file_key") + + @file_key.setter + def file_key(self, value: pulumi.Input[str]): + pulumi.set(self, "file_key", value) + + @property + @pulumi.getter(name="objectVersion") + def object_version(self) -> Optional[pulumi.Input[str]]: + """ + The version of an object in an S3 bucket. + """ + return pulumi.get(self, "object_version") + + @object_version.setter + def object_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "object_version", value) + + diff --git a/sdk/python/pulumi_aws_native/kafkaconnect/custom_plugin.py b/sdk/python/pulumi_aws_native/kafkaconnect/custom_plugin.py new file mode 100644 index 0000000000..1962fd13b0 --- /dev/null +++ b/sdk/python/pulumi_aws_native/kafkaconnect/custom_plugin.py @@ -0,0 +1,263 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +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__ = ['CustomPluginArgs', 'CustomPlugin'] + +@pulumi.input_type +class CustomPluginArgs: + def __init__(__self__, *, + content_type: pulumi.Input['CustomPluginContentType'], + location: pulumi.Input['CustomPluginLocationArgs'], + description: 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 CustomPlugin resource. + :param pulumi.Input['CustomPluginContentType'] content_type: The type of the plugin file. + :param pulumi.Input[str] description: A summary description of the custom plugin. + :param pulumi.Input[str] name: The name of the custom plugin. + :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: An array of key-value pairs to apply to this resource. + """ + pulumi.set(__self__, "content_type", content_type) + pulumi.set(__self__, "location", location) + if description is not None: + pulumi.set(__self__, "description", description) + if name is not None: + pulumi.set(__self__, "name", name) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="contentType") + def content_type(self) -> pulumi.Input['CustomPluginContentType']: + """ + The type of the plugin file. + """ + return pulumi.get(self, "content_type") + + @content_type.setter + def content_type(self, value: pulumi.Input['CustomPluginContentType']): + pulumi.set(self, "content_type", value) + + @property + @pulumi.getter + def location(self) -> pulumi.Input['CustomPluginLocationArgs']: + return pulumi.get(self, "location") + + @location.setter + def location(self, value: pulumi.Input['CustomPluginLocationArgs']): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + A summary description of the custom plugin. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the custom plugin. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]: + """ + An array of key-value pairs to apply to this resource. + """ + 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 CustomPlugin(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + content_type: Optional[pulumi.Input['CustomPluginContentType']] = None, + description: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[pulumi.InputType['CustomPluginLocationArgs']]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, + __props__=None): + """ + An example resource schema demonstrating some basic constructs and validation rules. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input['CustomPluginContentType'] content_type: The type of the plugin file. + :param pulumi.Input[str] description: A summary description of the custom plugin. + :param pulumi.Input[str] name: The name of the custom plugin. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]] tags: An array of key-value pairs to apply to this resource. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: CustomPluginArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + An example resource schema demonstrating some basic constructs and validation rules. + + :param str resource_name: The name of the resource. + :param CustomPluginArgs 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(CustomPluginArgs, 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, + content_type: Optional[pulumi.Input['CustomPluginContentType']] = None, + description: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[pulumi.InputType['CustomPluginLocationArgs']]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = 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__ = CustomPluginArgs.__new__(CustomPluginArgs) + + if content_type is None and not opts.urn: + raise TypeError("Missing required property 'content_type'") + __props__.__dict__["content_type"] = content_type + __props__.__dict__["description"] = description + if location is None and not opts.urn: + raise TypeError("Missing required property 'location'") + __props__.__dict__["location"] = location + __props__.__dict__["name"] = name + __props__.__dict__["tags"] = tags + __props__.__dict__["custom_plugin_arn"] = None + __props__.__dict__["file_description"] = None + __props__.__dict__["revision"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["contentType", "description", "location", "name"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(CustomPlugin, __self__).__init__( + 'aws-native:kafkaconnect:CustomPlugin', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'CustomPlugin': + """ + Get an existing CustomPlugin 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__ = CustomPluginArgs.__new__(CustomPluginArgs) + + __props__.__dict__["content_type"] = None + __props__.__dict__["custom_plugin_arn"] = None + __props__.__dict__["description"] = None + __props__.__dict__["file_description"] = None + __props__.__dict__["location"] = None + __props__.__dict__["name"] = None + __props__.__dict__["revision"] = None + __props__.__dict__["tags"] = None + return CustomPlugin(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="contentType") + def content_type(self) -> pulumi.Output['CustomPluginContentType']: + """ + The type of the plugin file. + """ + return pulumi.get(self, "content_type") + + @property + @pulumi.getter(name="customPluginArn") + def custom_plugin_arn(self) -> pulumi.Output[str]: + """ + The Amazon Resource Name (ARN) of the custom plugin to use. + """ + return pulumi.get(self, "custom_plugin_arn") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + """ + A summary description of the custom plugin. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="fileDescription") + def file_description(self) -> pulumi.Output['outputs.CustomPluginFileDescription']: + return pulumi.get(self, "file_description") + + @property + @pulumi.getter + def location(self) -> pulumi.Output['outputs.CustomPluginLocation']: + return pulumi.get(self, "location") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of the custom plugin. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def revision(self) -> pulumi.Output[int]: + """ + The revision of the custom plugin. + """ + return pulumi.get(self, "revision") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: + """ + An array of key-value pairs to apply to this resource. + """ + return pulumi.get(self, "tags") + diff --git a/sdk/python/pulumi_aws_native/kafkaconnect/get_custom_plugin.py b/sdk/python/pulumi_aws_native/kafkaconnect/get_custom_plugin.py new file mode 100644 index 0000000000..84bb202a36 --- /dev/null +++ b/sdk/python/pulumi_aws_native/kafkaconnect/get_custom_plugin.py @@ -0,0 +1,108 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from .. import outputs as _root_outputs + +__all__ = [ + 'GetCustomPluginResult', + 'AwaitableGetCustomPluginResult', + 'get_custom_plugin', + 'get_custom_plugin_output', +] + +@pulumi.output_type +class GetCustomPluginResult: + def __init__(__self__, custom_plugin_arn=None, file_description=None, revision=None, tags=None): + if custom_plugin_arn and not isinstance(custom_plugin_arn, str): + raise TypeError("Expected argument 'custom_plugin_arn' to be a str") + pulumi.set(__self__, "custom_plugin_arn", custom_plugin_arn) + if file_description and not isinstance(file_description, dict): + raise TypeError("Expected argument 'file_description' to be a dict") + pulumi.set(__self__, "file_description", file_description) + if revision and not isinstance(revision, int): + raise TypeError("Expected argument 'revision' to be a int") + pulumi.set(__self__, "revision", revision) + 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="customPluginArn") + def custom_plugin_arn(self) -> Optional[str]: + """ + The Amazon Resource Name (ARN) of the custom plugin to use. + """ + return pulumi.get(self, "custom_plugin_arn") + + @property + @pulumi.getter(name="fileDescription") + def file_description(self) -> Optional['outputs.CustomPluginFileDescription']: + return pulumi.get(self, "file_description") + + @property + @pulumi.getter + def revision(self) -> Optional[int]: + """ + The revision of the custom plugin. + """ + return pulumi.get(self, "revision") + + @property + @pulumi.getter + def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: + """ + An array of key-value pairs to apply to this resource. + """ + return pulumi.get(self, "tags") + + +class AwaitableGetCustomPluginResult(GetCustomPluginResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetCustomPluginResult( + custom_plugin_arn=self.custom_plugin_arn, + file_description=self.file_description, + revision=self.revision, + tags=self.tags) + + +def get_custom_plugin(custom_plugin_arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetCustomPluginResult: + """ + An example resource schema demonstrating some basic constructs and validation rules. + + + :param str custom_plugin_arn: The Amazon Resource Name (ARN) of the custom plugin to use. + """ + __args__ = dict() + __args__['customPluginArn'] = custom_plugin_arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:kafkaconnect:getCustomPlugin', __args__, opts=opts, typ=GetCustomPluginResult).value + + return AwaitableGetCustomPluginResult( + custom_plugin_arn=pulumi.get(__ret__, 'custom_plugin_arn'), + file_description=pulumi.get(__ret__, 'file_description'), + revision=pulumi.get(__ret__, 'revision'), + tags=pulumi.get(__ret__, 'tags')) + + +@_utilities.lift_output_func(get_custom_plugin) +def get_custom_plugin_output(custom_plugin_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetCustomPluginResult]: + """ + An example resource schema demonstrating some basic constructs and validation rules. + + + :param str custom_plugin_arn: The Amazon Resource Name (ARN) of the custom plugin to use. + """ + ... diff --git a/sdk/python/pulumi_aws_native/kafkaconnect/get_worker_configuration.py b/sdk/python/pulumi_aws_native/kafkaconnect/get_worker_configuration.py new file mode 100644 index 0000000000..b36ff98ec8 --- /dev/null +++ b/sdk/python/pulumi_aws_native/kafkaconnect/get_worker_configuration.py @@ -0,0 +1,97 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from .. import outputs as _root_outputs + +__all__ = [ + 'GetWorkerConfigurationResult', + 'AwaitableGetWorkerConfigurationResult', + 'get_worker_configuration', + 'get_worker_configuration_output', +] + +@pulumi.output_type +class GetWorkerConfigurationResult: + def __init__(__self__, revision=None, tags=None, worker_configuration_arn=None): + if revision and not isinstance(revision, int): + raise TypeError("Expected argument 'revision' to be a int") + pulumi.set(__self__, "revision", revision) + if tags and not isinstance(tags, list): + raise TypeError("Expected argument 'tags' to be a list") + pulumi.set(__self__, "tags", tags) + if worker_configuration_arn and not isinstance(worker_configuration_arn, str): + raise TypeError("Expected argument 'worker_configuration_arn' to be a str") + pulumi.set(__self__, "worker_configuration_arn", worker_configuration_arn) + + @property + @pulumi.getter + def revision(self) -> Optional[int]: + """ + The description of a revision of the worker configuration. + """ + return pulumi.get(self, "revision") + + @property + @pulumi.getter + def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: + """ + A collection of tags associated with a resource + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="workerConfigurationArn") + def worker_configuration_arn(self) -> Optional[str]: + """ + The Amazon Resource Name (ARN) of the custom configuration. + """ + return pulumi.get(self, "worker_configuration_arn") + + +class AwaitableGetWorkerConfigurationResult(GetWorkerConfigurationResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetWorkerConfigurationResult( + revision=self.revision, + tags=self.tags, + worker_configuration_arn=self.worker_configuration_arn) + + +def get_worker_configuration(worker_configuration_arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetWorkerConfigurationResult: + """ + The configuration of the workers, which are the processes that run the connector logic. + + + :param str worker_configuration_arn: The Amazon Resource Name (ARN) of the custom configuration. + """ + __args__ = dict() + __args__['workerConfigurationArn'] = worker_configuration_arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:kafkaconnect:getWorkerConfiguration', __args__, opts=opts, typ=GetWorkerConfigurationResult).value + + return AwaitableGetWorkerConfigurationResult( + revision=pulumi.get(__ret__, 'revision'), + tags=pulumi.get(__ret__, 'tags'), + worker_configuration_arn=pulumi.get(__ret__, 'worker_configuration_arn')) + + +@_utilities.lift_output_func(get_worker_configuration) +def get_worker_configuration_output(worker_configuration_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetWorkerConfigurationResult]: + """ + The configuration of the workers, which are the processes that run the connector logic. + + + :param str worker_configuration_arn: The Amazon Resource Name (ARN) of the custom configuration. + """ + ... diff --git a/sdk/python/pulumi_aws_native/kafkaconnect/outputs.py b/sdk/python/pulumi_aws_native/kafkaconnect/outputs.py index 9b3333d4c9..d3f37237d0 100644 --- a/sdk/python/pulumi_aws_native/kafkaconnect/outputs.py +++ b/sdk/python/pulumi_aws_native/kafkaconnect/outputs.py @@ -30,6 +30,9 @@ 'ConnectorVpc', 'ConnectorWorkerConfiguration', 'ConnectorWorkerLogDelivery', + 'CustomPluginFileDescription', + 'CustomPluginLocation', + 'CustomPluginS3Location', ] @pulumi.output_type @@ -863,3 +866,158 @@ def s3(self) -> Optional['outputs.ConnectorS3LogDelivery']: return pulumi.get(self, "s3") +@pulumi.output_type +class CustomPluginFileDescription(dict): + """ + Details about the custom plugin file. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "fileMd5": + suggest = "file_md5" + elif key == "fileSize": + suggest = "file_size" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CustomPluginFileDescription. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CustomPluginFileDescription.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CustomPluginFileDescription.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + file_md5: Optional[str] = None, + file_size: Optional[int] = None): + """ + Details about the custom plugin file. + :param str file_md5: The hex-encoded MD5 checksum of the custom plugin file. You can use it to validate the file. + :param int file_size: The size in bytes of the custom plugin file. You can use it to validate the file. + """ + if file_md5 is not None: + pulumi.set(__self__, "file_md5", file_md5) + if file_size is not None: + pulumi.set(__self__, "file_size", file_size) + + @property + @pulumi.getter(name="fileMd5") + def file_md5(self) -> Optional[str]: + """ + The hex-encoded MD5 checksum of the custom plugin file. You can use it to validate the file. + """ + return pulumi.get(self, "file_md5") + + @property + @pulumi.getter(name="fileSize") + def file_size(self) -> Optional[int]: + """ + The size in bytes of the custom plugin file. You can use it to validate the file. + """ + return pulumi.get(self, "file_size") + + +@pulumi.output_type +class CustomPluginLocation(dict): + """ + Information about the location of a custom plugin. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "s3Location": + suggest = "s3_location" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CustomPluginLocation. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CustomPluginLocation.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CustomPluginLocation.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + s3_location: 'outputs.CustomPluginS3Location'): + """ + Information about the location of a custom plugin. + """ + pulumi.set(__self__, "s3_location", s3_location) + + @property + @pulumi.getter(name="s3Location") + def s3_location(self) -> 'outputs.CustomPluginS3Location': + return pulumi.get(self, "s3_location") + + +@pulumi.output_type +class CustomPluginS3Location(dict): + """ + The S3 bucket Amazon Resource Name (ARN), file key, and object version of the plugin file stored in Amazon S3. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "bucketArn": + suggest = "bucket_arn" + elif key == "fileKey": + suggest = "file_key" + elif key == "objectVersion": + suggest = "object_version" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CustomPluginS3Location. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CustomPluginS3Location.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CustomPluginS3Location.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + bucket_arn: str, + file_key: str, + object_version: Optional[str] = None): + """ + The S3 bucket Amazon Resource Name (ARN), file key, and object version of the plugin file stored in Amazon S3. + :param str bucket_arn: The Amazon Resource Name (ARN) of an S3 bucket. + :param str file_key: The file key for an object in an S3 bucket. + :param str object_version: The version of an object in an S3 bucket. + """ + pulumi.set(__self__, "bucket_arn", bucket_arn) + pulumi.set(__self__, "file_key", file_key) + if object_version is not None: + pulumi.set(__self__, "object_version", object_version) + + @property + @pulumi.getter(name="bucketArn") + def bucket_arn(self) -> str: + """ + The Amazon Resource Name (ARN) of an S3 bucket. + """ + return pulumi.get(self, "bucket_arn") + + @property + @pulumi.getter(name="fileKey") + def file_key(self) -> str: + """ + The file key for an object in an S3 bucket. + """ + return pulumi.get(self, "file_key") + + @property + @pulumi.getter(name="objectVersion") + def object_version(self) -> Optional[str]: + """ + The version of an object in an S3 bucket. + """ + return pulumi.get(self, "object_version") + + diff --git a/sdk/python/pulumi_aws_native/kafkaconnect/worker_configuration.py b/sdk/python/pulumi_aws_native/kafkaconnect/worker_configuration.py new file mode 100644 index 0000000000..119b8d5464 --- /dev/null +++ b/sdk/python/pulumi_aws_native/kafkaconnect/worker_configuration.py @@ -0,0 +1,231 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from .. import _inputs as _root_inputs +from .. import outputs as _root_outputs + +__all__ = ['WorkerConfigurationArgs', 'WorkerConfiguration'] + +@pulumi.input_type +class WorkerConfigurationArgs: + def __init__(__self__, *, + properties_file_content: pulumi.Input[str], + description: 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 WorkerConfiguration resource. + :param pulumi.Input[str] properties_file_content: Base64 encoded contents of connect-distributed.properties file. + :param pulumi.Input[str] description: A summary description of the worker configuration. + :param pulumi.Input[str] name: The name of the worker configuration. + :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: A collection of tags associated with a resource + """ + pulumi.set(__self__, "properties_file_content", properties_file_content) + if description is not None: + pulumi.set(__self__, "description", description) + if name is not None: + pulumi.set(__self__, "name", name) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="propertiesFileContent") + def properties_file_content(self) -> pulumi.Input[str]: + """ + Base64 encoded contents of connect-distributed.properties file. + """ + return pulumi.get(self, "properties_file_content") + + @properties_file_content.setter + def properties_file_content(self, value: pulumi.Input[str]): + pulumi.set(self, "properties_file_content", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + A summary description of the worker configuration. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the worker configuration. + """ + 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']]]]: + """ + A collection of tags associated with a resource + """ + 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 WorkerConfiguration(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + properties_file_content: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, + __props__=None): + """ + The configuration of the workers, which are the processes that run the connector logic. + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] description: A summary description of the worker configuration. + :param pulumi.Input[str] name: The name of the worker configuration. + :param pulumi.Input[str] properties_file_content: Base64 encoded contents of connect-distributed.properties file. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]] tags: A collection of tags associated with a resource + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: WorkerConfigurationArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + The configuration of the workers, which are the processes that run the connector logic. + + :param str resource_name: The name of the resource. + :param WorkerConfigurationArgs 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(WorkerConfigurationArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + properties_file_content: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = 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__ = WorkerConfigurationArgs.__new__(WorkerConfigurationArgs) + + __props__.__dict__["description"] = description + __props__.__dict__["name"] = name + if properties_file_content is None and not opts.urn: + raise TypeError("Missing required property 'properties_file_content'") + __props__.__dict__["properties_file_content"] = properties_file_content + __props__.__dict__["tags"] = tags + __props__.__dict__["revision"] = None + __props__.__dict__["worker_configuration_arn"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["description", "name", "propertiesFileContent"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(WorkerConfiguration, __self__).__init__( + 'aws-native:kafkaconnect:WorkerConfiguration', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'WorkerConfiguration': + """ + Get an existing WorkerConfiguration 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__ = WorkerConfigurationArgs.__new__(WorkerConfigurationArgs) + + __props__.__dict__["description"] = None + __props__.__dict__["name"] = None + __props__.__dict__["properties_file_content"] = None + __props__.__dict__["revision"] = None + __props__.__dict__["tags"] = None + __props__.__dict__["worker_configuration_arn"] = None + return WorkerConfiguration(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + """ + A summary description of the worker configuration. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of the worker configuration. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="propertiesFileContent") + def properties_file_content(self) -> pulumi.Output[str]: + """ + Base64 encoded contents of connect-distributed.properties file. + """ + return pulumi.get(self, "properties_file_content") + + @property + @pulumi.getter + def revision(self) -> pulumi.Output[int]: + """ + The description of a revision of the worker configuration. + """ + return pulumi.get(self, "revision") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: + """ + A collection of tags associated with a resource + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="workerConfigurationArn") + def worker_configuration_arn(self) -> pulumi.Output[str]: + """ + The Amazon Resource Name (ARN) of the custom configuration. + """ + return pulumi.get(self, "worker_configuration_arn") + diff --git a/sdk/python/pulumi_aws_native/logs/_enums.py b/sdk/python/pulumi_aws_native/logs/_enums.py index 51d709f918..3bf5f7742d 100644 --- a/sdk/python/pulumi_aws_native/logs/_enums.py +++ b/sdk/python/pulumi_aws_native/logs/_enums.py @@ -42,7 +42,11 @@ class LogAnomalyDetectorEvaluationFrequency(str, Enum): class LogGroupClass(str, Enum): """ - The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class + Specifies the log group class for this log group. There are two classes: + + The ``Standard`` log class supports all CWL features. + + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs. + + For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) """ STANDARD = "STANDARD" INFREQUENT_ACCESS = "INFREQUENT_ACCESS" @@ -50,7 +54,7 @@ class LogGroupClass(str, Enum): class MetricFilterMetricTransformationUnit(str, Enum): """ - The unit to assign to the metric. If you omit this, the unit is set as None. + The unit to assign to the metric. If you omit this, the unit is set as ``None``. """ SECONDS = "Seconds" MICROSECONDS = "Microseconds" @@ -83,7 +87,7 @@ class MetricFilterMetricTransformationUnit(str, Enum): class SubscriptionFilterDistribution(str, Enum): """ - The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. + The method used to distribute log data to the destination, which can be either random or grouped by log stream. """ RANDOM = "Random" BY_LOG_STREAM = "ByLogStream" diff --git a/sdk/python/pulumi_aws_native/logs/_inputs.py b/sdk/python/pulumi_aws_native/logs/_inputs.py index 8de74d8eed..ae36da90fe 100644 --- a/sdk/python/pulumi_aws_native/logs/_inputs.py +++ b/sdk/python/pulumi_aws_native/logs/_inputs.py @@ -59,9 +59,15 @@ def __init__(__self__, *, key: pulumi.Input[str], value: pulumi.Input[str]): """ - the key-value pairs that further define a metric. - :param pulumi.Input[str] key: The key of the dimension. Maximum length of 255. - :param pulumi.Input[str] value: The value of the dimension. Maximum length of 255. + Specifies the CW metric dimensions to publish with this metric. + Because dimensions are part of the unique identifier for a metric, whenever a unique dimension name/value pair is extracted from your logs, you are creating a new variation of that metric. + For more information about publishing dimensions with metrics created by metric filters, see [Publishing dimensions with metrics from values in JSON or space-delimited log events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html#logs-metric-filters-dimensions). + Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. + To help prevent accidental high charges, Amazon disables a metric filter if it generates 1000 different name/value pairs for the dimensions that you have specified within a certain amount of time. + You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). + :param pulumi.Input[str] key: The name for the CW metric dimension that the metric filter creates. + Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon (:). + :param pulumi.Input[str] value: The log event field that will contain the value for this dimension. This dimension will only be published for a metric if the value is found in the log event. For example, ``$.eventType`` for JSON log events, or ``$server`` for space-delimited log events. """ pulumi.set(__self__, "key", key) pulumi.set(__self__, "value", value) @@ -70,7 +76,8 @@ def __init__(__self__, *, @pulumi.getter def key(self) -> pulumi.Input[str]: """ - The key of the dimension. Maximum length of 255. + The name for the CW metric dimension that the metric filter creates. + Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon (:). """ return pulumi.get(self, "key") @@ -82,7 +89,7 @@ def key(self, value: pulumi.Input[str]): @pulumi.getter def value(self) -> pulumi.Input[str]: """ - The value of the dimension. Maximum length of 255. + The log event field that will contain the value for this dimension. This dimension will only be published for a metric if the value is found in the log event. For example, ``$.eventType`` for JSON log events, or ``$server`` for space-delimited log events. """ return pulumi.get(self, "value") @@ -101,12 +108,16 @@ def __init__(__self__, *, dimensions: Optional[pulumi.Input[Sequence[pulumi.Input['MetricFilterDimensionArgs']]]] = None, unit: Optional[pulumi.Input['MetricFilterMetricTransformationUnit']] = None): """ - :param pulumi.Input[str] metric_name: The name of the CloudWatch metric. Metric name must be in ASCII format. - :param pulumi.Input[str] metric_namespace: The namespace of the CloudWatch metric. - :param pulumi.Input[str] metric_value: The value to publish to the CloudWatch metric when a filter pattern matches a log event. - :param pulumi.Input[float] default_value: The value to emit when a filter pattern does not match a log event. This value can be null. - :param pulumi.Input[Sequence[pulumi.Input['MetricFilterDimensionArgs']]] dimensions: Dimensions are the key-value pairs that further define a metric - :param pulumi.Input['MetricFilterMetricTransformationUnit'] unit: The unit to assign to the metric. If you omit this, the unit is set as None. + ``MetricTransformation`` is a property of the ``AWS::Logs::MetricFilter`` resource that describes how to transform log streams into a CloudWatch metric. + :param pulumi.Input[str] metric_name: The name of the CloudWatch metric. + :param pulumi.Input[str] metric_namespace: A custom namespace to contain your metric in CloudWatch. Use namespaces to group together metrics that are similar. For more information, see [Namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace). + :param pulumi.Input[str] metric_value: The value that is published to the CloudWatch metric. For example, if you're counting the occurrences of a particular term like ``Error``, specify 1 for the metric value. If you're counting the number of bytes transferred, reference the value that is in the log event by using $. followed by the name of the field that you specified in the filter pattern, such as ``$.size``. + :param pulumi.Input[float] default_value: (Optional) The value to emit when a filter pattern does not match a log event. This value can be null. + :param pulumi.Input[Sequence[pulumi.Input['MetricFilterDimensionArgs']]] dimensions: The fields to use as dimensions for the metric. One metric filter can include as many as three dimensions. + Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. + CloudWatch Logs disables a metric filter if it generates 1000 different name/value pairs for your specified dimensions within a certain amount of time. This helps to prevent accidental high charges. + You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). + :param pulumi.Input['MetricFilterMetricTransformationUnit'] unit: The unit to assign to the metric. If you omit this, the unit is set as ``None``. """ pulumi.set(__self__, "metric_name", metric_name) pulumi.set(__self__, "metric_namespace", metric_namespace) @@ -122,7 +133,7 @@ def __init__(__self__, *, @pulumi.getter(name="metricName") def metric_name(self) -> pulumi.Input[str]: """ - The name of the CloudWatch metric. Metric name must be in ASCII format. + The name of the CloudWatch metric. """ return pulumi.get(self, "metric_name") @@ -134,7 +145,7 @@ def metric_name(self, value: pulumi.Input[str]): @pulumi.getter(name="metricNamespace") def metric_namespace(self) -> pulumi.Input[str]: """ - The namespace of the CloudWatch metric. + A custom namespace to contain your metric in CloudWatch. Use namespaces to group together metrics that are similar. For more information, see [Namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace). """ return pulumi.get(self, "metric_namespace") @@ -146,7 +157,7 @@ def metric_namespace(self, value: pulumi.Input[str]): @pulumi.getter(name="metricValue") def metric_value(self) -> pulumi.Input[str]: """ - The value to publish to the CloudWatch metric when a filter pattern matches a log event. + The value that is published to the CloudWatch metric. For example, if you're counting the occurrences of a particular term like ``Error``, specify 1 for the metric value. If you're counting the number of bytes transferred, reference the value that is in the log event by using $. followed by the name of the field that you specified in the filter pattern, such as ``$.size``. """ return pulumi.get(self, "metric_value") @@ -158,7 +169,7 @@ def metric_value(self, value: pulumi.Input[str]): @pulumi.getter(name="defaultValue") def default_value(self) -> Optional[pulumi.Input[float]]: """ - The value to emit when a filter pattern does not match a log event. This value can be null. + (Optional) The value to emit when a filter pattern does not match a log event. This value can be null. """ return pulumi.get(self, "default_value") @@ -170,7 +181,10 @@ def default_value(self, value: Optional[pulumi.Input[float]]): @pulumi.getter def dimensions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['MetricFilterDimensionArgs']]]]: """ - Dimensions are the key-value pairs that further define a metric + The fields to use as dimensions for the metric. One metric filter can include as many as three dimensions. + Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. + CloudWatch Logs disables a metric filter if it generates 1000 different name/value pairs for your specified dimensions within a certain amount of time. This helps to prevent accidental high charges. + You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). """ return pulumi.get(self, "dimensions") @@ -182,7 +196,7 @@ def dimensions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['MetricF @pulumi.getter def unit(self) -> Optional[pulumi.Input['MetricFilterMetricTransformationUnit']]: """ - The unit to assign to the metric. If you omit this, the unit is set as None. + The unit to assign to the metric. If you omit this, the unit is set as ``None``. """ return pulumi.get(self, "unit") diff --git a/sdk/python/pulumi_aws_native/logs/get_log_group.py b/sdk/python/pulumi_aws_native/logs/get_log_group.py index 55b1b20f1b..27feb843e3 100644 --- a/sdk/python/pulumi_aws_native/logs/get_log_group.py +++ b/sdk/python/pulumi_aws_native/logs/get_log_group.py @@ -43,22 +43,14 @@ def __init__(__self__, arn=None, data_protection_policy=None, kms_key_id=None, l @property @pulumi.getter def arn(self) -> Optional[str]: - """ - The CloudWatch log group ARN. - """ return pulumi.get(self, "arn") @property @pulumi.getter(name="dataProtectionPolicy") def data_protection_policy(self) -> Optional[Any]: """ - The body of the policy document you want to use for this topic. - - You can only add one policy per topic. - - The policy must be in JSON string format. - - Length Constraints: Maximum length of 30720 + Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks. + For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html). Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property. """ @@ -68,7 +60,10 @@ def data_protection_policy(self) -> Optional[Any]: @pulumi.getter(name="kmsKeyId") def kms_key_id(self) -> Optional[str]: """ - The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. + The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data. + To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested. + If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error. + Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) """ return pulumi.get(self, "kms_key_id") @@ -76,7 +71,11 @@ def kms_key_id(self) -> Optional[str]: @pulumi.getter(name="logGroupClass") def log_group_class(self) -> Optional['LogGroupClass']: """ - The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class + Specifies the log group class for this log group. There are two classes: + + The ``Standard`` log class supports all CWL features. + + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs. + + For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) """ return pulumi.get(self, "log_group_class") @@ -84,7 +83,8 @@ def log_group_class(self) -> Optional['LogGroupClass']: @pulumi.getter(name="retentionInDays") def retention_in_days(self) -> Optional[int]: """ - The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653. + The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653. + To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). """ return pulumi.get(self, "retention_in_days") @@ -92,7 +92,8 @@ def retention_in_days(self) -> Optional[int]: @pulumi.getter def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: """ - An array of key-value pairs to apply to this resource. + An array of key-value pairs to apply to the log group. + For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). """ return pulumi.get(self, "tags") @@ -114,10 +115,14 @@ def __await__(self): def get_log_group(log_group_name: Optional[str] = None, opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetLogGroupResult: """ - Resource schema for AWS::Logs::LogGroup + The ``AWS::Logs::LogGroup`` resource specifies a log group. A log group defines common properties for log streams, such as their retention and access control rules. Each log stream must belong to one log group. + You can create up to 1,000,000 log groups per Region per account. You must use the following guidelines when naming a log group: + + Log group names must be unique within a Region for an AWS account. + + Log group names can be between 1 and 512 characters long. + + Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period). - :param str log_group_name: The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group. + :param str log_group_name: The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group. """ __args__ = dict() __args__['logGroupName'] = log_group_name @@ -137,9 +142,13 @@ def get_log_group(log_group_name: Optional[str] = None, def get_log_group_output(log_group_name: Optional[pulumi.Input[str]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetLogGroupResult]: """ - Resource schema for AWS::Logs::LogGroup + The ``AWS::Logs::LogGroup`` resource specifies a log group. A log group defines common properties for log streams, such as their retention and access control rules. Each log stream must belong to one log group. + You can create up to 1,000,000 log groups per Region per account. You must use the following guidelines when naming a log group: + + Log group names must be unique within a Region for an AWS account. + + Log group names can be between 1 and 512 characters long. + + Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period). - :param str log_group_name: The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group. + :param str log_group_name: The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group. """ ... diff --git a/sdk/python/pulumi_aws_native/logs/get_metric_filter.py b/sdk/python/pulumi_aws_native/logs/get_metric_filter.py index 169f26a4bd..41ce3559d0 100644 --- a/sdk/python/pulumi_aws_native/logs/get_metric_filter.py +++ b/sdk/python/pulumi_aws_native/logs/get_metric_filter.py @@ -32,7 +32,7 @@ def __init__(__self__, filter_pattern=None, metric_transformations=None): @pulumi.getter(name="filterPattern") def filter_pattern(self) -> Optional[str]: """ - Pattern that Logs follows to interpret each entry in a log. + A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). """ return pulumi.get(self, "filter_pattern") @@ -40,7 +40,7 @@ def filter_pattern(self) -> Optional[str]: @pulumi.getter(name="metricTransformations") def metric_transformations(self) -> Optional[Sequence['outputs.MetricFilterMetricTransformation']]: """ - A collection of information that defines how metric data gets emitted. + The metric transformations. """ return pulumi.get(self, "metric_transformations") @@ -59,11 +59,12 @@ def get_metric_filter(filter_name: Optional[str] = None, log_group_name: Optional[str] = None, opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetMetricFilterResult: """ - Specifies a metric filter that describes how CloudWatch Logs extracts information from logs and transforms it into Amazon CloudWatch metrics. + The ``AWS::Logs::MetricFilter`` resource specifies a metric filter that describes how CWL extracts information from logs and transforms it into Amazon CloudWatch metrics. If you have multiple metric filters that are associated with a log group, all the filters are applied to the log streams in that group. + The maximum number of metric filters that can be associated with a log group is 100. - :param str filter_name: A name for the metric filter. - :param str log_group_name: Existing log group that you want to associate with this filter. + :param str filter_name: The name of the metric filter. + :param str log_group_name: The name of an existing log group that you want to associate with this metric filter. """ __args__ = dict() __args__['filterName'] = filter_name @@ -81,10 +82,11 @@ def get_metric_filter_output(filter_name: Optional[pulumi.Input[str]] = None, log_group_name: Optional[pulumi.Input[str]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetMetricFilterResult]: """ - Specifies a metric filter that describes how CloudWatch Logs extracts information from logs and transforms it into Amazon CloudWatch metrics. + The ``AWS::Logs::MetricFilter`` resource specifies a metric filter that describes how CWL extracts information from logs and transforms it into Amazon CloudWatch metrics. If you have multiple metric filters that are associated with a log group, all the filters are applied to the log streams in that group. + The maximum number of metric filters that can be associated with a log group is 100. - :param str filter_name: A name for the metric filter. - :param str log_group_name: Existing log group that you want to associate with this filter. + :param str filter_name: The name of the metric filter. + :param str log_group_name: The name of an existing log group that you want to associate with this metric filter. """ ... diff --git a/sdk/python/pulumi_aws_native/logs/get_subscription_filter.py b/sdk/python/pulumi_aws_native/logs/get_subscription_filter.py index 0e3721aac9..f292ee083f 100644 --- a/sdk/python/pulumi_aws_native/logs/get_subscription_filter.py +++ b/sdk/python/pulumi_aws_native/logs/get_subscription_filter.py @@ -45,7 +45,7 @@ def destination_arn(self) -> Optional[str]: @pulumi.getter def distribution(self) -> Optional['SubscriptionFilterDistribution']: """ - The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. + The method used to distribute log data to the destination, which can be either random or grouped by log stream. """ return pulumi.get(self, "distribution") @@ -53,7 +53,7 @@ def distribution(self) -> Optional['SubscriptionFilterDistribution']: @pulumi.getter(name="filterPattern") def filter_pattern(self) -> Optional[str]: """ - The filtering expressions that restrict what gets delivered to the destination AWS resource. + The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). """ return pulumi.get(self, "filter_pattern") @@ -61,7 +61,7 @@ def filter_pattern(self) -> Optional[str]: @pulumi.getter(name="roleArn") def role_arn(self) -> Optional[str]: """ - The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. + The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. """ return pulumi.get(self, "role_arn") @@ -82,11 +82,17 @@ def get_subscription_filter(filter_name: Optional[str] = None, log_group_name: Optional[str] = None, opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetSubscriptionFilterResult: """ - Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. + The ``AWS::Logs::SubscriptionFilter`` resource specifies a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. Currently, the supported destinations are: + + An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery. + + A logical destination that belongs to a different account, for cross-account delivery. + + An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery. + + An LAMlong function that belongs to the same account as the subscription filter, for same-account delivery. + There can be as many as two subscription filters associated with a log group. - :param str filter_name: The name of the filter generated by resource. - :param str log_group_name: Existing log group that you want to associate with this filter. + + :param str filter_name: The name of the subscription filter. + :param str log_group_name: The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events. """ __args__ = dict() __args__['filterName'] = filter_name @@ -106,10 +112,16 @@ def get_subscription_filter_output(filter_name: Optional[pulumi.Input[str]] = No log_group_name: Optional[pulumi.Input[str]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetSubscriptionFilterResult]: """ - Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. + The ``AWS::Logs::SubscriptionFilter`` resource specifies a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. Currently, the supported destinations are: + + An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery. + + A logical destination that belongs to a different account, for cross-account delivery. + + An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery. + + An LAMlong function that belongs to the same account as the subscription filter, for same-account delivery. + + There can be as many as two subscription filters associated with a log group. - :param str filter_name: The name of the filter generated by resource. - :param str log_group_name: Existing log group that you want to associate with this filter. + :param str filter_name: The name of the subscription filter. + :param str log_group_name: The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events. """ ... diff --git a/sdk/python/pulumi_aws_native/logs/log_group.py b/sdk/python/pulumi_aws_native/logs/log_group.py index 7f5f678e5a..e6e58f02dc 100644 --- a/sdk/python/pulumi_aws_native/logs/log_group.py +++ b/sdk/python/pulumi_aws_native/logs/log_group.py @@ -25,20 +25,24 @@ def __init__(__self__, *, tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None): """ The set of arguments for constructing a LogGroup resource. - :param Any data_protection_policy: The body of the policy document you want to use for this topic. - - You can only add one policy per topic. - - The policy must be in JSON string format. - - Length Constraints: Maximum length of 30720 + :param Any data_protection_policy: Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks. + For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html). Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property. - :param pulumi.Input[str] kms_key_id: The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. - :param pulumi.Input['LogGroupClass'] log_group_class: The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class - :param pulumi.Input[str] log_group_name: The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group. - :param pulumi.Input[int] retention_in_days: The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653. - :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: An array of key-value pairs to apply to this resource. + :param pulumi.Input[str] kms_key_id: The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data. + To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested. + If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error. + Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) + :param pulumi.Input['LogGroupClass'] log_group_class: Specifies the log group class for this log group. There are two classes: + + The ``Standard`` log class supports all CWL features. + + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs. + + For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) + :param pulumi.Input[str] log_group_name: The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group. + :param pulumi.Input[int] retention_in_days: The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653. + To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). + :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: An array of key-value pairs to apply to the log group. + For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). """ if data_protection_policy is not None: pulumi.set(__self__, "data_protection_policy", data_protection_policy) @@ -57,13 +61,8 @@ def __init__(__self__, *, @pulumi.getter(name="dataProtectionPolicy") def data_protection_policy(self) -> Optional[Any]: """ - The body of the policy document you want to use for this topic. - - You can only add one policy per topic. - - The policy must be in JSON string format. - - Length Constraints: Maximum length of 30720 + Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks. + For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html). Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property. """ @@ -77,7 +76,10 @@ def data_protection_policy(self, value: Optional[Any]): @pulumi.getter(name="kmsKeyId") def kms_key_id(self) -> Optional[pulumi.Input[str]]: """ - The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. + The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data. + To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested. + If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error. + Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) """ return pulumi.get(self, "kms_key_id") @@ -89,7 +91,11 @@ def kms_key_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="logGroupClass") def log_group_class(self) -> Optional[pulumi.Input['LogGroupClass']]: """ - The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class + Specifies the log group class for this log group. There are two classes: + + The ``Standard`` log class supports all CWL features. + + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs. + + For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) """ return pulumi.get(self, "log_group_class") @@ -101,7 +107,7 @@ def log_group_class(self, value: Optional[pulumi.Input['LogGroupClass']]): @pulumi.getter(name="logGroupName") def log_group_name(self) -> Optional[pulumi.Input[str]]: """ - The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group. + The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group. """ return pulumi.get(self, "log_group_name") @@ -113,7 +119,8 @@ def log_group_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="retentionInDays") def retention_in_days(self) -> Optional[pulumi.Input[int]]: """ - The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653. + The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653. + To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). """ return pulumi.get(self, "retention_in_days") @@ -125,7 +132,8 @@ def retention_in_days(self, value: Optional[pulumi.Input[int]]): @pulumi.getter def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]: """ - An array of key-value pairs to apply to this resource. + An array of key-value pairs to apply to the log group. + For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). """ return pulumi.get(self, "tags") @@ -147,24 +155,32 @@ def __init__(__self__, tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, __props__=None): """ - Resource schema for AWS::Logs::LogGroup + The ``AWS::Logs::LogGroup`` resource specifies a log group. A log group defines common properties for log streams, such as their retention and access control rules. Each log stream must belong to one log group. + You can create up to 1,000,000 log groups per Region per account. You must use the following guidelines when naming a log group: + + Log group names must be unique within a Region for an AWS account. + + Log group names can be between 1 and 512 characters long. + + Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period). :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param Any data_protection_policy: The body of the policy document you want to use for this topic. - - You can only add one policy per topic. - - The policy must be in JSON string format. - - Length Constraints: Maximum length of 30720 + :param Any data_protection_policy: Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks. + For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html). Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property. - :param pulumi.Input[str] kms_key_id: The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. - :param pulumi.Input['LogGroupClass'] log_group_class: The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class - :param pulumi.Input[str] log_group_name: The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group. - :param pulumi.Input[int] retention_in_days: The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]] tags: An array of key-value pairs to apply to this resource. + :param pulumi.Input[str] kms_key_id: The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data. + To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested. + If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error. + Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) + :param pulumi.Input['LogGroupClass'] log_group_class: Specifies the log group class for this log group. There are two classes: + + The ``Standard`` log class supports all CWL features. + + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs. + + For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) + :param pulumi.Input[str] log_group_name: The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group. + :param pulumi.Input[int] retention_in_days: The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653. + To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]] tags: An array of key-value pairs to apply to the log group. + For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). """ ... @overload @@ -173,7 +189,11 @@ def __init__(__self__, args: Optional[LogGroupArgs] = None, opts: Optional[pulumi.ResourceOptions] = None): """ - Resource schema for AWS::Logs::LogGroup + The ``AWS::Logs::LogGroup`` resource specifies a log group. A log group defines common properties for log streams, such as their retention and access control rules. Each log stream must belong to one log group. + You can create up to 1,000,000 log groups per Region per account. You must use the following guidelines when naming a log group: + + Log group names must be unique within a Region for an AWS account. + + Log group names can be between 1 and 512 characters long. + + Log group names consist of the following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/' (forward slash), and '.' (period). :param str resource_name: The name of the resource. :param LogGroupArgs args: The arguments to use to populate this resource's properties. @@ -248,22 +268,14 @@ def get(resource_name: str, @property @pulumi.getter def arn(self) -> pulumi.Output[str]: - """ - The CloudWatch log group ARN. - """ return pulumi.get(self, "arn") @property @pulumi.getter(name="dataProtectionPolicy") def data_protection_policy(self) -> pulumi.Output[Optional[Any]]: """ - The body of the policy document you want to use for this topic. - - You can only add one policy per topic. - - The policy must be in JSON string format. - - Length Constraints: Maximum length of 30720 + Creates a data protection policy and assigns it to the log group. A data protection policy can help safeguard sensitive data that's ingested by the log group by auditing and masking the sensitive log data. When a user who does not have permission to view masked data views a log event that includes masked data, the sensitive data is replaced by asterisks. + For more information, including a list of types of data that can be audited and masked, see [Protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html). Search the [CloudFormation User Guide](https://docs.aws.amazon.com/cloudformation/) for `AWS::Logs::LogGroup` for more information about the expected schema for this property. """ @@ -273,7 +285,10 @@ def data_protection_policy(self) -> pulumi.Output[Optional[Any]]: @pulumi.getter(name="kmsKeyId") def kms_key_id(self) -> pulumi.Output[Optional[str]]: """ - The Amazon Resource Name (ARN) of the CMK to use when encrypting log data. + The Amazon Resource Name (ARN) of the KMS key to use when encrypting log data. + To associate an KMS key with the log group, specify the ARN of that KMS key here. If you do so, ingested data is encrypted using this key. This association is stored as long as the data encrypted with the KMS key is still within CWL. This enables CWL to decrypt this data whenever it is requested. + If you attempt to associate a KMS key with the log group but the KMS key doesn't exist or is deactivated, you will receive an ``InvalidParameterException`` error. + Log group data is always encrypted in CWL. If you omit this key, the encryption does not use KMS. For more information, see [Encrypt log data in using](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html) """ return pulumi.get(self, "kms_key_id") @@ -281,7 +296,11 @@ def kms_key_id(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="logGroupClass") def log_group_class(self) -> pulumi.Output[Optional['LogGroupClass']]: """ - The class of the log group. Possible values are: STANDARD and INFREQUENT_ACCESS, with STANDARD being the default class + Specifies the log group class for this log group. There are two classes: + + The ``Standard`` log class supports all CWL features. + + The ``Infrequent Access`` log class supports a subset of CWL features and incurs lower costs. + + For details about the features supported by each class, see [Log classes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CloudWatch_Logs_Log_Classes.html) """ return pulumi.get(self, "log_group_class") @@ -289,7 +308,7 @@ def log_group_class(self) -> pulumi.Output[Optional['LogGroupClass']]: @pulumi.getter(name="logGroupName") def log_group_name(self) -> pulumi.Output[Optional[str]]: """ - The name of the log group. If you don't specify a name, AWS CloudFormation generates a unique ID for the log group. + The name of the log group. If you don't specify a name, CFNlong generates a unique ID for the log group. """ return pulumi.get(self, "log_group_name") @@ -297,7 +316,8 @@ def log_group_name(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="retentionInDays") def retention_in_days(self) -> pulumi.Output[Optional[int]]: """ - The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, and 3653. + The number of days to retain the log events in the specified log group. Possible values are: 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1096, 1827, 2192, 2557, 2922, 3288, and 3653. + To set a log group so that its log events do not expire, use [DeleteRetentionPolicy](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_DeleteRetentionPolicy.html). """ return pulumi.get(self, "retention_in_days") @@ -305,7 +325,8 @@ def retention_in_days(self) -> pulumi.Output[Optional[int]]: @pulumi.getter def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: """ - An array of key-value pairs to apply to this resource. + An array of key-value pairs to apply to the log group. + For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). """ return pulumi.get(self, "tags") diff --git a/sdk/python/pulumi_aws_native/logs/metric_filter.py b/sdk/python/pulumi_aws_native/logs/metric_filter.py index d8ced34f9c..f9dc6b5912 100644 --- a/sdk/python/pulumi_aws_native/logs/metric_filter.py +++ b/sdk/python/pulumi_aws_native/logs/metric_filter.py @@ -23,10 +23,10 @@ def __init__(__self__, *, filter_name: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a MetricFilter resource. - :param pulumi.Input[str] filter_pattern: Pattern that Logs follows to interpret each entry in a log. - :param pulumi.Input[str] log_group_name: Existing log group that you want to associate with this filter. - :param pulumi.Input[Sequence[pulumi.Input['MetricFilterMetricTransformationArgs']]] metric_transformations: A collection of information that defines how metric data gets emitted. - :param pulumi.Input[str] filter_name: A name for the metric filter. + :param pulumi.Input[str] filter_pattern: A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). + :param pulumi.Input[str] log_group_name: The name of an existing log group that you want to associate with this metric filter. + :param pulumi.Input[Sequence[pulumi.Input['MetricFilterMetricTransformationArgs']]] metric_transformations: The metric transformations. + :param pulumi.Input[str] filter_name: The name of the metric filter. """ pulumi.set(__self__, "filter_pattern", filter_pattern) pulumi.set(__self__, "log_group_name", log_group_name) @@ -38,7 +38,7 @@ def __init__(__self__, *, @pulumi.getter(name="filterPattern") def filter_pattern(self) -> pulumi.Input[str]: """ - Pattern that Logs follows to interpret each entry in a log. + A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). """ return pulumi.get(self, "filter_pattern") @@ -50,7 +50,7 @@ def filter_pattern(self, value: pulumi.Input[str]): @pulumi.getter(name="logGroupName") def log_group_name(self) -> pulumi.Input[str]: """ - Existing log group that you want to associate with this filter. + The name of an existing log group that you want to associate with this metric filter. """ return pulumi.get(self, "log_group_name") @@ -62,7 +62,7 @@ def log_group_name(self, value: pulumi.Input[str]): @pulumi.getter(name="metricTransformations") def metric_transformations(self) -> pulumi.Input[Sequence[pulumi.Input['MetricFilterMetricTransformationArgs']]]: """ - A collection of information that defines how metric data gets emitted. + The metric transformations. """ return pulumi.get(self, "metric_transformations") @@ -74,7 +74,7 @@ def metric_transformations(self, value: pulumi.Input[Sequence[pulumi.Input['Metr @pulumi.getter(name="filterName") def filter_name(self) -> Optional[pulumi.Input[str]]: """ - A name for the metric filter. + The name of the metric filter. """ return pulumi.get(self, "filter_name") @@ -94,14 +94,15 @@ def __init__(__self__, metric_transformations: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MetricFilterMetricTransformationArgs']]]]] = None, __props__=None): """ - Specifies a metric filter that describes how CloudWatch Logs extracts information from logs and transforms it into Amazon CloudWatch metrics. + The ``AWS::Logs::MetricFilter`` resource specifies a metric filter that describes how CWL extracts information from logs and transforms it into Amazon CloudWatch metrics. If you have multiple metric filters that are associated with a log group, all the filters are applied to the log streams in that group. + The maximum number of metric filters that can be associated with a log group is 100. :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] filter_name: A name for the metric filter. - :param pulumi.Input[str] filter_pattern: Pattern that Logs follows to interpret each entry in a log. - :param pulumi.Input[str] log_group_name: Existing log group that you want to associate with this filter. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MetricFilterMetricTransformationArgs']]]] metric_transformations: A collection of information that defines how metric data gets emitted. + :param pulumi.Input[str] filter_name: The name of the metric filter. + :param pulumi.Input[str] filter_pattern: A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). + :param pulumi.Input[str] log_group_name: The name of an existing log group that you want to associate with this metric filter. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['MetricFilterMetricTransformationArgs']]]] metric_transformations: The metric transformations. """ ... @overload @@ -110,7 +111,8 @@ def __init__(__self__, args: MetricFilterArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - Specifies a metric filter that describes how CloudWatch Logs extracts information from logs and transforms it into Amazon CloudWatch metrics. + The ``AWS::Logs::MetricFilter`` resource specifies a metric filter that describes how CWL extracts information from logs and transforms it into Amazon CloudWatch metrics. If you have multiple metric filters that are associated with a log group, all the filters are applied to the log streams in that group. + The maximum number of metric filters that can be associated with a log group is 100. :param str resource_name: The name of the resource. :param MetricFilterArgs args: The arguments to use to populate this resource's properties. @@ -184,7 +186,7 @@ def get(resource_name: str, @pulumi.getter(name="filterName") def filter_name(self) -> pulumi.Output[Optional[str]]: """ - A name for the metric filter. + The name of the metric filter. """ return pulumi.get(self, "filter_name") @@ -192,7 +194,7 @@ def filter_name(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="filterPattern") def filter_pattern(self) -> pulumi.Output[str]: """ - Pattern that Logs follows to interpret each entry in a log. + A filter pattern for extracting metric data out of ingested log events. For more information, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). """ return pulumi.get(self, "filter_pattern") @@ -200,7 +202,7 @@ def filter_pattern(self) -> pulumi.Output[str]: @pulumi.getter(name="logGroupName") def log_group_name(self) -> pulumi.Output[str]: """ - Existing log group that you want to associate with this filter. + The name of an existing log group that you want to associate with this metric filter. """ return pulumi.get(self, "log_group_name") @@ -208,7 +210,7 @@ def log_group_name(self) -> pulumi.Output[str]: @pulumi.getter(name="metricTransformations") def metric_transformations(self) -> pulumi.Output[Sequence['outputs.MetricFilterMetricTransformation']]: """ - A collection of information that defines how metric data gets emitted. + The metric transformations. """ return pulumi.get(self, "metric_transformations") diff --git a/sdk/python/pulumi_aws_native/logs/outputs.py b/sdk/python/pulumi_aws_native/logs/outputs.py index 242392fa4d..13f9a253b7 100644 --- a/sdk/python/pulumi_aws_native/logs/outputs.py +++ b/sdk/python/pulumi_aws_native/logs/outputs.py @@ -68,15 +68,26 @@ def delivery_destination_policy(self) -> str: @pulumi.output_type class MetricFilterDimension(dict): """ - the key-value pairs that further define a metric. + Specifies the CW metric dimensions to publish with this metric. + Because dimensions are part of the unique identifier for a metric, whenever a unique dimension name/value pair is extracted from your logs, you are creating a new variation of that metric. + For more information about publishing dimensions with metrics created by metric filters, see [Publishing dimensions with metrics from values in JSON or space-delimited log events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html#logs-metric-filters-dimensions). + Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. + To help prevent accidental high charges, Amazon disables a metric filter if it generates 1000 different name/value pairs for the dimensions that you have specified within a certain amount of time. + You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). """ def __init__(__self__, *, key: str, value: str): """ - the key-value pairs that further define a metric. - :param str key: The key of the dimension. Maximum length of 255. - :param str value: The value of the dimension. Maximum length of 255. + Specifies the CW metric dimensions to publish with this metric. + Because dimensions are part of the unique identifier for a metric, whenever a unique dimension name/value pair is extracted from your logs, you are creating a new variation of that metric. + For more information about publishing dimensions with metrics created by metric filters, see [Publishing dimensions with metrics from values in JSON or space-delimited log events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html#logs-metric-filters-dimensions). + Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. + To help prevent accidental high charges, Amazon disables a metric filter if it generates 1000 different name/value pairs for the dimensions that you have specified within a certain amount of time. + You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). + :param str key: The name for the CW metric dimension that the metric filter creates. + Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon (:). + :param str value: The log event field that will contain the value for this dimension. This dimension will only be published for a metric if the value is found in the log event. For example, ``$.eventType`` for JSON log events, or ``$server`` for space-delimited log events. """ pulumi.set(__self__, "key", key) pulumi.set(__self__, "value", value) @@ -85,7 +96,8 @@ def __init__(__self__, *, @pulumi.getter def key(self) -> str: """ - The key of the dimension. Maximum length of 255. + The name for the CW metric dimension that the metric filter creates. + Dimension names must contain only ASCII characters, must include at least one non-whitespace character, and cannot start with a colon (:). """ return pulumi.get(self, "key") @@ -93,13 +105,16 @@ def key(self) -> str: @pulumi.getter def value(self) -> str: """ - The value of the dimension. Maximum length of 255. + The log event field that will contain the value for this dimension. This dimension will only be published for a metric if the value is found in the log event. For example, ``$.eventType`` for JSON log events, or ``$server`` for space-delimited log events. """ return pulumi.get(self, "value") @pulumi.output_type class MetricFilterMetricTransformation(dict): + """ + ``MetricTransformation`` is a property of the ``AWS::Logs::MetricFilter`` resource that describes how to transform log streams into a CloudWatch metric. + """ @staticmethod def __key_warning(key: str): suggest = None @@ -131,12 +146,16 @@ def __init__(__self__, *, dimensions: Optional[Sequence['outputs.MetricFilterDimension']] = None, unit: Optional['MetricFilterMetricTransformationUnit'] = None): """ - :param str metric_name: The name of the CloudWatch metric. Metric name must be in ASCII format. - :param str metric_namespace: The namespace of the CloudWatch metric. - :param str metric_value: The value to publish to the CloudWatch metric when a filter pattern matches a log event. - :param float default_value: The value to emit when a filter pattern does not match a log event. This value can be null. - :param Sequence['MetricFilterDimension'] dimensions: Dimensions are the key-value pairs that further define a metric - :param 'MetricFilterMetricTransformationUnit' unit: The unit to assign to the metric. If you omit this, the unit is set as None. + ``MetricTransformation`` is a property of the ``AWS::Logs::MetricFilter`` resource that describes how to transform log streams into a CloudWatch metric. + :param str metric_name: The name of the CloudWatch metric. + :param str metric_namespace: A custom namespace to contain your metric in CloudWatch. Use namespaces to group together metrics that are similar. For more information, see [Namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace). + :param str metric_value: The value that is published to the CloudWatch metric. For example, if you're counting the occurrences of a particular term like ``Error``, specify 1 for the metric value. If you're counting the number of bytes transferred, reference the value that is in the log event by using $. followed by the name of the field that you specified in the filter pattern, such as ``$.size``. + :param float default_value: (Optional) The value to emit when a filter pattern does not match a log event. This value can be null. + :param Sequence['MetricFilterDimension'] dimensions: The fields to use as dimensions for the metric. One metric filter can include as many as three dimensions. + Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. + CloudWatch Logs disables a metric filter if it generates 1000 different name/value pairs for your specified dimensions within a certain amount of time. This helps to prevent accidental high charges. + You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). + :param 'MetricFilterMetricTransformationUnit' unit: The unit to assign to the metric. If you omit this, the unit is set as ``None``. """ pulumi.set(__self__, "metric_name", metric_name) pulumi.set(__self__, "metric_namespace", metric_namespace) @@ -152,7 +171,7 @@ def __init__(__self__, *, @pulumi.getter(name="metricName") def metric_name(self) -> str: """ - The name of the CloudWatch metric. Metric name must be in ASCII format. + The name of the CloudWatch metric. """ return pulumi.get(self, "metric_name") @@ -160,7 +179,7 @@ def metric_name(self) -> str: @pulumi.getter(name="metricNamespace") def metric_namespace(self) -> str: """ - The namespace of the CloudWatch metric. + A custom namespace to contain your metric in CloudWatch. Use namespaces to group together metrics that are similar. For more information, see [Namespaces](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Namespace). """ return pulumi.get(self, "metric_namespace") @@ -168,7 +187,7 @@ def metric_namespace(self) -> str: @pulumi.getter(name="metricValue") def metric_value(self) -> str: """ - The value to publish to the CloudWatch metric when a filter pattern matches a log event. + The value that is published to the CloudWatch metric. For example, if you're counting the occurrences of a particular term like ``Error``, specify 1 for the metric value. If you're counting the number of bytes transferred, reference the value that is in the log event by using $. followed by the name of the field that you specified in the filter pattern, such as ``$.size``. """ return pulumi.get(self, "metric_value") @@ -176,7 +195,7 @@ def metric_value(self) -> str: @pulumi.getter(name="defaultValue") def default_value(self) -> Optional[float]: """ - The value to emit when a filter pattern does not match a log event. This value can be null. + (Optional) The value to emit when a filter pattern does not match a log event. This value can be null. """ return pulumi.get(self, "default_value") @@ -184,7 +203,10 @@ def default_value(self) -> Optional[float]: @pulumi.getter def dimensions(self) -> Optional[Sequence['outputs.MetricFilterDimension']]: """ - Dimensions are the key-value pairs that further define a metric + The fields to use as dimensions for the metric. One metric filter can include as many as three dimensions. + Metrics extracted from log events are charged as custom metrics. To prevent unexpected high charges, do not specify high-cardinality fields such as ``IPAddress`` or ``requestID`` as dimensions. Each different value found for a dimension is treated as a separate metric and accrues charges as a separate custom metric. + CloudWatch Logs disables a metric filter if it generates 1000 different name/value pairs for your specified dimensions within a certain amount of time. This helps to prevent accidental high charges. + You can also set up a billing alarm to alert you if your charges are higher than expected. For more information, see [Creating a Billing Alarm to Monitor Your Estimated Charges](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html). """ return pulumi.get(self, "dimensions") @@ -192,7 +214,7 @@ def dimensions(self) -> Optional[Sequence['outputs.MetricFilterDimension']]: @pulumi.getter def unit(self) -> Optional['MetricFilterMetricTransformationUnit']: """ - The unit to assign to the metric. If you omit this, the unit is set as None. + The unit to assign to the metric. If you omit this, the unit is set as ``None``. """ return pulumi.get(self, "unit") diff --git a/sdk/python/pulumi_aws_native/logs/subscription_filter.py b/sdk/python/pulumi_aws_native/logs/subscription_filter.py index 95b092ba25..5cb94aa838 100644 --- a/sdk/python/pulumi_aws_native/logs/subscription_filter.py +++ b/sdk/python/pulumi_aws_native/logs/subscription_filter.py @@ -24,11 +24,11 @@ def __init__(__self__, *, """ The set of arguments for constructing a SubscriptionFilter resource. :param pulumi.Input[str] destination_arn: The Amazon Resource Name (ARN) of the destination. - :param pulumi.Input[str] filter_pattern: The filtering expressions that restrict what gets delivered to the destination AWS resource. - :param pulumi.Input[str] log_group_name: Existing log group that you want to associate with this filter. - :param pulumi.Input['SubscriptionFilterDistribution'] distribution: The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. - :param pulumi.Input[str] filter_name: The name of the filter generated by resource. - :param pulumi.Input[str] role_arn: The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. + :param pulumi.Input[str] filter_pattern: The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). + :param pulumi.Input[str] log_group_name: The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events. + :param pulumi.Input['SubscriptionFilterDistribution'] distribution: The method used to distribute log data to the destination, which can be either random or grouped by log stream. + :param pulumi.Input[str] filter_name: The name of the subscription filter. + :param pulumi.Input[str] role_arn: The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. """ pulumi.set(__self__, "destination_arn", destination_arn) pulumi.set(__self__, "filter_pattern", filter_pattern) @@ -56,7 +56,7 @@ def destination_arn(self, value: pulumi.Input[str]): @pulumi.getter(name="filterPattern") def filter_pattern(self) -> pulumi.Input[str]: """ - The filtering expressions that restrict what gets delivered to the destination AWS resource. + The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). """ return pulumi.get(self, "filter_pattern") @@ -68,7 +68,7 @@ def filter_pattern(self, value: pulumi.Input[str]): @pulumi.getter(name="logGroupName") def log_group_name(self) -> pulumi.Input[str]: """ - Existing log group that you want to associate with this filter. + The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events. """ return pulumi.get(self, "log_group_name") @@ -80,7 +80,7 @@ def log_group_name(self, value: pulumi.Input[str]): @pulumi.getter def distribution(self) -> Optional[pulumi.Input['SubscriptionFilterDistribution']]: """ - The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. + The method used to distribute log data to the destination, which can be either random or grouped by log stream. """ return pulumi.get(self, "distribution") @@ -92,7 +92,7 @@ def distribution(self, value: Optional[pulumi.Input['SubscriptionFilterDistribut @pulumi.getter(name="filterName") def filter_name(self) -> Optional[pulumi.Input[str]]: """ - The name of the filter generated by resource. + The name of the subscription filter. """ return pulumi.get(self, "filter_name") @@ -104,7 +104,7 @@ def filter_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="roleArn") def role_arn(self) -> Optional[pulumi.Input[str]]: """ - The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. + The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. """ return pulumi.get(self, "role_arn") @@ -126,16 +126,22 @@ def __init__(__self__, role_arn: Optional[pulumi.Input[str]] = None, __props__=None): """ - Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. + The ``AWS::Logs::SubscriptionFilter`` resource specifies a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. Currently, the supported destinations are: + + An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery. + + A logical destination that belongs to a different account, for cross-account delivery. + + An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery. + + An LAMlong function that belongs to the same account as the subscription filter, for same-account delivery. + + There can be as many as two subscription filters associated with a log group. :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] destination_arn: The Amazon Resource Name (ARN) of the destination. - :param pulumi.Input['SubscriptionFilterDistribution'] distribution: The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. - :param pulumi.Input[str] filter_name: The name of the filter generated by resource. - :param pulumi.Input[str] filter_pattern: The filtering expressions that restrict what gets delivered to the destination AWS resource. - :param pulumi.Input[str] log_group_name: Existing log group that you want to associate with this filter. - :param pulumi.Input[str] role_arn: The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. + :param pulumi.Input['SubscriptionFilterDistribution'] distribution: The method used to distribute log data to the destination, which can be either random or grouped by log stream. + :param pulumi.Input[str] filter_name: The name of the subscription filter. + :param pulumi.Input[str] filter_pattern: The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). + :param pulumi.Input[str] log_group_name: The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events. + :param pulumi.Input[str] role_arn: The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. """ ... @overload @@ -144,7 +150,13 @@ def __init__(__self__, args: SubscriptionFilterArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. + The ``AWS::Logs::SubscriptionFilter`` resource specifies a subscription filter and associates it with the specified log group. Subscription filters allow you to subscribe to a real-time stream of log events and have them delivered to a specific destination. Currently, the supported destinations are: + + An Amazon Kinesis data stream belonging to the same account as the subscription filter, for same-account delivery. + + A logical destination that belongs to a different account, for cross-account delivery. + + An Amazon Kinesis Firehose delivery stream that belongs to the same account as the subscription filter, for same-account delivery. + + An LAMlong function that belongs to the same account as the subscription filter, for same-account delivery. + + There can be as many as two subscription filters associated with a log group. :param str resource_name: The name of the resource. :param SubscriptionFilterArgs args: The arguments to use to populate this resource's properties. @@ -232,7 +244,7 @@ def destination_arn(self) -> pulumi.Output[str]: @pulumi.getter def distribution(self) -> pulumi.Output[Optional['SubscriptionFilterDistribution']]: """ - The method used to distribute log data to the destination. By default, log data is grouped by log stream, but the grouping can be set to random for a more even distribution. This property is only applicable when the destination is an Amazon Kinesis stream. + The method used to distribute log data to the destination, which can be either random or grouped by log stream. """ return pulumi.get(self, "distribution") @@ -240,7 +252,7 @@ def distribution(self) -> pulumi.Output[Optional['SubscriptionFilterDistribution @pulumi.getter(name="filterName") def filter_name(self) -> pulumi.Output[Optional[str]]: """ - The name of the filter generated by resource. + The name of the subscription filter. """ return pulumi.get(self, "filter_name") @@ -248,7 +260,7 @@ def filter_name(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="filterPattern") def filter_pattern(self) -> pulumi.Output[str]: """ - The filtering expressions that restrict what gets delivered to the destination AWS resource. + The filtering expressions that restrict what gets delivered to the destination AWS resource. For more information about the filter pattern syntax, see [Filter and Pattern Syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). """ return pulumi.get(self, "filter_pattern") @@ -256,7 +268,7 @@ def filter_pattern(self) -> pulumi.Output[str]: @pulumi.getter(name="logGroupName") def log_group_name(self) -> pulumi.Output[str]: """ - Existing log group that you want to associate with this filter. + The log group to associate with the subscription filter. All log events that are uploaded to this log group are filtered and delivered to the specified AWS resource if the filter pattern matches the log events. """ return pulumi.get(self, "log_group_name") @@ -264,7 +276,7 @@ def log_group_name(self) -> pulumi.Output[str]: @pulumi.getter(name="roleArn") def role_arn(self) -> pulumi.Output[Optional[str]]: """ - The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. + The ARN of an IAM role that grants CWL permissions to deliver ingested log events to the destination stream. You don't need to provide the ARN when you are working with a logical destination for cross-account delivery. """ return pulumi.get(self, "role_arn") diff --git a/sdk/python/pulumi_aws_native/rds/get_integration.py b/sdk/python/pulumi_aws_native/rds/get_integration.py index 08f4033570..9876248b96 100644 --- a/sdk/python/pulumi_aws_native/rds/get_integration.py +++ b/sdk/python/pulumi_aws_native/rds/get_integration.py @@ -19,13 +19,22 @@ @pulumi.output_type class GetIntegrationResult: - def __init__(__self__, create_time=None, integration_arn=None, tags=None): + def __init__(__self__, create_time=None, data_filter=None, description=None, integration_arn=None, integration_name=None, tags=None): if create_time and not isinstance(create_time, str): raise TypeError("Expected argument 'create_time' to be a str") pulumi.set(__self__, "create_time", create_time) + if data_filter and not isinstance(data_filter, str): + raise TypeError("Expected argument 'data_filter' to be a str") + pulumi.set(__self__, "data_filter", data_filter) + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) if integration_arn and not isinstance(integration_arn, str): raise TypeError("Expected argument 'integration_arn' to be a str") pulumi.set(__self__, "integration_arn", integration_arn) + if integration_name and not isinstance(integration_name, str): + raise TypeError("Expected argument 'integration_name' to be a str") + pulumi.set(__self__, "integration_name", integration_name) if tags and not isinstance(tags, list): raise TypeError("Expected argument 'tags' to be a list") pulumi.set(__self__, "tags", tags) @@ -35,6 +44,22 @@ def __init__(__self__, create_time=None, integration_arn=None, tags=None): def create_time(self) -> Optional[str]: return pulumi.get(self, "create_time") + @property + @pulumi.getter(name="dataFilter") + def data_filter(self) -> Optional[str]: + """ + The data filter for the integration. + """ + return pulumi.get(self, "data_filter") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + """ + The description of the integration. + """ + return pulumi.get(self, "description") + @property @pulumi.getter(name="integrationArn") def integration_arn(self) -> Optional[str]: @@ -43,6 +68,14 @@ def integration_arn(self) -> Optional[str]: """ return pulumi.get(self, "integration_arn") + @property + @pulumi.getter(name="integrationName") + def integration_name(self) -> Optional[str]: + """ + The name of the integration. + """ + return pulumi.get(self, "integration_name") + @property @pulumi.getter def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: @@ -59,7 +92,10 @@ def __await__(self): yield self return GetIntegrationResult( create_time=self.create_time, + data_filter=self.data_filter, + description=self.description, integration_arn=self.integration_arn, + integration_name=self.integration_name, tags=self.tags) @@ -78,7 +114,10 @@ def get_integration(integration_arn: Optional[str] = None, return AwaitableGetIntegrationResult( create_time=pulumi.get(__ret__, 'create_time'), + data_filter=pulumi.get(__ret__, 'data_filter'), + description=pulumi.get(__ret__, 'description'), integration_arn=pulumi.get(__ret__, 'integration_arn'), + integration_name=pulumi.get(__ret__, 'integration_name'), tags=pulumi.get(__ret__, 'tags')) diff --git a/sdk/python/pulumi_aws_native/rds/integration.py b/sdk/python/pulumi_aws_native/rds/integration.py index 7a000243f1..a6b394eeb9 100644 --- a/sdk/python/pulumi_aws_native/rds/integration.py +++ b/sdk/python/pulumi_aws_native/rds/integration.py @@ -19,6 +19,8 @@ def __init__(__self__, *, source_arn: pulumi.Input[str], target_arn: pulumi.Input[str], additional_encryption_context: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + data_filter: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, integration_name: Optional[pulumi.Input[str]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None): @@ -26,6 +28,8 @@ def __init__(__self__, *, The set of arguments for constructing a Integration resource. :param pulumi.Input[str] source_arn: The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source for replication. :param pulumi.Input[str] target_arn: The ARN of the Redshift data warehouse to use as the target for replication. + :param pulumi.Input[str] data_filter: The data filter for the integration. + :param pulumi.Input[str] description: The description of the integration. :param pulumi.Input[str] integration_name: The name of the integration. :param pulumi.Input[str] kms_key_id: An optional AWS Key Management System (AWS KMS) key ARN for the key used to to encrypt the integration. The resource accepts the key ID and the key ARN forms. The key ID form can be used if the KMS key is owned by te same account. If the KMS key belongs to a different account than the calling account, the full key ARN must be specified. Do not use the key alias or the key alias ARN as this will cause a false drift of the resource. :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: An array of key-value pairs to apply to this resource. @@ -34,6 +38,10 @@ def __init__(__self__, *, pulumi.set(__self__, "target_arn", target_arn) if additional_encryption_context is not None: pulumi.set(__self__, "additional_encryption_context", additional_encryption_context) + if data_filter is not None: + pulumi.set(__self__, "data_filter", data_filter) + if description is not None: + pulumi.set(__self__, "description", description) if integration_name is not None: pulumi.set(__self__, "integration_name", integration_name) if kms_key_id is not None: @@ -74,6 +82,30 @@ def additional_encryption_context(self) -> Optional[pulumi.Input[Mapping[str, pu def additional_encryption_context(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): pulumi.set(self, "additional_encryption_context", value) + @property + @pulumi.getter(name="dataFilter") + def data_filter(self) -> Optional[pulumi.Input[str]]: + """ + The data filter for the integration. + """ + return pulumi.get(self, "data_filter") + + @data_filter.setter + def data_filter(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "data_filter", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + The description of the integration. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + @property @pulumi.getter(name="integrationName") def integration_name(self) -> Optional[pulumi.Input[str]]: @@ -117,6 +149,8 @@ def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, additional_encryption_context: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + data_filter: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, integration_name: Optional[pulumi.Input[str]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, source_arn: Optional[pulumi.Input[str]] = None, @@ -128,6 +162,8 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] data_filter: The data filter for the integration. + :param pulumi.Input[str] description: The description of the integration. :param pulumi.Input[str] integration_name: The name of the integration. :param pulumi.Input[str] kms_key_id: An optional AWS Key Management System (AWS KMS) key ARN for the key used to to encrypt the integration. The resource accepts the key ID and the key ARN forms. The key ID form can be used if the KMS key is owned by te same account. If the KMS key belongs to a different account than the calling account, the full key ARN must be specified. Do not use the key alias or the key alias ARN as this will cause a false drift of the resource. :param pulumi.Input[str] source_arn: The Amazon Resource Name (ARN) of the Aurora DB cluster to use as the source for replication. @@ -159,6 +195,8 @@ def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, additional_encryption_context: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + data_filter: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, integration_name: Optional[pulumi.Input[str]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, source_arn: Optional[pulumi.Input[str]] = None, @@ -174,6 +212,8 @@ def _internal_init(__self__, __props__ = IntegrationArgs.__new__(IntegrationArgs) __props__.__dict__["additional_encryption_context"] = additional_encryption_context + __props__.__dict__["data_filter"] = data_filter + __props__.__dict__["description"] = description __props__.__dict__["integration_name"] = integration_name __props__.__dict__["kms_key_id"] = kms_key_id if source_arn is None and not opts.urn: @@ -185,7 +225,7 @@ def _internal_init(__self__, __props__.__dict__["target_arn"] = target_arn __props__.__dict__["create_time"] = None __props__.__dict__["integration_arn"] = None - replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["additionalEncryptionContext.*", "integrationName", "kmsKeyId", "sourceArn", "targetArn"]) + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["additionalEncryptionContext.*", "kmsKeyId", "sourceArn", "targetArn"]) opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) super(Integration, __self__).__init__( 'aws-native:rds:Integration', @@ -211,6 +251,8 @@ def get(resource_name: str, __props__.__dict__["additional_encryption_context"] = None __props__.__dict__["create_time"] = None + __props__.__dict__["data_filter"] = None + __props__.__dict__["description"] = None __props__.__dict__["integration_arn"] = None __props__.__dict__["integration_name"] = None __props__.__dict__["kms_key_id"] = None @@ -229,6 +271,22 @@ def additional_encryption_context(self) -> pulumi.Output[Optional[Mapping[str, s def create_time(self) -> pulumi.Output[str]: return pulumi.get(self, "create_time") + @property + @pulumi.getter(name="dataFilter") + def data_filter(self) -> pulumi.Output[Optional[str]]: + """ + The data filter for the integration. + """ + return pulumi.get(self, "data_filter") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + """ + The description of the integration. + """ + return pulumi.get(self, "description") + @property @pulumi.getter(name="integrationArn") def integration_arn(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_aws_native/resiliencehub/_inputs.py b/sdk/python/pulumi_aws_native/resiliencehub/_inputs.py index aa8ef09cdd..46b26c31c2 100644 --- a/sdk/python/pulumi_aws_native/resiliencehub/_inputs.py +++ b/sdk/python/pulumi_aws_native/resiliencehub/_inputs.py @@ -16,6 +16,7 @@ 'AppPhysicalResourceIdArgs', 'AppResourceMappingArgs', 'ResiliencyPolicyFailurePolicyArgs', + 'ResiliencyPolicyPolicyMapArgs', ] @pulumi.input_type @@ -294,3 +295,53 @@ def rto_in_secs(self, value: pulumi.Input[int]): pulumi.set(self, "rto_in_secs", value) +@pulumi.input_type +class ResiliencyPolicyPolicyMapArgs: + def __init__(__self__, *, + az: pulumi.Input['ResiliencyPolicyFailurePolicyArgs'], + hardware: pulumi.Input['ResiliencyPolicyFailurePolicyArgs'], + software: pulumi.Input['ResiliencyPolicyFailurePolicyArgs'], + region: Optional[pulumi.Input['ResiliencyPolicyFailurePolicyArgs']] = None): + pulumi.set(__self__, "az", az) + pulumi.set(__self__, "hardware", hardware) + pulumi.set(__self__, "software", software) + if region is not None: + pulumi.set(__self__, "region", region) + + @property + @pulumi.getter + def az(self) -> pulumi.Input['ResiliencyPolicyFailurePolicyArgs']: + return pulumi.get(self, "az") + + @az.setter + def az(self, value: pulumi.Input['ResiliencyPolicyFailurePolicyArgs']): + pulumi.set(self, "az", value) + + @property + @pulumi.getter + def hardware(self) -> pulumi.Input['ResiliencyPolicyFailurePolicyArgs']: + return pulumi.get(self, "hardware") + + @hardware.setter + def hardware(self, value: pulumi.Input['ResiliencyPolicyFailurePolicyArgs']): + pulumi.set(self, "hardware", value) + + @property + @pulumi.getter + def software(self) -> pulumi.Input['ResiliencyPolicyFailurePolicyArgs']: + return pulumi.get(self, "software") + + @software.setter + def software(self, value: pulumi.Input['ResiliencyPolicyFailurePolicyArgs']): + pulumi.set(self, "software", value) + + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input['ResiliencyPolicyFailurePolicyArgs']]: + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input['ResiliencyPolicyFailurePolicyArgs']]): + pulumi.set(self, "region", value) + + diff --git a/sdk/python/pulumi_aws_native/resiliencehub/get_resiliency_policy.py b/sdk/python/pulumi_aws_native/resiliencehub/get_resiliency_policy.py index df4d6813d3..90c7882a44 100644 --- a/sdk/python/pulumi_aws_native/resiliencehub/get_resiliency_policy.py +++ b/sdk/python/pulumi_aws_native/resiliencehub/get_resiliency_policy.py @@ -53,7 +53,7 @@ def data_location_constraint(self) -> Optional['ResiliencyPolicyDataLocationCons @property @pulumi.getter - def policy(self) -> Optional[Mapping[str, 'outputs.ResiliencyPolicyFailurePolicy']]: + def policy(self) -> Optional['outputs.ResiliencyPolicyPolicyMap']: return pulumi.get(self, "policy") @property diff --git a/sdk/python/pulumi_aws_native/resiliencehub/outputs.py b/sdk/python/pulumi_aws_native/resiliencehub/outputs.py index 20bc05f4a1..b354e196b5 100644 --- a/sdk/python/pulumi_aws_native/resiliencehub/outputs.py +++ b/sdk/python/pulumi_aws_native/resiliencehub/outputs.py @@ -17,6 +17,7 @@ 'AppPhysicalResourceId', 'AppResourceMapping', 'ResiliencyPolicyFailurePolicy', + 'ResiliencyPolicyPolicyMap', ] @pulumi.output_type @@ -338,3 +339,37 @@ def rto_in_secs(self) -> int: return pulumi.get(self, "rto_in_secs") +@pulumi.output_type +class ResiliencyPolicyPolicyMap(dict): + def __init__(__self__, *, + az: 'outputs.ResiliencyPolicyFailurePolicy', + hardware: 'outputs.ResiliencyPolicyFailurePolicy', + software: 'outputs.ResiliencyPolicyFailurePolicy', + region: Optional['outputs.ResiliencyPolicyFailurePolicy'] = None): + pulumi.set(__self__, "az", az) + pulumi.set(__self__, "hardware", hardware) + pulumi.set(__self__, "software", software) + if region is not None: + pulumi.set(__self__, "region", region) + + @property + @pulumi.getter + def az(self) -> 'outputs.ResiliencyPolicyFailurePolicy': + return pulumi.get(self, "az") + + @property + @pulumi.getter + def hardware(self) -> 'outputs.ResiliencyPolicyFailurePolicy': + return pulumi.get(self, "hardware") + + @property + @pulumi.getter + def software(self) -> 'outputs.ResiliencyPolicyFailurePolicy': + return pulumi.get(self, "software") + + @property + @pulumi.getter + def region(self) -> Optional['outputs.ResiliencyPolicyFailurePolicy']: + return pulumi.get(self, "region") + + diff --git a/sdk/python/pulumi_aws_native/resiliencehub/resiliency_policy.py b/sdk/python/pulumi_aws_native/resiliencehub/resiliency_policy.py index 40e045aaf7..9ae41c0481 100644 --- a/sdk/python/pulumi_aws_native/resiliencehub/resiliency_policy.py +++ b/sdk/python/pulumi_aws_native/resiliencehub/resiliency_policy.py @@ -17,7 +17,7 @@ @pulumi.input_type class ResiliencyPolicyArgs: def __init__(__self__, *, - policy: pulumi.Input[Mapping[str, pulumi.Input['ResiliencyPolicyFailurePolicyArgs']]], + policy: pulumi.Input['ResiliencyPolicyPolicyMapArgs'], tier: pulumi.Input['ResiliencyPolicyTier'], data_location_constraint: Optional[pulumi.Input['ResiliencyPolicyDataLocationConstraint']] = None, policy_description: Optional[pulumi.Input[str]] = None, @@ -43,11 +43,11 @@ def __init__(__self__, *, @property @pulumi.getter - def policy(self) -> pulumi.Input[Mapping[str, pulumi.Input['ResiliencyPolicyFailurePolicyArgs']]]: + def policy(self) -> pulumi.Input['ResiliencyPolicyPolicyMapArgs']: return pulumi.get(self, "policy") @policy.setter - def policy(self, value: pulumi.Input[Mapping[str, pulumi.Input['ResiliencyPolicyFailurePolicyArgs']]]): + def policy(self, value: pulumi.Input['ResiliencyPolicyPolicyMapArgs']): pulumi.set(self, "policy", value) @property @@ -114,7 +114,7 @@ def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, data_location_constraint: Optional[pulumi.Input['ResiliencyPolicyDataLocationConstraint']] = None, - policy: Optional[pulumi.Input[Mapping[str, pulumi.Input[pulumi.InputType['ResiliencyPolicyFailurePolicyArgs']]]]] = None, + policy: Optional[pulumi.Input[pulumi.InputType['ResiliencyPolicyPolicyMapArgs']]] = None, policy_description: Optional[pulumi.Input[str]] = None, policy_name: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -155,7 +155,7 @@ def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, data_location_constraint: Optional[pulumi.Input['ResiliencyPolicyDataLocationConstraint']] = None, - policy: Optional[pulumi.Input[Mapping[str, pulumi.Input[pulumi.InputType['ResiliencyPolicyFailurePolicyArgs']]]]] = None, + policy: Optional[pulumi.Input[pulumi.InputType['ResiliencyPolicyPolicyMapArgs']]] = None, policy_description: Optional[pulumi.Input[str]] = None, policy_name: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -221,7 +221,7 @@ def data_location_constraint(self) -> pulumi.Output[Optional['ResiliencyPolicyDa @property @pulumi.getter - def policy(self) -> pulumi.Output[Mapping[str, 'outputs.ResiliencyPolicyFailurePolicy']]: + def policy(self) -> pulumi.Output['outputs.ResiliencyPolicyPolicyMap']: return pulumi.get(self, "policy") @property diff --git a/sdk/python/pulumi_aws_native/securitylake/__init__.py b/sdk/python/pulumi_aws_native/securitylake/__init__.py new file mode 100644 index 0000000000..0ef1ac4137 --- /dev/null +++ b/sdk/python/pulumi_aws_native/securitylake/__init__.py @@ -0,0 +1,16 @@ +# 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 .. import _utilities +import typing +# Export this package's modules as members: +from ._enums import * +from .aws_log_source import * +from .data_lake import * +from .get_aws_log_source import * +from .get_data_lake import * +from .get_subscriber import * +from .subscriber import * +from ._inputs import * +from . import outputs diff --git a/sdk/python/pulumi_aws_native/securitylake/_enums.py b/sdk/python/pulumi_aws_native/securitylake/_enums.py new file mode 100644 index 0000000000..cde6a9c8ff --- /dev/null +++ b/sdk/python/pulumi_aws_native/securitylake/_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__ = [ + 'SubscriberAccessTypesItem', +] + + +class SubscriberAccessTypesItem(str, Enum): + LAKEFORMATION = "LAKEFORMATION" + S3 = "S3" diff --git a/sdk/python/pulumi_aws_native/securitylake/_inputs.py b/sdk/python/pulumi_aws_native/securitylake/_inputs.py new file mode 100644 index 0000000000..6385b963be --- /dev/null +++ b/sdk/python/pulumi_aws_native/securitylake/_inputs.py @@ -0,0 +1,329 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from ._enums import * + +__all__ = [ + 'DataLakeEncryptionConfigurationArgs', + 'DataLakeExpirationArgs', + 'DataLakeLifecycleConfigurationArgs', + 'DataLakeReplicationConfigurationArgs', + 'DataLakeTransitionsArgs', + 'SubscriberAwsLogSourceArgs', + 'SubscriberCustomLogSourceArgs', + 'SubscriberIdentityPropertiesArgs', + 'SubscriberSource0PropertiesArgs', + 'SubscriberSource1PropertiesArgs', +] + +@pulumi.input_type +class DataLakeEncryptionConfigurationArgs: + def __init__(__self__, *, + kms_key_id: Optional[pulumi.Input[str]] = None): + """ + Provides encryption details of Amazon Security Lake object. + :param pulumi.Input[str] kms_key_id: The id of KMS encryption key used by Amazon Security Lake to encrypt the Security Lake object. + """ + if kms_key_id is not None: + pulumi.set(__self__, "kms_key_id", kms_key_id) + + @property + @pulumi.getter(name="kmsKeyId") + def kms_key_id(self) -> Optional[pulumi.Input[str]]: + """ + The id of KMS encryption key used by Amazon Security Lake to encrypt the Security Lake object. + """ + return pulumi.get(self, "kms_key_id") + + @kms_key_id.setter + def kms_key_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "kms_key_id", value) + + +@pulumi.input_type +class DataLakeExpirationArgs: + def __init__(__self__, *, + days: Optional[pulumi.Input[int]] = None): + """ + Provides data expiration details of Amazon Security Lake object. + """ + if days is not None: + pulumi.set(__self__, "days", days) + + @property + @pulumi.getter + def days(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "days") + + @days.setter + def days(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "days", value) + + +@pulumi.input_type +class DataLakeLifecycleConfigurationArgs: + def __init__(__self__, *, + expiration: Optional[pulumi.Input['DataLakeExpirationArgs']] = None, + transitions: Optional[pulumi.Input[Sequence[pulumi.Input['DataLakeTransitionsArgs']]]] = None): + """ + Provides lifecycle details of Amazon Security Lake object. + :param pulumi.Input[Sequence[pulumi.Input['DataLakeTransitionsArgs']]] transitions: Provides data storage transition details of Amazon Security Lake object. + """ + if expiration is not None: + pulumi.set(__self__, "expiration", expiration) + if transitions is not None: + pulumi.set(__self__, "transitions", transitions) + + @property + @pulumi.getter + def expiration(self) -> Optional[pulumi.Input['DataLakeExpirationArgs']]: + return pulumi.get(self, "expiration") + + @expiration.setter + def expiration(self, value: Optional[pulumi.Input['DataLakeExpirationArgs']]): + pulumi.set(self, "expiration", value) + + @property + @pulumi.getter + def transitions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DataLakeTransitionsArgs']]]]: + """ + Provides data storage transition details of Amazon Security Lake object. + """ + return pulumi.get(self, "transitions") + + @transitions.setter + def transitions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DataLakeTransitionsArgs']]]]): + pulumi.set(self, "transitions", value) + + +@pulumi.input_type +class DataLakeReplicationConfigurationArgs: + def __init__(__self__, *, + regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + role_arn: Optional[pulumi.Input[str]] = None): + """ + Provides replication details of Amazon Security Lake object. + :param pulumi.Input[str] role_arn: Replication settings for the Amazon S3 buckets. This parameter uses the AWS Identity and Access Management (IAM) role you created that is managed by Security Lake, to ensure the replication setting is correct. + """ + if regions is not None: + pulumi.set(__self__, "regions", regions) + if role_arn is not None: + pulumi.set(__self__, "role_arn", role_arn) + + @property + @pulumi.getter + def regions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + return pulumi.get(self, "regions") + + @regions.setter + def regions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "regions", value) + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> Optional[pulumi.Input[str]]: + """ + Replication settings for the Amazon S3 buckets. This parameter uses the AWS Identity and Access Management (IAM) role you created that is managed by Security Lake, to ensure the replication setting is correct. + """ + return pulumi.get(self, "role_arn") + + @role_arn.setter + def role_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "role_arn", value) + + +@pulumi.input_type +class DataLakeTransitionsArgs: + def __init__(__self__, *, + days: Optional[pulumi.Input[int]] = None, + storage_class: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[int] days: Number of days before data transitions to a different S3 Storage Class in the Amazon Security Lake object. + :param pulumi.Input[str] storage_class: The range of storage classes that you can choose from based on the data access, resiliency, and cost requirements of your workloads. + """ + if days is not None: + pulumi.set(__self__, "days", days) + if storage_class is not None: + pulumi.set(__self__, "storage_class", storage_class) + + @property + @pulumi.getter + def days(self) -> Optional[pulumi.Input[int]]: + """ + Number of days before data transitions to a different S3 Storage Class in the Amazon Security Lake object. + """ + return pulumi.get(self, "days") + + @days.setter + def days(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "days", value) + + @property + @pulumi.getter(name="storageClass") + def storage_class(self) -> Optional[pulumi.Input[str]]: + """ + The range of storage classes that you can choose from based on the data access, resiliency, and cost requirements of your workloads. + """ + return pulumi.get(self, "storage_class") + + @storage_class.setter + def storage_class(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "storage_class", value) + + +@pulumi.input_type +class SubscriberAwsLogSourceArgs: + def __init__(__self__, *, + source_name: Optional[pulumi.Input[str]] = None, + source_version: Optional[pulumi.Input[str]] = None): + """ + Amazon Security Lake supports log and event collection for natively supported AWS services. + :param pulumi.Input[str] source_name: The name for a AWS source. This must be a Regionally unique value. + :param pulumi.Input[str] source_version: The version for a AWS source. This must be a Regionally unique value. + """ + if source_name is not None: + pulumi.set(__self__, "source_name", source_name) + if source_version is not None: + pulumi.set(__self__, "source_version", source_version) + + @property + @pulumi.getter(name="sourceName") + def source_name(self) -> Optional[pulumi.Input[str]]: + """ + The name for a AWS source. This must be a Regionally unique value. + """ + return pulumi.get(self, "source_name") + + @source_name.setter + def source_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "source_name", value) + + @property + @pulumi.getter(name="sourceVersion") + def source_version(self) -> Optional[pulumi.Input[str]]: + """ + The version for a AWS source. This must be a Regionally unique value. + """ + return pulumi.get(self, "source_version") + + @source_version.setter + def source_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "source_version", value) + + +@pulumi.input_type +class SubscriberCustomLogSourceArgs: + def __init__(__self__, *, + source_name: Optional[pulumi.Input[str]] = None, + source_version: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] source_name: The name for a third-party custom source. This must be a Regionally unique value. + :param pulumi.Input[str] source_version: The version for a third-party custom source. This must be a Regionally unique value. + """ + if source_name is not None: + pulumi.set(__self__, "source_name", source_name) + if source_version is not None: + pulumi.set(__self__, "source_version", source_version) + + @property + @pulumi.getter(name="sourceName") + def source_name(self) -> Optional[pulumi.Input[str]]: + """ + The name for a third-party custom source. This must be a Regionally unique value. + """ + return pulumi.get(self, "source_name") + + @source_name.setter + def source_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "source_name", value) + + @property + @pulumi.getter(name="sourceVersion") + def source_version(self) -> Optional[pulumi.Input[str]]: + """ + The version for a third-party custom source. This must be a Regionally unique value. + """ + return pulumi.get(self, "source_version") + + @source_version.setter + def source_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "source_version", value) + + +@pulumi.input_type +class SubscriberIdentityPropertiesArgs: + def __init__(__self__, *, + external_id: pulumi.Input[str], + principal: pulumi.Input[str]): + """ + The AWS identity used to access your data. + :param pulumi.Input[str] external_id: The external ID used to establish trust relationship with the AWS identity. + :param pulumi.Input[str] principal: The AWS identity principal. + """ + pulumi.set(__self__, "external_id", external_id) + pulumi.set(__self__, "principal", principal) + + @property + @pulumi.getter(name="externalId") + def external_id(self) -> pulumi.Input[str]: + """ + The external ID used to establish trust relationship with the AWS identity. + """ + return pulumi.get(self, "external_id") + + @external_id.setter + def external_id(self, value: pulumi.Input[str]): + pulumi.set(self, "external_id", value) + + @property + @pulumi.getter + def principal(self) -> pulumi.Input[str]: + """ + The AWS identity principal. + """ + return pulumi.get(self, "principal") + + @principal.setter + def principal(self, value: pulumi.Input[str]): + pulumi.set(self, "principal", value) + + +@pulumi.input_type +class SubscriberSource0PropertiesArgs: + def __init__(__self__, *, + aws_log_source: pulumi.Input['SubscriberAwsLogSourceArgs']): + pulumi.set(__self__, "aws_log_source", aws_log_source) + + @property + @pulumi.getter(name="awsLogSource") + def aws_log_source(self) -> pulumi.Input['SubscriberAwsLogSourceArgs']: + return pulumi.get(self, "aws_log_source") + + @aws_log_source.setter + def aws_log_source(self, value: pulumi.Input['SubscriberAwsLogSourceArgs']): + pulumi.set(self, "aws_log_source", value) + + +@pulumi.input_type +class SubscriberSource1PropertiesArgs: + def __init__(__self__, *, + custom_log_source: pulumi.Input['SubscriberCustomLogSourceArgs']): + pulumi.set(__self__, "custom_log_source", custom_log_source) + + @property + @pulumi.getter(name="customLogSource") + def custom_log_source(self) -> pulumi.Input['SubscriberCustomLogSourceArgs']: + return pulumi.get(self, "custom_log_source") + + @custom_log_source.setter + def custom_log_source(self, value: pulumi.Input['SubscriberCustomLogSourceArgs']): + pulumi.set(self, "custom_log_source", value) + + diff --git a/sdk/python/pulumi_aws_native/securitylake/aws_log_source.py b/sdk/python/pulumi_aws_native/securitylake/aws_log_source.py new file mode 100644 index 0000000000..8240be200c --- /dev/null +++ b/sdk/python/pulumi_aws_native/securitylake/aws_log_source.py @@ -0,0 +1,210 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = ['AwsLogSourceArgs', 'AwsLogSource'] + +@pulumi.input_type +class AwsLogSourceArgs: + def __init__(__self__, *, + data_lake_arn: pulumi.Input[str], + source_version: pulumi.Input[str], + accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + source_name: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a AwsLogSource resource. + :param pulumi.Input[str] data_lake_arn: The ARN for the data lake. + :param pulumi.Input[str] source_version: The version for a AWS source. This must be a Regionally unique value. + :param pulumi.Input[Sequence[pulumi.Input[str]]] accounts: AWS account where you want to collect logs from. + :param pulumi.Input[str] source_name: The name for a AWS source. This must be a Regionally unique value. + """ + pulumi.set(__self__, "data_lake_arn", data_lake_arn) + pulumi.set(__self__, "source_version", source_version) + if accounts is not None: + pulumi.set(__self__, "accounts", accounts) + if source_name is not None: + pulumi.set(__self__, "source_name", source_name) + + @property + @pulumi.getter(name="dataLakeArn") + def data_lake_arn(self) -> pulumi.Input[str]: + """ + The ARN for the data lake. + """ + return pulumi.get(self, "data_lake_arn") + + @data_lake_arn.setter + def data_lake_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "data_lake_arn", value) + + @property + @pulumi.getter(name="sourceVersion") + def source_version(self) -> pulumi.Input[str]: + """ + The version for a AWS source. This must be a Regionally unique value. + """ + return pulumi.get(self, "source_version") + + @source_version.setter + def source_version(self, value: pulumi.Input[str]): + pulumi.set(self, "source_version", value) + + @property + @pulumi.getter + def accounts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + AWS account where you want to collect logs from. + """ + return pulumi.get(self, "accounts") + + @accounts.setter + def accounts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "accounts", value) + + @property + @pulumi.getter(name="sourceName") + def source_name(self) -> Optional[pulumi.Input[str]]: + """ + The name for a AWS source. This must be a Regionally unique value. + """ + return pulumi.get(self, "source_name") + + @source_name.setter + def source_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "source_name", value) + + +class AwsLogSource(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + data_lake_arn: Optional[pulumi.Input[str]] = None, + source_name: Optional[pulumi.Input[str]] = None, + source_version: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Resource Type definition for AWS::SecurityLake::AwsLogSource + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[str]]] accounts: AWS account where you want to collect logs from. + :param pulumi.Input[str] data_lake_arn: The ARN for the data lake. + :param pulumi.Input[str] source_name: The name for a AWS source. This must be a Regionally unique value. + :param pulumi.Input[str] source_version: The version for a AWS source. This must be a Regionally unique value. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: AwsLogSourceArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource Type definition for AWS::SecurityLake::AwsLogSource + + :param str resource_name: The name of the resource. + :param AwsLogSourceArgs 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(AwsLogSourceArgs, 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, + accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + data_lake_arn: Optional[pulumi.Input[str]] = None, + source_name: Optional[pulumi.Input[str]] = None, + source_version: 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__ = AwsLogSourceArgs.__new__(AwsLogSourceArgs) + + __props__.__dict__["accounts"] = accounts + if data_lake_arn is None and not opts.urn: + raise TypeError("Missing required property 'data_lake_arn'") + __props__.__dict__["data_lake_arn"] = data_lake_arn + __props__.__dict__["source_name"] = source_name + if source_version is None and not opts.urn: + raise TypeError("Missing required property 'source_version'") + __props__.__dict__["source_version"] = source_version + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["dataLakeArn", "sourceName", "sourceVersion"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(AwsLogSource, __self__).__init__( + 'aws-native:securitylake:AwsLogSource', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'AwsLogSource': + """ + Get an existing AwsLogSource 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__ = AwsLogSourceArgs.__new__(AwsLogSourceArgs) + + __props__.__dict__["accounts"] = None + __props__.__dict__["data_lake_arn"] = None + __props__.__dict__["source_name"] = None + __props__.__dict__["source_version"] = None + return AwsLogSource(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def accounts(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + AWS account where you want to collect logs from. + """ + return pulumi.get(self, "accounts") + + @property + @pulumi.getter(name="dataLakeArn") + def data_lake_arn(self) -> pulumi.Output[str]: + """ + The ARN for the data lake. + """ + return pulumi.get(self, "data_lake_arn") + + @property + @pulumi.getter(name="sourceName") + def source_name(self) -> pulumi.Output[str]: + """ + The name for a AWS source. This must be a Regionally unique value. + """ + return pulumi.get(self, "source_name") + + @property + @pulumi.getter(name="sourceVersion") + def source_version(self) -> pulumi.Output[str]: + """ + The version for a AWS source. This must be a Regionally unique value. + """ + return pulumi.get(self, "source_version") + diff --git a/sdk/python/pulumi_aws_native/securitylake/data_lake.py b/sdk/python/pulumi_aws_native/securitylake/data_lake.py new file mode 100644 index 0000000000..3a1711fd0a --- /dev/null +++ b/sdk/python/pulumi_aws_native/securitylake/data_lake.py @@ -0,0 +1,229 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from .. import _inputs as _root_inputs +from .. import outputs as _root_outputs +from ._inputs import * + +__all__ = ['DataLakeArgs', 'DataLake'] + +@pulumi.input_type +class DataLakeArgs: + def __init__(__self__, *, + encryption_configuration: Optional[pulumi.Input['DataLakeEncryptionConfigurationArgs']] = None, + lifecycle_configuration: Optional[pulumi.Input['DataLakeLifecycleConfigurationArgs']] = None, + meta_store_manager_role_arn: Optional[pulumi.Input[str]] = None, + replication_configuration: Optional[pulumi.Input['DataLakeReplicationConfigurationArgs']] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None): + """ + The set of arguments for constructing a DataLake resource. + :param pulumi.Input[str] meta_store_manager_role_arn: The Amazon Resource Name (ARN) used to index AWS Glue table partitions that are generated by the ingestion and normalization of AWS log sources and custom sources. + """ + if encryption_configuration is not None: + pulumi.set(__self__, "encryption_configuration", encryption_configuration) + if lifecycle_configuration is not None: + pulumi.set(__self__, "lifecycle_configuration", lifecycle_configuration) + if meta_store_manager_role_arn is not None: + pulumi.set(__self__, "meta_store_manager_role_arn", meta_store_manager_role_arn) + if replication_configuration is not None: + pulumi.set(__self__, "replication_configuration", replication_configuration) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="encryptionConfiguration") + def encryption_configuration(self) -> Optional[pulumi.Input['DataLakeEncryptionConfigurationArgs']]: + return pulumi.get(self, "encryption_configuration") + + @encryption_configuration.setter + def encryption_configuration(self, value: Optional[pulumi.Input['DataLakeEncryptionConfigurationArgs']]): + pulumi.set(self, "encryption_configuration", value) + + @property + @pulumi.getter(name="lifecycleConfiguration") + def lifecycle_configuration(self) -> Optional[pulumi.Input['DataLakeLifecycleConfigurationArgs']]: + return pulumi.get(self, "lifecycle_configuration") + + @lifecycle_configuration.setter + def lifecycle_configuration(self, value: Optional[pulumi.Input['DataLakeLifecycleConfigurationArgs']]): + pulumi.set(self, "lifecycle_configuration", value) + + @property + @pulumi.getter(name="metaStoreManagerRoleArn") + def meta_store_manager_role_arn(self) -> Optional[pulumi.Input[str]]: + """ + The Amazon Resource Name (ARN) used to index AWS Glue table partitions that are generated by the ingestion and normalization of AWS log sources and custom sources. + """ + return pulumi.get(self, "meta_store_manager_role_arn") + + @meta_store_manager_role_arn.setter + def meta_store_manager_role_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "meta_store_manager_role_arn", value) + + @property + @pulumi.getter(name="replicationConfiguration") + def replication_configuration(self) -> Optional[pulumi.Input['DataLakeReplicationConfigurationArgs']]: + return pulumi.get(self, "replication_configuration") + + @replication_configuration.setter + def replication_configuration(self, value: Optional[pulumi.Input['DataLakeReplicationConfigurationArgs']]): + pulumi.set(self, "replication_configuration", 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 DataLake(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + encryption_configuration: Optional[pulumi.Input[pulumi.InputType['DataLakeEncryptionConfigurationArgs']]] = None, + lifecycle_configuration: Optional[pulumi.Input[pulumi.InputType['DataLakeLifecycleConfigurationArgs']]] = None, + meta_store_manager_role_arn: Optional[pulumi.Input[str]] = None, + replication_configuration: Optional[pulumi.Input[pulumi.InputType['DataLakeReplicationConfigurationArgs']]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, + __props__=None): + """ + Resource Type definition for AWS::SecurityLake::DataLake + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] meta_store_manager_role_arn: The Amazon Resource Name (ARN) used to index AWS Glue table partitions that are generated by the ingestion and normalization of AWS log sources and custom sources. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[DataLakeArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource Type definition for AWS::SecurityLake::DataLake + + :param str resource_name: The name of the resource. + :param DataLakeArgs 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(DataLakeArgs, 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, + encryption_configuration: Optional[pulumi.Input[pulumi.InputType['DataLakeEncryptionConfigurationArgs']]] = None, + lifecycle_configuration: Optional[pulumi.Input[pulumi.InputType['DataLakeLifecycleConfigurationArgs']]] = None, + meta_store_manager_role_arn: Optional[pulumi.Input[str]] = None, + replication_configuration: Optional[pulumi.Input[pulumi.InputType['DataLakeReplicationConfigurationArgs']]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = 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__ = DataLakeArgs.__new__(DataLakeArgs) + + __props__.__dict__["encryption_configuration"] = encryption_configuration + __props__.__dict__["lifecycle_configuration"] = lifecycle_configuration + __props__.__dict__["meta_store_manager_role_arn"] = meta_store_manager_role_arn + __props__.__dict__["replication_configuration"] = replication_configuration + __props__.__dict__["tags"] = tags + __props__.__dict__["arn"] = None + __props__.__dict__["s3_bucket_arn"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["metaStoreManagerRoleArn"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(DataLake, __self__).__init__( + 'aws-native:securitylake:DataLake', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'DataLake': + """ + Get an existing DataLake 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__ = DataLakeArgs.__new__(DataLakeArgs) + + __props__.__dict__["arn"] = None + __props__.__dict__["encryption_configuration"] = None + __props__.__dict__["lifecycle_configuration"] = None + __props__.__dict__["meta_store_manager_role_arn"] = None + __props__.__dict__["replication_configuration"] = None + __props__.__dict__["s3_bucket_arn"] = None + __props__.__dict__["tags"] = None + return DataLake(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + The Amazon Resource Name (ARN) created by you to provide to the subscriber. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="encryptionConfiguration") + def encryption_configuration(self) -> pulumi.Output[Optional['outputs.DataLakeEncryptionConfiguration']]: + return pulumi.get(self, "encryption_configuration") + + @property + @pulumi.getter(name="lifecycleConfiguration") + def lifecycle_configuration(self) -> pulumi.Output[Optional['outputs.DataLakeLifecycleConfiguration']]: + return pulumi.get(self, "lifecycle_configuration") + + @property + @pulumi.getter(name="metaStoreManagerRoleArn") + def meta_store_manager_role_arn(self) -> pulumi.Output[Optional[str]]: + """ + The Amazon Resource Name (ARN) used to index AWS Glue table partitions that are generated by the ingestion and normalization of AWS log sources and custom sources. + """ + return pulumi.get(self, "meta_store_manager_role_arn") + + @property + @pulumi.getter(name="replicationConfiguration") + def replication_configuration(self) -> pulumi.Output[Optional['outputs.DataLakeReplicationConfiguration']]: + return pulumi.get(self, "replication_configuration") + + @property + @pulumi.getter(name="s3BucketArn") + def s3_bucket_arn(self) -> pulumi.Output[str]: + """ + The ARN for the Amazon Security Lake Amazon S3 bucket. + """ + return pulumi.get(self, "s3_bucket_arn") + + @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/securitylake/get_aws_log_source.py b/sdk/python/pulumi_aws_native/securitylake/get_aws_log_source.py new file mode 100644 index 0000000000..7170c01cb5 --- /dev/null +++ b/sdk/python/pulumi_aws_native/securitylake/get_aws_log_source.py @@ -0,0 +1,75 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = [ + 'GetAwsLogSourceResult', + 'AwaitableGetAwsLogSourceResult', + 'get_aws_log_source', + 'get_aws_log_source_output', +] + +@pulumi.output_type +class GetAwsLogSourceResult: + def __init__(__self__, accounts=None): + if accounts and not isinstance(accounts, list): + raise TypeError("Expected argument 'accounts' to be a list") + pulumi.set(__self__, "accounts", accounts) + + @property + @pulumi.getter + def accounts(self) -> Optional[Sequence[str]]: + """ + AWS account where you want to collect logs from. + """ + return pulumi.get(self, "accounts") + + +class AwaitableGetAwsLogSourceResult(GetAwsLogSourceResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetAwsLogSourceResult( + accounts=self.accounts) + + +def get_aws_log_source(source_name: Optional[str] = None, + source_version: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetAwsLogSourceResult: + """ + Resource Type definition for AWS::SecurityLake::AwsLogSource + + + :param str source_name: The name for a AWS source. This must be a Regionally unique value. + :param str source_version: The version for a AWS source. This must be a Regionally unique value. + """ + __args__ = dict() + __args__['sourceName'] = source_name + __args__['sourceVersion'] = source_version + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:securitylake:getAwsLogSource', __args__, opts=opts, typ=GetAwsLogSourceResult).value + + return AwaitableGetAwsLogSourceResult( + accounts=pulumi.get(__ret__, 'accounts')) + + +@_utilities.lift_output_func(get_aws_log_source) +def get_aws_log_source_output(source_name: Optional[pulumi.Input[str]] = None, + source_version: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetAwsLogSourceResult]: + """ + Resource Type definition for AWS::SecurityLake::AwsLogSource + + + :param str source_name: The name for a AWS source. This must be a Regionally unique value. + :param str source_version: The version for a AWS source. This must be a Regionally unique value. + """ + ... diff --git a/sdk/python/pulumi_aws_native/securitylake/get_data_lake.py b/sdk/python/pulumi_aws_native/securitylake/get_data_lake.py new file mode 100644 index 0000000000..f6a16cf8fc --- /dev/null +++ b/sdk/python/pulumi_aws_native/securitylake/get_data_lake.py @@ -0,0 +1,125 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from .. import outputs as _root_outputs + +__all__ = [ + 'GetDataLakeResult', + 'AwaitableGetDataLakeResult', + 'get_data_lake', + 'get_data_lake_output', +] + +@pulumi.output_type +class GetDataLakeResult: + def __init__(__self__, arn=None, encryption_configuration=None, lifecycle_configuration=None, replication_configuration=None, s3_bucket_arn=None, tags=None): + if arn and not isinstance(arn, str): + raise TypeError("Expected argument 'arn' to be a str") + pulumi.set(__self__, "arn", arn) + if encryption_configuration and not isinstance(encryption_configuration, dict): + raise TypeError("Expected argument 'encryption_configuration' to be a dict") + pulumi.set(__self__, "encryption_configuration", encryption_configuration) + if lifecycle_configuration and not isinstance(lifecycle_configuration, dict): + raise TypeError("Expected argument 'lifecycle_configuration' to be a dict") + pulumi.set(__self__, "lifecycle_configuration", lifecycle_configuration) + if replication_configuration and not isinstance(replication_configuration, dict): + raise TypeError("Expected argument 'replication_configuration' to be a dict") + pulumi.set(__self__, "replication_configuration", replication_configuration) + if s3_bucket_arn and not isinstance(s3_bucket_arn, str): + raise TypeError("Expected argument 's3_bucket_arn' to be a str") + pulumi.set(__self__, "s3_bucket_arn", s3_bucket_arn) + 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 arn(self) -> Optional[str]: + """ + The Amazon Resource Name (ARN) created by you to provide to the subscriber. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="encryptionConfiguration") + def encryption_configuration(self) -> Optional['outputs.DataLakeEncryptionConfiguration']: + return pulumi.get(self, "encryption_configuration") + + @property + @pulumi.getter(name="lifecycleConfiguration") + def lifecycle_configuration(self) -> Optional['outputs.DataLakeLifecycleConfiguration']: + return pulumi.get(self, "lifecycle_configuration") + + @property + @pulumi.getter(name="replicationConfiguration") + def replication_configuration(self) -> Optional['outputs.DataLakeReplicationConfiguration']: + return pulumi.get(self, "replication_configuration") + + @property + @pulumi.getter(name="s3BucketArn") + def s3_bucket_arn(self) -> Optional[str]: + """ + The ARN for the Amazon Security Lake Amazon S3 bucket. + """ + return pulumi.get(self, "s3_bucket_arn") + + @property + @pulumi.getter + def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: + return pulumi.get(self, "tags") + + +class AwaitableGetDataLakeResult(GetDataLakeResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetDataLakeResult( + arn=self.arn, + encryption_configuration=self.encryption_configuration, + lifecycle_configuration=self.lifecycle_configuration, + replication_configuration=self.replication_configuration, + s3_bucket_arn=self.s3_bucket_arn, + tags=self.tags) + + +def get_data_lake(arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetDataLakeResult: + """ + Resource Type definition for AWS::SecurityLake::DataLake + + + :param str arn: The Amazon Resource Name (ARN) created by you to provide to the subscriber. + """ + __args__ = dict() + __args__['arn'] = arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:securitylake:getDataLake', __args__, opts=opts, typ=GetDataLakeResult).value + + return AwaitableGetDataLakeResult( + arn=pulumi.get(__ret__, 'arn'), + encryption_configuration=pulumi.get(__ret__, 'encryption_configuration'), + lifecycle_configuration=pulumi.get(__ret__, 'lifecycle_configuration'), + replication_configuration=pulumi.get(__ret__, 'replication_configuration'), + s3_bucket_arn=pulumi.get(__ret__, 's3_bucket_arn'), + tags=pulumi.get(__ret__, 'tags')) + + +@_utilities.lift_output_func(get_data_lake) +def get_data_lake_output(arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetDataLakeResult]: + """ + Resource Type definition for AWS::SecurityLake::DataLake + + + :param str arn: The Amazon Resource Name (ARN) created by you to provide to the subscriber. + """ + ... diff --git a/sdk/python/pulumi_aws_native/securitylake/get_subscriber.py b/sdk/python/pulumi_aws_native/securitylake/get_subscriber.py new file mode 100644 index 0000000000..c338045e37 --- /dev/null +++ b/sdk/python/pulumi_aws_native/securitylake/get_subscriber.py @@ -0,0 +1,179 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from .. import outputs as _root_outputs +from ._enums import * + +__all__ = [ + 'GetSubscriberResult', + 'AwaitableGetSubscriberResult', + 'get_subscriber', + 'get_subscriber_output', +] + +@pulumi.output_type +class GetSubscriberResult: + def __init__(__self__, access_types=None, resource_share_arn=None, resource_share_name=None, s3_bucket_arn=None, sources=None, subscriber_arn=None, subscriber_description=None, subscriber_identity=None, subscriber_name=None, subscriber_role_arn=None, tags=None): + if access_types and not isinstance(access_types, list): + raise TypeError("Expected argument 'access_types' to be a list") + pulumi.set(__self__, "access_types", access_types) + if resource_share_arn and not isinstance(resource_share_arn, str): + raise TypeError("Expected argument 'resource_share_arn' to be a str") + pulumi.set(__self__, "resource_share_arn", resource_share_arn) + if resource_share_name and not isinstance(resource_share_name, str): + raise TypeError("Expected argument 'resource_share_name' to be a str") + pulumi.set(__self__, "resource_share_name", resource_share_name) + if s3_bucket_arn and not isinstance(s3_bucket_arn, str): + raise TypeError("Expected argument 's3_bucket_arn' to be a str") + pulumi.set(__self__, "s3_bucket_arn", s3_bucket_arn) + if sources and not isinstance(sources, list): + raise TypeError("Expected argument 'sources' to be a list") + pulumi.set(__self__, "sources", sources) + if subscriber_arn and not isinstance(subscriber_arn, str): + raise TypeError("Expected argument 'subscriber_arn' to be a str") + pulumi.set(__self__, "subscriber_arn", subscriber_arn) + if subscriber_description and not isinstance(subscriber_description, str): + raise TypeError("Expected argument 'subscriber_description' to be a str") + pulumi.set(__self__, "subscriber_description", subscriber_description) + if subscriber_identity and not isinstance(subscriber_identity, dict): + raise TypeError("Expected argument 'subscriber_identity' to be a dict") + pulumi.set(__self__, "subscriber_identity", subscriber_identity) + if subscriber_name and not isinstance(subscriber_name, str): + raise TypeError("Expected argument 'subscriber_name' to be a str") + pulumi.set(__self__, "subscriber_name", subscriber_name) + if subscriber_role_arn and not isinstance(subscriber_role_arn, str): + raise TypeError("Expected argument 'subscriber_role_arn' to be a str") + pulumi.set(__self__, "subscriber_role_arn", subscriber_role_arn) + 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="accessTypes") + def access_types(self) -> Optional[Sequence['SubscriberAccessTypesItem']]: + return pulumi.get(self, "access_types") + + @property + @pulumi.getter(name="resourceShareArn") + def resource_share_arn(self) -> Optional[str]: + return pulumi.get(self, "resource_share_arn") + + @property + @pulumi.getter(name="resourceShareName") + def resource_share_name(self) -> Optional[str]: + return pulumi.get(self, "resource_share_name") + + @property + @pulumi.getter(name="s3BucketArn") + def s3_bucket_arn(self) -> Optional[str]: + return pulumi.get(self, "s3_bucket_arn") + + @property + @pulumi.getter + def sources(self) -> Optional[Sequence[Any]]: + """ + The supported AWS services from which logs and events are collected. + """ + return pulumi.get(self, "sources") + + @property + @pulumi.getter(name="subscriberArn") + def subscriber_arn(self) -> Optional[str]: + return pulumi.get(self, "subscriber_arn") + + @property + @pulumi.getter(name="subscriberDescription") + def subscriber_description(self) -> Optional[str]: + """ + The description for your subscriber account in Security Lake. + """ + return pulumi.get(self, "subscriber_description") + + @property + @pulumi.getter(name="subscriberIdentity") + def subscriber_identity(self) -> Optional['outputs.SubscriberIdentityProperties']: + """ + The AWS identity used to access your data. + """ + return pulumi.get(self, "subscriber_identity") + + @property + @pulumi.getter(name="subscriberName") + def subscriber_name(self) -> Optional[str]: + """ + The name of your Security Lake subscriber account. + """ + return pulumi.get(self, "subscriber_name") + + @property + @pulumi.getter(name="subscriberRoleArn") + def subscriber_role_arn(self) -> Optional[str]: + return pulumi.get(self, "subscriber_role_arn") + + @property + @pulumi.getter + def tags(self) -> Optional[Sequence['_root_outputs.Tag']]: + """ + An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string. + """ + return pulumi.get(self, "tags") + + +class AwaitableGetSubscriberResult(GetSubscriberResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetSubscriberResult( + access_types=self.access_types, + resource_share_arn=self.resource_share_arn, + resource_share_name=self.resource_share_name, + s3_bucket_arn=self.s3_bucket_arn, + sources=self.sources, + subscriber_arn=self.subscriber_arn, + subscriber_description=self.subscriber_description, + subscriber_identity=self.subscriber_identity, + subscriber_name=self.subscriber_name, + subscriber_role_arn=self.subscriber_role_arn, + tags=self.tags) + + +def get_subscriber(subscriber_arn: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetSubscriberResult: + """ + Resource Type definition for AWS::SecurityLake::Subscriber + """ + __args__ = dict() + __args__['subscriberArn'] = subscriber_arn + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('aws-native:securitylake:getSubscriber', __args__, opts=opts, typ=GetSubscriberResult).value + + return AwaitableGetSubscriberResult( + access_types=pulumi.get(__ret__, 'access_types'), + resource_share_arn=pulumi.get(__ret__, 'resource_share_arn'), + resource_share_name=pulumi.get(__ret__, 'resource_share_name'), + s3_bucket_arn=pulumi.get(__ret__, 's3_bucket_arn'), + sources=pulumi.get(__ret__, 'sources'), + subscriber_arn=pulumi.get(__ret__, 'subscriber_arn'), + subscriber_description=pulumi.get(__ret__, 'subscriber_description'), + subscriber_identity=pulumi.get(__ret__, 'subscriber_identity'), + subscriber_name=pulumi.get(__ret__, 'subscriber_name'), + subscriber_role_arn=pulumi.get(__ret__, 'subscriber_role_arn'), + tags=pulumi.get(__ret__, 'tags')) + + +@_utilities.lift_output_func(get_subscriber) +def get_subscriber_output(subscriber_arn: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetSubscriberResult]: + """ + Resource Type definition for AWS::SecurityLake::Subscriber + """ + ... diff --git a/sdk/python/pulumi_aws_native/securitylake/outputs.py b/sdk/python/pulumi_aws_native/securitylake/outputs.py new file mode 100644 index 0000000000..fd45518fa2 --- /dev/null +++ b/sdk/python/pulumi_aws_native/securitylake/outputs.py @@ -0,0 +1,424 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._enums import * + +__all__ = [ + 'DataLakeEncryptionConfiguration', + 'DataLakeExpiration', + 'DataLakeLifecycleConfiguration', + 'DataLakeReplicationConfiguration', + 'DataLakeTransitions', + 'SubscriberAwsLogSource', + 'SubscriberCustomLogSource', + 'SubscriberIdentityProperties', + 'SubscriberSource0Properties', + 'SubscriberSource1Properties', +] + +@pulumi.output_type +class DataLakeEncryptionConfiguration(dict): + """ + Provides encryption details of Amazon Security Lake object. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "kmsKeyId": + suggest = "kms_key_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DataLakeEncryptionConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DataLakeEncryptionConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DataLakeEncryptionConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + kms_key_id: Optional[str] = None): + """ + Provides encryption details of Amazon Security Lake object. + :param str kms_key_id: The id of KMS encryption key used by Amazon Security Lake to encrypt the Security Lake object. + """ + if kms_key_id is not None: + pulumi.set(__self__, "kms_key_id", kms_key_id) + + @property + @pulumi.getter(name="kmsKeyId") + def kms_key_id(self) -> Optional[str]: + """ + The id of KMS encryption key used by Amazon Security Lake to encrypt the Security Lake object. + """ + return pulumi.get(self, "kms_key_id") + + +@pulumi.output_type +class DataLakeExpiration(dict): + """ + Provides data expiration details of Amazon Security Lake object. + """ + def __init__(__self__, *, + days: Optional[int] = None): + """ + Provides data expiration details of Amazon Security Lake object. + """ + if days is not None: + pulumi.set(__self__, "days", days) + + @property + @pulumi.getter + def days(self) -> Optional[int]: + return pulumi.get(self, "days") + + +@pulumi.output_type +class DataLakeLifecycleConfiguration(dict): + """ + Provides lifecycle details of Amazon Security Lake object. + """ + def __init__(__self__, *, + expiration: Optional['outputs.DataLakeExpiration'] = None, + transitions: Optional[Sequence['outputs.DataLakeTransitions']] = None): + """ + Provides lifecycle details of Amazon Security Lake object. + :param Sequence['DataLakeTransitions'] transitions: Provides data storage transition details of Amazon Security Lake object. + """ + if expiration is not None: + pulumi.set(__self__, "expiration", expiration) + if transitions is not None: + pulumi.set(__self__, "transitions", transitions) + + @property + @pulumi.getter + def expiration(self) -> Optional['outputs.DataLakeExpiration']: + return pulumi.get(self, "expiration") + + @property + @pulumi.getter + def transitions(self) -> Optional[Sequence['outputs.DataLakeTransitions']]: + """ + Provides data storage transition details of Amazon Security Lake object. + """ + return pulumi.get(self, "transitions") + + +@pulumi.output_type +class DataLakeReplicationConfiguration(dict): + """ + Provides replication details of Amazon Security Lake object. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "roleArn": + suggest = "role_arn" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DataLakeReplicationConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DataLakeReplicationConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DataLakeReplicationConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + regions: Optional[Sequence[str]] = None, + role_arn: Optional[str] = None): + """ + Provides replication details of Amazon Security Lake object. + :param str role_arn: Replication settings for the Amazon S3 buckets. This parameter uses the AWS Identity and Access Management (IAM) role you created that is managed by Security Lake, to ensure the replication setting is correct. + """ + if regions is not None: + pulumi.set(__self__, "regions", regions) + if role_arn is not None: + pulumi.set(__self__, "role_arn", role_arn) + + @property + @pulumi.getter + def regions(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "regions") + + @property + @pulumi.getter(name="roleArn") + def role_arn(self) -> Optional[str]: + """ + Replication settings for the Amazon S3 buckets. This parameter uses the AWS Identity and Access Management (IAM) role you created that is managed by Security Lake, to ensure the replication setting is correct. + """ + return pulumi.get(self, "role_arn") + + +@pulumi.output_type +class DataLakeTransitions(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "storageClass": + suggest = "storage_class" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DataLakeTransitions. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DataLakeTransitions.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DataLakeTransitions.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + days: Optional[int] = None, + storage_class: Optional[str] = None): + """ + :param int days: Number of days before data transitions to a different S3 Storage Class in the Amazon Security Lake object. + :param str storage_class: The range of storage classes that you can choose from based on the data access, resiliency, and cost requirements of your workloads. + """ + if days is not None: + pulumi.set(__self__, "days", days) + if storage_class is not None: + pulumi.set(__self__, "storage_class", storage_class) + + @property + @pulumi.getter + def days(self) -> Optional[int]: + """ + Number of days before data transitions to a different S3 Storage Class in the Amazon Security Lake object. + """ + return pulumi.get(self, "days") + + @property + @pulumi.getter(name="storageClass") + def storage_class(self) -> Optional[str]: + """ + The range of storage classes that you can choose from based on the data access, resiliency, and cost requirements of your workloads. + """ + return pulumi.get(self, "storage_class") + + +@pulumi.output_type +class SubscriberAwsLogSource(dict): + """ + Amazon Security Lake supports log and event collection for natively supported AWS services. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "sourceName": + suggest = "source_name" + elif key == "sourceVersion": + suggest = "source_version" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in SubscriberAwsLogSource. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + SubscriberAwsLogSource.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + SubscriberAwsLogSource.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + source_name: Optional[str] = None, + source_version: Optional[str] = None): + """ + Amazon Security Lake supports log and event collection for natively supported AWS services. + :param str source_name: The name for a AWS source. This must be a Regionally unique value. + :param str source_version: The version for a AWS source. This must be a Regionally unique value. + """ + if source_name is not None: + pulumi.set(__self__, "source_name", source_name) + if source_version is not None: + pulumi.set(__self__, "source_version", source_version) + + @property + @pulumi.getter(name="sourceName") + def source_name(self) -> Optional[str]: + """ + The name for a AWS source. This must be a Regionally unique value. + """ + return pulumi.get(self, "source_name") + + @property + @pulumi.getter(name="sourceVersion") + def source_version(self) -> Optional[str]: + """ + The version for a AWS source. This must be a Regionally unique value. + """ + return pulumi.get(self, "source_version") + + +@pulumi.output_type +class SubscriberCustomLogSource(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "sourceName": + suggest = "source_name" + elif key == "sourceVersion": + suggest = "source_version" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in SubscriberCustomLogSource. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + SubscriberCustomLogSource.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + SubscriberCustomLogSource.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + source_name: Optional[str] = None, + source_version: Optional[str] = None): + """ + :param str source_name: The name for a third-party custom source. This must be a Regionally unique value. + :param str source_version: The version for a third-party custom source. This must be a Regionally unique value. + """ + if source_name is not None: + pulumi.set(__self__, "source_name", source_name) + if source_version is not None: + pulumi.set(__self__, "source_version", source_version) + + @property + @pulumi.getter(name="sourceName") + def source_name(self) -> Optional[str]: + """ + The name for a third-party custom source. This must be a Regionally unique value. + """ + return pulumi.get(self, "source_name") + + @property + @pulumi.getter(name="sourceVersion") + def source_version(self) -> Optional[str]: + """ + The version for a third-party custom source. This must be a Regionally unique value. + """ + return pulumi.get(self, "source_version") + + +@pulumi.output_type +class SubscriberIdentityProperties(dict): + """ + The AWS identity used to access your data. + """ + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "externalId": + suggest = "external_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in SubscriberIdentityProperties. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + SubscriberIdentityProperties.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + SubscriberIdentityProperties.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + external_id: str, + principal: str): + """ + The AWS identity used to access your data. + :param str external_id: The external ID used to establish trust relationship with the AWS identity. + :param str principal: The AWS identity principal. + """ + pulumi.set(__self__, "external_id", external_id) + pulumi.set(__self__, "principal", principal) + + @property + @pulumi.getter(name="externalId") + def external_id(self) -> str: + """ + The external ID used to establish trust relationship with the AWS identity. + """ + return pulumi.get(self, "external_id") + + @property + @pulumi.getter + def principal(self) -> str: + """ + The AWS identity principal. + """ + return pulumi.get(self, "principal") + + +@pulumi.output_type +class SubscriberSource0Properties(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "awsLogSource": + suggest = "aws_log_source" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in SubscriberSource0Properties. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + SubscriberSource0Properties.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + SubscriberSource0Properties.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + aws_log_source: 'outputs.SubscriberAwsLogSource'): + pulumi.set(__self__, "aws_log_source", aws_log_source) + + @property + @pulumi.getter(name="awsLogSource") + def aws_log_source(self) -> 'outputs.SubscriberAwsLogSource': + return pulumi.get(self, "aws_log_source") + + +@pulumi.output_type +class SubscriberSource1Properties(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "customLogSource": + suggest = "custom_log_source" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in SubscriberSource1Properties. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + SubscriberSource1Properties.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + SubscriberSource1Properties.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + custom_log_source: 'outputs.SubscriberCustomLogSource'): + pulumi.set(__self__, "custom_log_source", custom_log_source) + + @property + @pulumi.getter(name="customLogSource") + def custom_log_source(self) -> 'outputs.SubscriberCustomLogSource': + return pulumi.get(self, "custom_log_source") + + diff --git a/sdk/python/pulumi_aws_native/securitylake/subscriber.py b/sdk/python/pulumi_aws_native/securitylake/subscriber.py new file mode 100644 index 0000000000..8a5a2e7d1c --- /dev/null +++ b/sdk/python/pulumi_aws_native/securitylake/subscriber.py @@ -0,0 +1,331 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +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__ = ['SubscriberArgs', 'Subscriber'] + +@pulumi.input_type +class SubscriberArgs: + def __init__(__self__, *, + access_types: pulumi.Input[Sequence[pulumi.Input['SubscriberAccessTypesItem']]], + data_lake_arn: pulumi.Input[str], + sources: pulumi.Input[Sequence[pulumi.Input[Union['SubscriberSource0PropertiesArgs', 'SubscriberSource1PropertiesArgs']]]], + subscriber_identity: pulumi.Input['SubscriberIdentityPropertiesArgs'], + subscriber_description: Optional[pulumi.Input[str]] = None, + subscriber_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]] = None): + """ + The set of arguments for constructing a Subscriber resource. + :param pulumi.Input[str] data_lake_arn: The ARN for the data lake. + :param pulumi.Input[Sequence[pulumi.Input[Union['SubscriberSource0PropertiesArgs', 'SubscriberSource1PropertiesArgs']]]] sources: The supported AWS services from which logs and events are collected. + :param pulumi.Input['SubscriberIdentityPropertiesArgs'] subscriber_identity: The AWS identity used to access your data. + :param pulumi.Input[str] subscriber_description: The description for your subscriber account in Security Lake. + :param pulumi.Input[str] subscriber_name: The name of your Security Lake subscriber account. + :param pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]] tags: An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string. + """ + pulumi.set(__self__, "access_types", access_types) + pulumi.set(__self__, "data_lake_arn", data_lake_arn) + pulumi.set(__self__, "sources", sources) + pulumi.set(__self__, "subscriber_identity", subscriber_identity) + if subscriber_description is not None: + pulumi.set(__self__, "subscriber_description", subscriber_description) + if subscriber_name is not None: + pulumi.set(__self__, "subscriber_name", subscriber_name) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="accessTypes") + def access_types(self) -> pulumi.Input[Sequence[pulumi.Input['SubscriberAccessTypesItem']]]: + return pulumi.get(self, "access_types") + + @access_types.setter + def access_types(self, value: pulumi.Input[Sequence[pulumi.Input['SubscriberAccessTypesItem']]]): + pulumi.set(self, "access_types", value) + + @property + @pulumi.getter(name="dataLakeArn") + def data_lake_arn(self) -> pulumi.Input[str]: + """ + The ARN for the data lake. + """ + return pulumi.get(self, "data_lake_arn") + + @data_lake_arn.setter + def data_lake_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "data_lake_arn", value) + + @property + @pulumi.getter + def sources(self) -> pulumi.Input[Sequence[pulumi.Input[Union['SubscriberSource0PropertiesArgs', 'SubscriberSource1PropertiesArgs']]]]: + """ + The supported AWS services from which logs and events are collected. + """ + return pulumi.get(self, "sources") + + @sources.setter + def sources(self, value: pulumi.Input[Sequence[pulumi.Input[Union['SubscriberSource0PropertiesArgs', 'SubscriberSource1PropertiesArgs']]]]): + pulumi.set(self, "sources", value) + + @property + @pulumi.getter(name="subscriberIdentity") + def subscriber_identity(self) -> pulumi.Input['SubscriberIdentityPropertiesArgs']: + """ + The AWS identity used to access your data. + """ + return pulumi.get(self, "subscriber_identity") + + @subscriber_identity.setter + def subscriber_identity(self, value: pulumi.Input['SubscriberIdentityPropertiesArgs']): + pulumi.set(self, "subscriber_identity", value) + + @property + @pulumi.getter(name="subscriberDescription") + def subscriber_description(self) -> Optional[pulumi.Input[str]]: + """ + The description for your subscriber account in Security Lake. + """ + return pulumi.get(self, "subscriber_description") + + @subscriber_description.setter + def subscriber_description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "subscriber_description", value) + + @property + @pulumi.getter(name="subscriberName") + def subscriber_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of your Security Lake subscriber account. + """ + return pulumi.get(self, "subscriber_name") + + @subscriber_name.setter + def subscriber_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "subscriber_name", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['_root_inputs.TagArgs']]]]: + """ + An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string. + """ + 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 Subscriber(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + access_types: Optional[pulumi.Input[Sequence[pulumi.Input['SubscriberAccessTypesItem']]]] = None, + data_lake_arn: Optional[pulumi.Input[str]] = None, + sources: Optional[pulumi.Input[Sequence[pulumi.Input[Union[pulumi.InputType['SubscriberSource0PropertiesArgs'], pulumi.InputType['SubscriberSource1PropertiesArgs']]]]]] = None, + subscriber_description: Optional[pulumi.Input[str]] = None, + subscriber_identity: Optional[pulumi.Input[pulumi.InputType['SubscriberIdentityPropertiesArgs']]] = None, + subscriber_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = None, + __props__=None): + """ + Resource Type definition for AWS::SecurityLake::Subscriber + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] data_lake_arn: The ARN for the data lake. + :param pulumi.Input[Sequence[pulumi.Input[Union[pulumi.InputType['SubscriberSource0PropertiesArgs'], pulumi.InputType['SubscriberSource1PropertiesArgs']]]]] sources: The supported AWS services from which logs and events are collected. + :param pulumi.Input[str] subscriber_description: The description for your subscriber account in Security Lake. + :param pulumi.Input[pulumi.InputType['SubscriberIdentityPropertiesArgs']] subscriber_identity: The AWS identity used to access your data. + :param pulumi.Input[str] subscriber_name: The name of your Security Lake subscriber account. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]] tags: An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: SubscriberArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Resource Type definition for AWS::SecurityLake::Subscriber + + :param str resource_name: The name of the resource. + :param SubscriberArgs 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(SubscriberArgs, 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, + access_types: Optional[pulumi.Input[Sequence[pulumi.Input['SubscriberAccessTypesItem']]]] = None, + data_lake_arn: Optional[pulumi.Input[str]] = None, + sources: Optional[pulumi.Input[Sequence[pulumi.Input[Union[pulumi.InputType['SubscriberSource0PropertiesArgs'], pulumi.InputType['SubscriberSource1PropertiesArgs']]]]]] = None, + subscriber_description: Optional[pulumi.Input[str]] = None, + subscriber_identity: Optional[pulumi.Input[pulumi.InputType['SubscriberIdentityPropertiesArgs']]] = None, + subscriber_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['_root_inputs.TagArgs']]]]] = 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__ = SubscriberArgs.__new__(SubscriberArgs) + + if access_types is None and not opts.urn: + raise TypeError("Missing required property 'access_types'") + __props__.__dict__["access_types"] = access_types + if data_lake_arn is None and not opts.urn: + raise TypeError("Missing required property 'data_lake_arn'") + __props__.__dict__["data_lake_arn"] = data_lake_arn + if sources is None and not opts.urn: + raise TypeError("Missing required property 'sources'") + __props__.__dict__["sources"] = sources + __props__.__dict__["subscriber_description"] = subscriber_description + if subscriber_identity is None and not opts.urn: + raise TypeError("Missing required property 'subscriber_identity'") + __props__.__dict__["subscriber_identity"] = subscriber_identity + __props__.__dict__["subscriber_name"] = subscriber_name + __props__.__dict__["tags"] = tags + __props__.__dict__["resource_share_arn"] = None + __props__.__dict__["resource_share_name"] = None + __props__.__dict__["s3_bucket_arn"] = None + __props__.__dict__["subscriber_arn"] = None + __props__.__dict__["subscriber_role_arn"] = None + replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["dataLakeArn"]) + opts = pulumi.ResourceOptions.merge(opts, replace_on_changes) + super(Subscriber, __self__).__init__( + 'aws-native:securitylake:Subscriber', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None) -> 'Subscriber': + """ + Get an existing Subscriber 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__ = SubscriberArgs.__new__(SubscriberArgs) + + __props__.__dict__["access_types"] = None + __props__.__dict__["data_lake_arn"] = None + __props__.__dict__["resource_share_arn"] = None + __props__.__dict__["resource_share_name"] = None + __props__.__dict__["s3_bucket_arn"] = None + __props__.__dict__["sources"] = None + __props__.__dict__["subscriber_arn"] = None + __props__.__dict__["subscriber_description"] = None + __props__.__dict__["subscriber_identity"] = None + __props__.__dict__["subscriber_name"] = None + __props__.__dict__["subscriber_role_arn"] = None + __props__.__dict__["tags"] = None + return Subscriber(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="accessTypes") + def access_types(self) -> pulumi.Output[Sequence['SubscriberAccessTypesItem']]: + return pulumi.get(self, "access_types") + + @property + @pulumi.getter(name="dataLakeArn") + def data_lake_arn(self) -> pulumi.Output[str]: + """ + The ARN for the data lake. + """ + return pulumi.get(self, "data_lake_arn") + + @property + @pulumi.getter(name="resourceShareArn") + def resource_share_arn(self) -> pulumi.Output[str]: + return pulumi.get(self, "resource_share_arn") + + @property + @pulumi.getter(name="resourceShareName") + def resource_share_name(self) -> pulumi.Output[str]: + return pulumi.get(self, "resource_share_name") + + @property + @pulumi.getter(name="s3BucketArn") + def s3_bucket_arn(self) -> pulumi.Output[str]: + return pulumi.get(self, "s3_bucket_arn") + + @property + @pulumi.getter + def sources(self) -> pulumi.Output[Sequence[Any]]: + """ + The supported AWS services from which logs and events are collected. + """ + return pulumi.get(self, "sources") + + @property + @pulumi.getter(name="subscriberArn") + def subscriber_arn(self) -> pulumi.Output[str]: + return pulumi.get(self, "subscriber_arn") + + @property + @pulumi.getter(name="subscriberDescription") + def subscriber_description(self) -> pulumi.Output[Optional[str]]: + """ + The description for your subscriber account in Security Lake. + """ + return pulumi.get(self, "subscriber_description") + + @property + @pulumi.getter(name="subscriberIdentity") + def subscriber_identity(self) -> pulumi.Output['outputs.SubscriberIdentityProperties']: + """ + The AWS identity used to access your data. + """ + return pulumi.get(self, "subscriber_identity") + + @property + @pulumi.getter(name="subscriberName") + def subscriber_name(self) -> pulumi.Output[str]: + """ + The name of your Security Lake subscriber account. + """ + return pulumi.get(self, "subscriber_name") + + @property + @pulumi.getter(name="subscriberRoleArn") + def subscriber_role_arn(self) -> pulumi.Output[str]: + return pulumi.get(self, "subscriber_role_arn") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Sequence['_root_outputs.Tag']]]: + """ + An array of objects, one for each tag to associate with the subscriber. For each tag, you must specify both a tag key and a tag value. A tag value cannot be null, but it can be an empty string. + """ + return pulumi.get(self, "tags") +